LINE botを利用してグループ内に投稿されたコメントをスプレッドシートにどんどんと書き込もうと思っていますが、そもそもLINE botを利用しておうむ返しすることが上手く出来ません。。
最終的にはLINEに対する返信は無しにしようと思っていますが、テスト用に正しくデータ取得できているか確認のため、LINEに返す部分も現在作成してます。
LINE botに関してはこちらの記事を参考に記載しました。
https://arukayies.com/gas/line_bot/line-bot-with-gas
トリガーログを見ている限りdoPostで失敗しています。
色々と調べて以下は問題ないことを確認しました。
- Who has acsess to the appの項目をAnyone, even anonymousに設定
- デプロイ時に新規作成を選択
- Official Account Managerからデフォルトの応答メッセージをオフに設定
- LINE Developers側でWebhookの接続確認を行うと「✔︎成功しました」となります
- Web hocksをOFFとON繰り返し
ちょっと詰まっており、ご助言頂きたいです。
GAS
1const token = “hogehoge” 2 3// メッセージ取得処理 4function doPost(e) { 5 // レスポンス取得 6 const responseLine = e.postData.getDataAsString(); 7 // JSON形式に変換 8 const responseLineJson = JOSN.parse(responseLine).events[0]; 9 // 応答用トークン取得 10 const replyToken = responseLineJson.replyToken; 11 12 // メッセージデータの場合、次処理へ 13 if (responseLineJson.type == 'message') { 14 messageController(responseLineJson, replyToken); 15 insert_ss(responseLineJson); 16 } 17 18} 19 20// メッセージ変換処理 21function messageController(event, replyToken) { 22 // メッセージ取得 23 const message = event.message; 24 // 本文取得 25 const text = message.text; 26 27 // SSに記載 28 insert_ss(text) 29 30 // 返信処理 31 if (text.indexOf('テスト') > -1) { 32 // LINEのメッセージ形式へ 33 let LineMessageObject = [{ 34 'type': 'text', 35 'text': 'てすとぉー' 36 }]; 37 38 // LINEに返信 39 relpyLine(LineMessageObject, replyToken) 40 } 41} 42 43// LINEへの応答処理 44function replyLine(LineMessageObject, replyToken) { 45 const replyHeaders = { 46 'Content-Type': 'application/json', 47 'Authorization': 'Bearer ' + token 48 }; 49 const replyBody = {0. 番号リスト 50 'replyToken': replyToken, 51 'messages': LineMessageObject 52 }; 53 const replyOptions = { 54 'method': 'POST', 55 'headers': replyHeaders, 56 'payload': JSON.stringify(replyBody) 57 }; 58 UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', replyOptions); 59} 60 61// SSへの記載 62function insert_ss(text) { 63 64 const message = responseLineJson.message; 65 const input_text = message.text; 66 const sheet = SpreadsheetApp.openById(‘SS_hogehoge’); 67 68 sheet.getRange('A2').setValue(input_text); 69 70}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/30 11:40