この記事を読むのに必要な時間は約 2 分15秒です。
こんにちわ!
掲題の件の通りですが、LINE Message APIを利用してbotを作成した際にデバッグ出来ずに困ったので、記事として残します。
やりたい事
LINE Message APIとスプレッドシートを使って便利メモを作成したく、制作に着手しました。
サンプル

↑↑↑
カレーとbotに対してでLINEで送付すると横のレシピと作成手順を返してくれるようなイメージです。
困った事
LINE BOT GAS等で検索すると沢山の良記事を見つけられるかと思います。しかし、プログラミングあるあるかと思いますが、実際にその通りにやっているのに動かない!!というパターンです。(私だけ??)
そんなときにどこで間違っているのか探す際に通常であればLog等出して対応しますが、botはLINEからメッセージを受信し、その内容に対しての操作をプログラム上実施するため、デバッグが出来ずに困りました。
またGASのトリガー履歴を見てもエラーである事は分かるのですが、その詳細までは掲載されていないため、どの処理でNGとなっているか分からず、途方に暮れました。
解決方法
私はこうしました、というあくまで事例です。
実際にどこまで上手くいっているか、スプレッドシートに書き込みさせてチェックしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
// メッセージ取得処理 function doPost(e) { debug('check1'); // レスポンス取得 const responseLine = e.postData.getDataAsString(); debug('check2'); // JSON形式に変換 const responseLineJson = JSON.parse(responseLine).events[0]; debug('check3'); // 応答用トークン取得 const replyToken = responseLineJson.replyToken; debug('check4'); // メッセージ変換処理へ messageController(responseLineJson, replyToken); } } // スプレットシートに書き込み function debug(text){ const sheet = SpreadsheetApp.openById('SpreadSheet ID'); sheet.getRange('A1').setValue(text); } |
debug(‘check〇’)と各処理毎に記載する事でスプレットシート記載されたcheck〇を見れば、どこまで処理が出来ているかを確認する事が出来ます。
私の場合はcheck2のJSON.parseがJOSN.parseとなっており、死んでましたOTL
感想
他にもっといい方法があるかもしれませんが、Googleで探してみた際に、入力データを疑似的に作るなど結構難しい事をしているのを散見しました。
私のケースで言えば、大した事をしようとしているわけではないので、簡単なこちらの方法でも十分かなと思いました。
もしLINE bot製造で詰まっている方の参考になれば幸いです。