LINE Botを開発している過程で、Google Formsからの送信があった際にLINEに通知が送信される機能が必要になり、GASでコードを作成しました。
Google Formsを作成したらスクリプトを開き、下のコードを貼りつけてください。
main.gs
function notifyLineBot(event) {
var itemResponse = event.response.getItemResponses();
var name = itemResponse[0].getResponse();
var roomNumber = itemResponse[1].getResponse();
var position = itemResponse[2].getResponse();
// LINE BotのアクセストークンとユーザーIDを設定
var accessToken = 'ここに入力'; // アクセストークン
var userId = 'ここに入力'; // ユーザーID
// LINEに送信するメッセージを作成
var message = `${name}様からフォームの提出がありました。`;
// LINEに通知を送信
var url = 'https://api.line.me/v2/bot/message/push';
var headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + accessToken
};
var pushData = {
'to': userId,
'messages': [
{
'type': 'text',
'text': message
}
]
};
var options = {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(pushData)
};
UrlFetchApp.fetch(url, options);
}
LINEのアクセストークンとユーザーIDの入力が必要になります。
Google Formsの形式は自由ですが、このコードはフォームの冒頭に氏名を入力する形が前提になっています。
初回起動前に、下図のようにデプロイを行い、アカウントの認証を行ってください。
ただし、デプロイはしてもLINE DevelopersのWebhookにリンクさせる必要はありません。
関数はトリガーで実行される為、LINE Developersへの連携は不要です。
LINEとの連携例としては、下図のようにまずGoogle Formsへのリンクに誘導し、フォームの送信が行われると、LINE側に通知が来るようになります。