質問: { LineAccessToken : 'チャンネルアクセストークン入力', LineReplyUrl : 'https://api.line.me/v2/bot/message/reply', LinePushUrl : 'https://api.line.me/v2/bot/message/push', LinePushNotificationDestination : 'ユーザーID入力', HouseholdAccountBookUrl : 'Google spreadsheet URL入力', FormUrl : 'Google Form URL入力' }; ``` ### 試したこと Webhook設定の検証では成功でした。 GASのソース公開はNewに更新しています。
回答: コードと結果だけを記載したデバッグ依頼は、具体的に発生している状況と原因を特定ために必要な内容が質問文から判断できないと回答がつきにくいと思います。 既読になるが返事が来ないということは、送信部分で失敗しています。 質問のソースコードでは、 > > // LineにPostする > > var message = convertUserMessageToLineMessage(userMessage); > > UrlFetchApp.fetch(Config.LineReplyUrl, createReplyRequest(replyToken, message)); > > > の部分がメッセージの送信なので、この部分で失敗している可能性が高いです。 外部のサーバーとやり取りする部分では、相手からのレスポンスを受け取って、正しく受け取れたことを確認するようなプログラムコードにしてください。 Class UrlFetchApp のドキュメントの例で > > var response = UrlFetchApp.fetch("http://www.google.com/"); > > Logger.log(response.getContentText()); > > > とあるように `UrlFetchApp.fetch` の返値を取得してチェックすることで、相手側サーバー(LINE API)のレスポンスコードやメッセージを確認できます。(返値の内容は、HTTPResponse参照) まずは、`UrlFetchApp.fetch` の返値を確認して、LINE API側が正しく受け取っていることを確認してください。( レスポンスコードは、ドキュメントのサンプルを例にすると `response.getResponseCode()` で取得できます。 テキストメッセージは、`response.getContentText()` です。) 応答メッセージを送る - LINE Messaging APIリファレンス によると 相手が受信成功するとレスポンスコードは、 200。メッセージは、空のJSONオブジェクト( `{}` )。 送信に失敗するとそれ以外のレスポンスコードが返ってきます。) LINE API 側から、エラー(レスポンスコード 200 以外)が帰ってくる場合は、`UrlFetchApp.fetch` のパラメータで渡してる各変数に LINE API が要求しているフォーマットで正しい値が入っているか確認してください。( たとえば、message の内容が メッセージオブジェクトで指定されたフォーマットになっていない場合は、エラーになると思います。 )