🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

12576閲覧

【GAS】401エラーの対処法を知りたい(LINE MessagingAPI)

MimiHurricane

総合スコア15

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

2クリップ

投稿2019/12/07 08:17

編集2019/12/07 16:29

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mistn

2019/12/07 15:13

アクセストークンは他人に見せないようにしてください。 今すぐ再発行したほうがいいです。
guest

回答1

0

ベストアンサー

「ウェブアプリケーションとして導入」を行ったときにアクセスを許可する設定項目で自分のみにしていませんか?
匿名ユーザーを含む全員がアクセスできる設定にしないとだめです。

投稿2019/12/07 15:36

mistn

総合スコア1191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MimiHurricane

2019/12/07 16:29

はい、全ユーザに設定しています。 参考までに画像を載せておきました。
mistn

2019/12/07 16:51

全ユーザーにはなってますがそれでは匿名ユーザーがアクセスできないです。 そのもう一個下にもあるはずです。それにしてみてください。
MimiHurricane

2019/12/07 17:32

確認させていただきました。 結果、解決できました。 お恥ずかしながら、同じような質問があったのを確認したので、自分は大丈夫と思い込んでました。 同じような質問にも関わらず、ご回答いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問