GASでLINE応答Botを作っていて
解決したいこと
LINEBotを作りたい
LINEBotを作りたいと思いとりあえずと思って
https://first-contact.jp/blog/article/linebot/
上記のサイトを見ながら進めていました。
アカウントも作成し、Webhookも成功していたのですが、
いざLINEで何かメッセージを送ってみても応答せず、
GASの方でもエラーを吐きました。
解決法が分からないので質問を投げました。
分かる方いましたら、教えていただけると幸いです。
発生している問題・エラー
TypeError: Cannot read property 'postData' of undefined
doPost @ コード.gs:2
全体のコード)
※チャンネルのアクセストークンは伏せてます。
function doPost(e) {
var replyToken= JSON.parse(e.postData.getDataAsString()).events[0].replyToken;
if (typeof replyToken === 'undefined') {
return;
}
var url = 'https://api.line.me/v2/bot/message/reply';
var channelToken = '---------------------------------';
var messages = [{
'type': 'text',
'text': 'おはようございます',
}];
UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + channelToken,
},
'method': 'post',
'payload': JSON.stringify({
'replyToken': replyToken,
'messages': messages,
}),
});
return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
自分で試したこと
・Qiitaにてオウム返しBotを作ろうとしている方が、同じような問題にあたっていたのでその回答にあった方法を試してみたところ、それでも何も変わりませんでした。
※変えたのは2行目の
var replyToken= JSON.parse(e.postData.getDataAsString()).events[0].replyToken;
の部分で、元のコードは
var replyToken= JSON.parse(e.postData.contents).events[0].replyToken;
となっていました。