#やったこと
・LINE Bot宛に特定のメッセージを送ることで,Google Drive 上のSpread Sheetのセルの値を読み取り,それをメッセージとして返すという流れをGoogle Apps Scriptで実現した.
#使い方
① Google DriveでGASのスクリプトファイルを作成する.
②以下のスクリプトをコピペ.LINE Messaging APIのアクセストークンとスプレッドシートのURLを入力する.
// LINE Messaging APIのアクセストークン
var ACCESS_TOKEN = 'hogehoge'
// ユーザがメッセージ送信したときに動く関数
function doPost(e){
var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
var url = 'https://api.line.me/v2/bot/message/reply';
var headers = {
'Content-Type': 'application/json; charset=UTF-8' ,
'Authorization': 'Bearer ' +ACCESS_TOKEN
};
// Google Spread Sheetを開き,読み込む
var sheet = SpreadsheetApp.openByUrl("https://hugahuga");
var val = sheet.getRange("A1").getValue();
var reply = null;
if(userMessage === 'A1の値を教えて!'){
reply = "A1の値は" + val + "です.";
}else{
reply='A1の値を教えて!と言うことでA1の値を返します.';
}
//送信内容
var payload = JSON.stringify({
'replyToken': replyToken ,
'messages': [{
'type': 'text' ,
'text': reply
}]
} )
var options = {
'headers' : headers ,
'method' : 'post' ,
'payload' : payload };
// メッセージを応答
UrlFetchApp.fetch(url ,options)
}
③ 公開→ウェブアプリケーションとして導入と進んで,
Project version:New
Execute the app as:Me
Who has access to the app:Anyone
と設定して「更新」を選択.Webアプリとしてデプロイされる.
④表示されるURLをWebhookURLとしてLINE Messaging APIに登録する.
上のスクリプトでは,セルのA1の値を読み取っている.
LINEで「A1の値を教えて!」と送信すると,A1の値が返ってくる.
以上.