Google のアンケートフォームを設置
以前、ブログにGoogleのアンケートフォームを設置したのですが、
※なんか、こういうのを置かないといけないらしいので・・・・
アンケートが届いたのを、メールで知らせてもらうようにしたい
ですが、このアンケート(問い合わせ)が、届いているかどうかは、Googleにログインしてアンケートフォームに行かないとわからないんですよね~(と思うんだけれど・・・・違うかな?)
それでは、困るので、ネットでいろいろ検索して、メールが届くように出来ないか調べてみました。
いろんな方が、紹介してくれているのですが・・・
参考にしたサイト
Googleフォームのメール通知を指定したアドレスに送る方法(Google Apps Script使用)
この方とか、
【GAS入門】フォームの回答があったらメール通知するスクリプトを作ってみよう | takakisan
エラーになっちゃうよ~
やってみたのですが、スクリプトがエラーになっちゃうんですよ。
一応、昔(40年前?)プログラマーだったけれど、このスクリプト?の文法とか関数とか全然わからないんで、なんでエラーなのか、全然わからない。コピペしただけなんだけれど~~。
で、もう一度、基本に戻ってやってみた。
まずは、簡単なスクリプトから
まずは、簡単なものを作ってみた。
MailApp.sendEmailの引数を、固定値にして、「メールアドレス(黒く塗りつぶしてあるもの)」と固定文字列「フォームからの意見が届きました」と「本文」という固定文字列をカンマで区切って設定した。
うまく行った!
教えてくれていたブログでは、MailApp.sendEmailではなくて、GmailApp.sendEmailを使っていたので、そのせい?????
他のサイトで、どっちを使ってもよい。って書いてあったので、GmailApp.sendEmailでエラーが起きたので、MailApp.sendEmailを使ってみました。
※全然、わかっていない。
定数を変数に変える
さて、これで上手くいったので、次は、固定値の文字列を変数にしました。
- subject
- body
の入れ物(変数)を作り、その中に、固定値(メールアドレスや、「フォームからの意見が届きました」やら「本文」やらの文言)を入れてから(右辺から左辺に入れている)、MailApp.senEmailの引数に、変数をセットしました。
よし!届くではないですか。
アンケートの内容もメールで教えてもらおう!
ま、これで、なんか誰かが送ってきた。ってのがわかるから、いいんですけれど、ちょっと欲が出てきて、アンケート(問い合わせ)の内容も一緒にメールで送ってくれるようにするには、どうするのかなぁ~~と。
こっちも、参考ブログを見てコピペしたのですが、エラーになっちゃって・・・
どうやら、参考ブログでは、ログで一度確認してから、レベルアップしているみたいなんですが、また別のサイトを見ると、ログだとエラーだけれど、実際に送ったらOKだった。みたいなのがあったので、ログを取る部分は、辞めて、直接レベルアップしたものを書きました。
追加したのは、一番上の行の、
FormApp.getActiveForm();
と、
8行目 var body = '内容';の後に、挿入するのが・・・・以下↓↓
bodyが、いろいろやっていたので、画像の上では「本文」で下の画像は「内容」となっていますが、これは、bodyという箱(変数)にシングルコーテーションで囲まれた文字を入れているだけであって、どんな文字でも構いません。
そして、
var body = '内容';
ここで、bodyという箱に、まず「内容」という文字を入れているのですが、次の行
body += '\n\n';
では、bodyの箱の中に、今あるものは、そのまま入れておいて、その後ろに右辺のものを継ぎ足している分です。(+=が、継ぎ足すという意味。だと思う)
そして、何を継ぎ足しているかというと、シングルコーテーションで囲まれたのは、\nが二つ。これ、多分「改行」だと思います。
メールの一行目に「内容」と表示させて、改行して、次の行。そして、もう一個改行して、一行空けて次の行から、何かを書き出そうとしています。
var itemResponses = e.response.getItemResponses();
itemResponses.forEach(function(itemResponse, index){
body += '【' + itemResponse.getItem().getTitle() + '】 \n'
body += itemResponse.getResponse() + '\n\n'
});
それが、この部分ですが、全然わかりません。ので、そのまま貼り付けました。なんとなく、クラスとかオブジェクトとか、この決められた命令語(?)で、Googleアンケートの内容を、うまく取得してくれているのでしょう。
そして、body += となっているので、どんどんアンケート内容を足し込んでおいて、
最後に書き出し。
MailApp.sendEmail(email,subject,body);
これは、元々あった命令です。
三つ目の引数 bodyという箱(変数)の中に、今回は、アンケートの中身をいっぱい入れておいて、メールで送信する。って事ですね~~。
なんとか成功した
いや、ここに行くまで、いろいろやったんですよ~。原因がわからなくて・・・・
こんな感じでメールが届きました。
めでたし、めでたし。