初めに
このコードを作成しようとおもった理由はサークルなどでのイベントで参加募集をする際,メールアドレスを指定しそこに送ってきてくれた人に都度都度メールを送り,ラインのグループのURLを送信し,ラインのグループに入ってもらうことでイベントの詳細などを共有していたがめちゃくちゃめんどくさい!!!!
なので自動でメールを返信して,LINEのグループのURLを共有する機能を追加しようと思いたちました!
google apps script側の設定について
google apps scriptが開いたら左にあるトリガーをクリックしてください!
トリガーを追加をする画面が表示されるのでここを押す!
赤く囲われたところを画像のようにフォーム送信に変更する。
ここの設定を変更することでフォームを開いた時にスクリプトを実行するのか,フォームを送信した時にスクリプトを実行するのかを設定することができます。
組込み関数についての説明
行ごとのソースコードの解説
全体のコード
以下は、与えられたコードの各行の解説です。
function autoReply(e) {
この行は、autoReply
という関数を宣言しています。この関数は引数e
を受け取ります。
// ステップ1: フォームのデータを取得する
let itemResponses = e.response.getItemResponses();
let recipient = e.response.getRespondentEmail();
この部分では、Google フォームのイベントオブジェクトからフォームの回答データと回答者のメールアドレスを取得しています。e.response
はフォームのイベントオブジェクトを表し、getItemResponses()
メソッドはフォームの回答データを取得します。また、getRespondentEmail()
メソッドは回答者のメールアドレスを取得します。
// ステップ2: 必要なデータを抽出する
let subject = "【ボランティア協議会】〇〇にご参加ありがとうございます";
let bodyTemplate = "この度は〇〇イベントにご応募ありがとうございます。\n\n" +
"ご応募内容にお間違いがないかご確認頂けますようお願いいたします。\n\n" +
"============\n" +
"{{responses}}\n" +
"============\n\n" +
"〇〇へのご参加心よりお待ちしております。\n\n" +
"------------\n" +
"ボランティア協議会\n" +
"Email: info@〇〇event.com\n" +
"TEL: 0120-〇〇〇-〇〇〇\n" +
"HP: http://meijo-volunteer.com/";
この部分では、メールの件名と本文のテンプレートを定義しています。subject
はメールの件名を表し、bodyTemplate
はメールの本文のテンプレートです。{{responses}}
という部分は後ほど回答内容が挿入される箇所です。
// ステップ3: 最初の回答のみに対してメールを送信する
let answer = itemResponses[0].getResponse();
if (answer === "参加") {
let questionTitle = itemResponses[0].getItem().getTitle();
// メール本文の回答部分を作成
let responseText = questionTitle + ": ";
if (answer) {
responseText += answer;
} else {
responseText += "未回答";
}
// 参加の回答の場合、詳細URLを追加
有いたします。
responseText += "\n\nイベントの詳細については、以下のURLから入ることのできるラインで共有いたします!\n";
responseText += "https://line.me/ti/g/pDExB0dQKo";
この部分では、回答内容に基づいてメール本文の回答部分を作成しています。まず、回答内容の部分を作成し、responseText
に格納しています。その後、参加の回答の場合はイベントの詳細URLを追加しています。
// 個別のメール本文を作成
let body = bodyTemplate.replace("{{responses}}", responseText);
// メールを送信
GmailApp.sendEmail(recipient, subject, body);
}
}
この部分では、個別のメール本文を作成し、bodyTemplate
の中の{{responses}}
を実際の回答内容に置き換えます。それから、GmailApp.sendEmail()
メソッドを使用してメールを送信します。メールの宛先はrecipient
、件名はsubject
、本文はbody
となります。
、Google フォームのイベントトリガーとして設定することで、フォームの回答があった際に自動的にメールを送信する機能を実現することができます!!!!!!!
参考にしたサイト
下の記事ではgoogle formの値をどのように取得しているのか理解する事ができる!!!