LINEdevelopersにて、Webhookの検証を実行すると、ボットサーバーから200以外のHTTPステータスコードが返されましたというエラーになる問題で困っています。
原因または解決策をご存知の方はいらっしゃいませんか。
私の行った手順は以下です。
(1)LINEのBot開発 超入門(前編) ゼロから応答ができるまでを参考に、Channelを作成する。
(2)Google Apps ScriptでLINE BOTつくったら30分で動かせた件のコードをコピペ。
(3) (2)と同じ記事の内容にしたがってGASでサービスの公開
(4)LINE developper でWebhookの設定まで行う、検証を実行
すると、以下のような結果になりました。
エラー
ボットサーバーから200以外のHTTPステータスコードが返されました 画像
ちなみに、エラーのステータスコードは401でした。 画像
私は検証が上手くいくと思いました。
なぜなら、Google Apps ScriptでLINE BOTつくったら30分で動かせた件の手順通りに行ったからです。
原因を確かめるため、以下のような手順を行ってみました
(a) Messaging API のドキュメントを確認
”有効なチャンネルアクセストークンが指定されていません”
(b) LINE Devaloppers でチャネルアクセストークンを確認
Messaging APIを呼び出すときに使用するチャネルアクセストークンです。このチャネルアクセストークンは期限切れになりません。新しいチャネルアクセストークンを発行したり、既存のチャネルアクセストークンを置き換える場合は、「発行」をクリックします。
上記の表記があるが、再発行をしてもう一度GASでWebhookの設定,
更新→公開URLを LINE Devaloppers に貼り付け
結果に変化はありませんでした。
聞きたいこと
LINE側で他にするべき認証の手続きのようなものがあるのでしょうか?
https://developer.mozilla.org/
また、考えられる原因として
- LINEdevelopersにおいて、何か設定をしていない
- GASのコードに問題がある
などあると思いますが、401エラーがどこの部分ででいるのか知りたいです。
GASのコード(Google Apps ScriptでLINE BOTつくったら30分で動かせた件より)
js
1// LINE developersのメッセージ送受信設定に記載のアクセストークン 2var ACCESS_TOKEN = '----------------------------------------------------; 3 4function doPost(e) { 5 // WebHookで受信した応答用Token 6 var replyToken = JSON.parse(e.postData.contents).events[0].replyToken; 7 // ユーザーのメッセージを取得 8 var userMessage = JSON.parse(e.postData.contents).events[0].message.text; 9 // 応答メッセージ用のAPI URL 10 var url = 'https://api.line.me/v2/bot/message/reply'; 11 12 UrlFetchApp.fetch(url, { 13 'headers': { 14 'Content-Type': 'application/json; charset=UTF-8', 15 'Authorization': 'Bearer ' + ACCESS_TOKEN, 16 }, 17 'method': 'post', 18 'payload': JSON.stringify({ 19 'replyToken': replyToken, 20 'messages': [{ 21 'type': 'text', 22 'text': userMessage + 'ンゴ', 23 }], 24 }), 25 }); 26 return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON); 27} 28
なお、私の環境は以下の通りです。
macOS Mojave 10.14.5
回答1件
あなたの回答
tips
プレビュー