自分が失敗したからには他にもやってしまった人がいるだろう
1匹いれば10匹はいる。(ゴキブリ理論)
ということで備忘録です。
gasとLINEBotを連携させてぇ!!!
参考にしたサイト
https://www.dcom-web.co.jp/lab/bot/make_a_line_bot_with_gas
上記サイトを取り合えずコピペ。
しかし、動作せず....
動かなかったコード.gs
function myFunction() {
var access_token = "YOUR_ACCESS_TOKEN"
// リプライ先を特定するためのログ管理スプレッドシートID
// ご飯リストのスプレッドシートID
var spreadsheet_id = "spread_id"
/**
reply
*/
function reply(data) {
var url = "https://api.line.me/v2/bot/message/reply";
var headers = {
"Content-Type" : "application/json; charset=UTF-8",
'Authorization': 'Bearer ' + access_token,
};
var text = "";
if (data.events[0].message.text === "ご飯") {
// ご飯リストスプレッドシートを取得
var gohan = SpreadsheetApp.openById(spreadsheet_id).getSheetByName("ごはん");
// A1セルから入力されている最終行まで一気に取得
var gohanData = gohan.getRange(1, 1, gohan.getLastRow());
// ランダムで候補を選ぶ
var intRandomNum = Math.round(Math.random()*gohan.getLastRow());
text = gohanData.getValues()[intRandomNum][0];
}
else {
text = "「ご飯」って話しかけてね。"
}
var postData = {
"replyToken" : data.events[0].replyToken,
"messages" : [
{
'type':'text',
'text':text,
}
]
};
var options = {
"method" : "post",
"headers" : headers,
"payload" : JSON.stringify(postData)
};
return UrlFetchApp.fetch(url, options);
}
/**
LINEからのPOST受け取り
*/
function doPost(e) {
var json = JSON.parse(e.postData.contents);
var data = SpreadsheetApp.openById(spreadsheet_id).getSheetByName('log').getRange(1, 1).setValue(json.events);
reply(json);
}
}
理由
myFunctionで囲ってたから!!!
はい、すみません。外側はいりませんでしたね。失礼しました。
解決してくれたteratail様
https://teratail.com/questions/299802