質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

88.64%

line オウム返しBot作っている際に問題発生

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 653

yuufi

score 5

GASでlineのオウム返しをさせるBotを作っています。
(リンク内容https://note.com/_hasekatsu/n/nc1570cf8264d)様のサイトを参考にさせて頂いて、
アクセストークンやWebhookの設定などを行ったのですが、Botにメッセージを送っても返事がありません。
LINEの実行環境はWindows10で最新版です。

//LINE Developersで取得したアクセストークンを貼り付けます(後述)
var CHANNEL_ACCESS_TOKEN = 'YOUR_CHANNEL_ACCESS_TOKEN'; 
var line_endpoint = 'https://api.line.me/v2/bot/message/reply';


function doPost(e) {
 var json = JSON.parse(e.postData.contents);


 var reply_token= json.events[0].replyToken;
 if (typeof reply_token === 'undefined') {
   return;
 }

 //このmessageが自分の送信したメッセージを表します
 var message = json.events[0].message.text;  

 // メッセージを返信    
 UrlFetchApp.fetch(line_endpoint, {
   'headers': {
     'Content-Type': 'application/json; charset=UTF-8',
     'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
   },
   'method': 'post',
   'payload': JSON.stringify({
     'replyToken': reply_token,
     'messages': [{
       'type': 'text',
       'text': message,
     }],
   }),
 });
 return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}


実行させたい事
オウム返しBotを作る。
今起きていること
オウム返しをBotが行ってくれない
確認したこと
WebhookのURL
LINEのアクセストークン
両者ともに違うところはない。
ご教授よろしくお願いします。
ERROR
TypeError: Cannot read property 'postData' of undefined
at doPost(コード:7:26)
が表示されていました。(ただこれはGASで実行したらそうなるだけで問題点はない…と調べて予測)
LINE側だと
Error
The webhook returned an HTTP status code other than 200
が表示されていました。これが原因かと思われます

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • draq

    2020/05/06 16:26

    ざっと見たところおかしいところは無さそうです。あとは、
    ・doPostの先頭でログ出力してちゃんと呼ばれているか確認
    ・エラーが発生していないかログの確認
    ぐらいはしなければ、他の人には問題があってもわからないでしょう。

    キャンセル

  • draq

    2020/05/06 17:06

    > ただこれはGASで実行したらそうなるだけで問題点はない…
    GASで実行してもなんの確認にもなりません。
    LINEにメッセージ送ってください。

    キャンセル

  • yuufi

    2020/05/06 17:14

    LINEにメッセージを送ってもlogにもStack driver Loggingにも何も表示されません。
    Logger.logをdoPostの前に置くときちんと通りました。

    キャンセル

回答 1

checkベストアンサー

0

僕も試しにやってみたところ、同様の問題が発生してハマっておりました
GAS側の、「公開」メニュー内の、Who has access to the app:
を、「全ユーザー」としていたの原因で、
「Anyone,even anonymous」と変更したことで解決しました。
ご参考になれば幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/05/06 17:38

    出来ました!Any one , even anonymous で他のアプリのユーザーを指定するようですね…ありがとうございます!

    キャンセル

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

  • ただいまの回答率 88.64%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る