■自動的にGmail送信したい
昨日の時点で、Googleサイト上からGoogleフォームに入力・送信し、その内容を
Googleフォームの台帳に反映できるようになりました。
今日は、Googleフォームに入力・送信された時点で、自動的にその内容を自分宛てに
送信できるようにした過程を書こうと思います~~♪
ちなみに先に言ってしまいますが。
以前ウォーミングアップで行ったGmail送信の応用なので、「まぁ軽くできるかな~」と
甘くみていたら、、、、 結構苦労しちゃいました。。。。
■スクリプトとトリガー設定
まず、スクリプトを書く場所ですが、[サイト上のフォームから台帳に反映]までは
勝手にやってくれますので、私が手を加えるのは[台帳からメール送信]の部分。
つまり、Googleフォームの台帳にスクリプトを書きこみます。
Googleフォームの台帳を開くと、スプレッドシートとほぼ同じ様式になっています。
(というか、同じ?)
ですので、スプレッドシートにスクリプトを書くのと同様の手順で、「ツール」→
「スクリプトエディタ」を選択します。
そして、参考書をみながら下記のスクリプトを入力。
☆簡単コード解説☆
4行目 : 今開いているスプレッドシートを認識する
7~11行目 : <e.namedValues[ ]>で、フォームの質問項目に対する
回答をそれぞれの変数に格納
例)質問項目「タイトル(B行)」の回答をtitleに格納
14~18行目: メールの題名、本文イメージ、メールアドレスを指定
21行目 : メール送信
※1行目の、関数名の後「(e)」を忘れずに!!
次に、スクリプトを実行させるためのトリガーを設定します。
スクリプトエディタのメニューバーの中に、時計のマークがあります。(左から6番目)
カーソルを持っていくと、「現在のスクリプトのトリガー...」と表示されます。
これをクリックすると、別画面で「Current project's triggers」というのが出て、
「実行」「Event」という項目の下にリストボックスが表示されます。
「実行」 : トリガーを設定する関数名
「Event」 : どういうイベントの時にスクリプトを動かすか
上記を踏まえて、リストボックスから選択します。
今回は、「sendEmailofForm」という関数を、フォームから回答を受付けた時点で
スクリプトを動かしたいので、
「実行」 : sendEmailofForm
「Event」 : From spreadsheet , On form submit
と設定します。
☆補足☆
「Event」のリストボックスにある選択肢は、下記のような意味です。
①From spreadsheet
-On open : スプレッドシートを開いた時
-On edit : スプレッドシートを編集した時
-On form submit : フォームを受付けた時
②Time driven
-Specific date and time : 特定の日時に
-Minutes timer : ○分毎に (例:5分毎に)
-Hour timer : ○時間毎に (例:2時間毎に)
-Day timer : 毎日○時に (例:毎日12時に)
-Week timer : 毎○曜日に (例:毎月曜日に)
さて、これできちんと動いてくれるはず♪♪♪
■「実行」ボタンを押してみると・・・・・
何か間違いはしていないか?ちゃんと思ったとおりに動いてくれるか?
確認するために、スクリプトエディタの「実行(右向き▲)」ボタンを押下。
すると・・・・・・・・・
あれ!???
<Type Error : Cannot read property”namedValues”from undefined.(行7)>
というエラーが。
何かタイプミスしたかしら?もう一度1行目から見直してみる。
うーん、特に間違っていないと思うけど・・・。
参考書を基に、自分で少しアレンジを加えているが、もしかしてそれが
いけない??
まったく一言一句参考書と同じスクリプトを書いてみても、やっぱりエラー。
<e.namedValue>の箇所で、きちんと値を読み取れていないのが原因だとは
なんとなく想像できるのですが、、、、、
なんでー
なんでなんでーー
なんでなんでなんでーーー
あー、頭いたいーーーー(p>□<q*))
今日はここまで。
■予告編
明日は、このエラーの解決編です~~。
0 件のコメント:
コメントを投稿