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

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

新規登録して質問してみよう
ただいま回答率
85.48%
LINE Messaging API

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

Google Apps Script

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

Q&A

解決済

2回答

3209閲覧

LINEのおうむ返しボットでおうむ返しをしてくれない

takakomatu

総合スコア22

LINE Messaging API

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

Google Apps Script

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

0グッド

1クリップ

投稿2019/06/22 05:44

###LINEのおうむ返しボットでおうむ返しをしてくれない
以下の記事と同じようにGoogle Apps Script(GAS)でコードを書いてみました。
【LINE Botの作り方】Messaging API × GAS(Google Apps Script)でおうむ返しボットを作成する。
(コードは下記に記載)

以前のteratailでの質問(LINE Messaging APIにて「Webhookが無効...)にて、Webhookが無効なHTTPステータスコードを返すエラーは解決しました。
以下のコードと記事通りに動かしているのですが、私の作ったbotを友達追加した後、メッセージやスタンプを送っているのですが、既読になるだけでおうむ返しをしてくれないという状況です。

些細な指摘でも、ご回答いただけましたら幸いです。
疑問点などもございましたら、お気軽にご連絡ください。
どうぞ宜しくお願いいたします。

以下、コード

function doPost(e) { var events = JSON.parse(e.postData.contents).events; events.forEach(function(event) { if(event.type == "message") { reply(event); } else if(event.type == "follow") { follow(event); } else if(event.type == "unfollow") { unFollow(event); } } ); } function reply(e) { var channel_access_token = "ここにアクセストークン"; var message = { "replyToken" : e.replyToken, "messages" : [ { "type" : "text", "text" : ((e.message.type=="text") ? e.message.text : "Text以外は返せません・・・") } ] }; var replyData = { "method" : "post", "headers" : { "Content-Type" : "application/json", "Authorization" : "Bearer " + channel_access_token, }, "payload" : JSON.stringify(message) }; addLog(replyData); var response = UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", replyData); return response.getResponseCode(); }

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

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

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

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

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

fumito_94

2019/06/22 06:04

処理としてreplyの中には入ってきているのでしょうか?
takakomatu

2019/06/25 14:30

こんにちは。 この度は、回答ありがとうございます。 TypeError: undefined からプロパティ「postData」を読み取れません。(行 3、ファイル「コード」)と出てきておりまして、doPostには入っているようです。ただ、replyまでたどり着いてはいないという状況です。
guest

回答2

0

ベストアンサー

前回の質問と、今回の質問と参考資料を比較する限り

javascript

1 addLog(replyData);

こいつのせいじゃないですかね。
addLogがないかaddLogの中で不正な処理をしてエラーになっているか。

少なくともこれを消したときの動きとこの函数のコードがなきゃまともな回答はつきません

投稿2019/06/22 13:01

papinianus

総合スコア12705

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

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

takakomatu

2019/06/26 04:44

ありがとうございます! addLogを消したら、おうむ返ししてくれました! 本当にありがとうございます!
guest

0

一度、そもそもdoPost()に入ってきてるかの確認と、replyが問題なく動くかの確認をしたほうがいいかもしれないですね。
下記のように試してみてはいかがでしょうか?(もう試されていたら申し訳ありません)

js

1 var events = JSON.parse(e.postData.contents).events; 2 events.forEach(function(event) { 3 Logger.log('in doget()'); 4 reply(event); 5 );

上記後、もしもreplyの中でどこまで処理が進んでいるかを追うといいかもしれないです。
また、もしかしたらアクセストークン自体が間違っている可能性もあるので、そちらも念の為確認していただけると幸いです。

もしも、doget自体に入ってこないのであればGAS側の設定が足りていないかもしれないのでもう一度手順を見てウェブアプリケーションの登録などを確認してみてください。

投稿2019/06/22 07:24

fumito_94

総合スコア679

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

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

takakomatu

2019/06/25 14:29

この度は、回答ありがとうございます。 TypeError: undefined からプロパティ「postData」を読み取れません。(行 3、ファイル「コード」)と出てきまして、doPostには入っているようです。ただ、replyまでたどり着いてはいないという状況です。
takakomatu

2019/06/25 14:36

頂いたコードを試してみても、「var events = JSON.parse(e.postData.contents).events;」でエラーが出てきてしまいます。
fumito_94

2019/06/25 14:47

eとして何もデータがきてないみたいですね
papinianus

2019/06/26 09:27

そのエラーはgasのエディタで関数実行したときのものでしょう。Lineのフレームワークをつかっていてeが来ないことは考えにくいです。 質問に初心者アイコンはありませんが、もうちょっと歩み寄ってもよいのでは?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問