こんにちは。船井総研デジタルのいっちーです。
前回の記事では、Google Apps ScriptのスクリプトからLINEメッセージを送り、手元の端末でも受信できることを確認しました。
今回は、フォームとスクリプトを連動させて、最後の仕上げをしていきたいと思います。
もう一度、最初の構成図を見てみましょう。本稿では、赤枠で示した部分を作っていきます。
回答用のフォームを作る
まずは回答用のフォームを作っていきましょう。Googleフォームからフォームを新規作成します。
フォームの内容は何でもいいので、とりあえず1問だけ質問を作っておきます。フォームが出来上がったら、「送信」を押下します。
フォーム共有用のURLを控えておきましょう。URLを控えたら、「フォームを送信」のモーダルを閉じて下さい。
次に、フォームの回答を収集するためのスプレッドシートを作成します。「回答」タブから「スプレッドシートにリンク」を押下します。
「新しいスプレッドシートを作成」を選択して「作成」を押下します。
スプレッドシートが開くので「拡張機能」から「Apps Script」を選択します。
メッセージ送信のスクリプトを作る
スクリプト作成
Google Apps Scriptのエディタに、下記のコードを入力します。今回は元々作られているmyFunction
は削除して、スクリプト名もそれっぽいものを付けておきましょう。
LineSender.gs
function sendLineMessage(msg) {
var accessToken = '【前々回の記事で作成したアクセストークン】';
var url = 'https://api.line.me/v2/bot/message/push';
var headers = {
Authorization: 'Bearer ' + accessToken,
'Content-Type': 'application/json',
};
var payload = {
to: '【前々回の記事で作成したユーザーID】',
messages: [
{
type: 'text',
text: msg,
},
],
};
var options = {
method: 'post',
headers: headers,
payload: JSON.stringify(payload),
};
var response = UrlFetchApp.fetch(url, options);
Logger.log(response.getContentText());
}
function sendRemindMessage() {
var msg =
'こんにちは!フォームの入力をお願いします!\n【作成したフォームのURL】';
sendLineMessage(msg);
}
function sendResponseMessage() {
var msg = 'ありがとうございます。登録を確認しました!';
sendLineMessage(msg);
}
動作確認
スクリプトを保存したら、動作確認してみましょう。sendRemindMessage
を選択して、「実行」を押下します。
実行権限を求めるようなダイアログが出た場合は、「許可する」方向に倒れるように操作してください。以降も権限を求められた場合は、同様に権限を付与していきます。
実行ログが表示されました。sendResponseMessage
も同様に実行します。
メッセージ着信を確認できました。返信用の関数を直接起動したので、フォームの回答をしていないのに「登録を確認しました!」と、ちょっと奇妙なことになっています。
トリガーを作る
このアプリは、sendRemindMessage
を定時起動し、フォームの送信時にsendResponseMessage
を都度起動します。これを実現するため、トリガーの設定をしていきましょう。
トリガー作成
定時起動のトリガーを作成します。sendRemindMessage
関数に、「時間主導型」「日付ベース」「午前8時~9時」を設定し、「保存」を押下します。
同様に、都度起動のトリガーを作成します。sendResponseMessage
関数に、「スプレッドシートから」「フォーム送信時」を設定し、「保存」を押下します。
動作確認
時間起動で設定したトリガーは時間が来るまで確認できませんが、都度起動のトリガーはすぐに動作確認できます。先程受信したメッセージのフォームURLをタップしてみましょう。
フォームが開くので、必要事項を入力して「送信」をタップします。
メッセージ着信が確認できました。スクリプトの実行記録も見てみましょう。
トリガー実行したスクリプトが正常終了している記録が確認できます。
翌朝見てみると、ちゃんと定時起動のメッセージも着信していました。
まとめ
これまでの手順で、トリガーからGoogle Apps Scriptを起動し、LINE Messaging APIを使ってLINEメッセージを送る仕組みを構築できました。自動的にメッセージを送る仕組みは色々と応用ができると思いますので、本記事が面白いものを作るヒントになれば幸いです。
今回の連載は、これにて終了です。最後までお読み頂き、ありがとうございました。
それではまた。