'onsubmit'トリガーを別のアクションにリンクするために、デフォルトの「フォームの送信」ボタンをどのように参照しますか?ありがとうございました。
たとえば、onsubmitを使用すると、
Logger.log('do something');
1つはしません。 Form Serviceでは、製品をプログラムで制御することはできません。この一般的なトピックの課題トラッカーには 未解決の課題 があります。スターを付けて「投票」し、更新を受け取ります。
しかし、あなたは失われていません。フォームの応答を受信するスプレッドシートで、インストール可能なトリガーを使用して「フォーム送信時」を起動するスクリプトを追加できます。そこから、送信されたデータに対して、希望どおりのロギングなど、さまざまなことができますが、フォーム自体に対しては何もできません。
これらのリファレンスでは、トリガーとイベントについて説明します。
(Mogsdadの回答のように)スクリプトをフォームから応答を受け取るスプレッドシートに追加する代わりに、フォームの[送信]ボタンによってトリガーされるスクリプトを追加しました。
ステップ1:最初にGoogleフォームを作成します
ステップ2:次に、メニューからTools-> Script editorをクリックします。
ステップ3:関数にonSubmit()
のような名前を付けます
ステップ4:このようなメールを送信するためのコードを記述し、[実行]ボタンをクリックしてテストします
function onSubmit() {
MailApp.sendEmail("[email protected],[email protected]",
"Subject",
"A new application has been submitted.\n\n" +
"Here is the link to all Applications:\n" +
"https://docs.google.com/spreadsheets/x/1-fdasjhFAKEfdaahfkhsa/",
{name:"From Name"});
}
ステップ5:Script Editorのメニューで、Runをクリックするか、ツールバーのPlayボタンを使用してコードをテストします(例:メールを受信していることを確認してください)
ステップ6:Script Editorのメニューで、Resources-> Current project's triggers
ステップ7:設定を選択イベントFrom form
On form submit
ステップ8:次に、フォームエディターのメニューからTools-> Script managerスクリプトが選択されていることを確認します
ステップ9:フォームを試してください。フォームの送信ボタンをクリックすると、メールが届きます。
これは古い答えです。
現在(2014年1月)onSubmitには2つの方法があります。 1つは、おそらくonSubmit()関数を作成することです。これは、(私にとっては機能しません...)現在の送信ユーザーの許可の下でのみ、限られた一連のアクションを許可します。たとえば、彼が送信したメールにアクセスしたり、基になるフォームを次の送信用に変更したりすることはできません。
次に、送信時にトリガーがあり、任意の関数に追加してアタッチし、独自の権限で必要なことをすべて実行できます。上記の回答に追加されたトリガーのスクリーンショットと同じように見えますが、最初の列はフォームスクリプトのメソッドを示し、次の列は「From-Form」、3番目の列は「送信時」です。
通常、メソッドはイベントeを受け取ります。e.valuesは、スプレッドシートに保存された値と同じです。そう
function formSubmitted(e){...
コードをトリガーする2つのアプリケーションがあるようです:(1)フォームと(2)フォームの応答にリンクされたスプレッドシート。
(1)上記のMogsdadとJohnBが指摘したように、イベントは関数に送信されないため、フォームからプログラムで実行できる人は多くありません。たとえば、「フォーム送信時」または「オープン時」に電子メールを送信できますが、イベントオブジェクトがないと、ドキュメントや送信に関する数や行、何も記録することさえできません。
(2)ただし、スプレッドシートがフォームの応答にリンクされている場合、トリガーをスプレッドシートに設定できます。トリガーは、イベント、つまり行、列、およびその他のデータにアクセスできます。
リンクされた応答のGoogleスプレッドシートから:
Code.gs:
function onSpreadsheetSubmit(e) {
var row = e.range.getRow();
MailApp.sendEmail("[email protected]",
"Your subject, rows: "+ row,
"A new application has been submitted on row: "+
row,
{name:"From your friendly spreadsheet"});
}
詳細: https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
上記のJohnBのHOWTOはすばらしいものです。アップデート(2017年11月):
上記の手順の多くでは、フォームの所有者による検証/承認が必要です。