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

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

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

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

Google Apps Script

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

Q&A

解決済

9回答

3495閲覧

Google Apps ScriptでLINE Messeging APIをつなげて送ってもまったくログが返ってこない。。。

tensais1

総合スコア14

LINE Messaging API

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

Google Apps Script

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

0グッド

0クリップ

投稿2019/06/22 08:28

編集2019/07/22 10:54

前提・実現したいこと

コードのエラーと言うより設定のエラーなのかな?と思うのですが、「文字起こしくん」というLINE BOTのチュートリアルをやっており、該当コードをGASに入力し、LINEAPIのWebhookURLとして、GASのWEBアプリケーションの導入から、取得したURLを設定して、LINE BOTに作ったアカウントに画像やテキストを送っているのですが、何も返ってきません。
エラーメッセージに記載している内容は、あくまでもdoPostにeとして、送られたものがあった場合に起動するので、GAS上で実行してもエラーになるのだと思うのですが、これはコードの問題なのでしょうか?GASの設定が間違っているのでしょうか?
ここだけに3時間近くハマってしまっています。。。

発生している問題・エラーメッセージ

エラー TypeError: undefined からプロパティ「postData」を読み取れません。 at doPost(コード:9)

該当のソースコード

Google

1function doPost(e) { 2 const lineJson = JSON.parse(e.postData.contents); 3 console.log(lineJson); 4}

試したこと

GASのWEBアプリケーションの導入を都度行い、取得した新しいURLを都度LINEのWebhookURLに設定し、接続の確認後、LINEBotに画像やテキストを送るも、デバックstackdriver Loggingには一切反応がなく、コードを実行してもエラーが出るだけでどうしたものか、わかりません。LINE側のこのコードだけでなく、全部のコードを入れても同様なので、LINE APIの問題なのかなぁとも思っています。
これだとアクセストークンの設定がないからだと、

下記のサイトと全く同じで、アクセストークンだけ変更したのですが、特に変わらず…
https://qiita.com/tetrapod117/items/e7b48485c98f6b88f311

イメージ説明

補足情報(FW/ツールのバージョンなど)

添付画像が該当説明項目です。
https://note.mu/daikawai/n/n9e203dd4063a

###その後の処理
GCPに紐づけると、下記参照
https://qiita.com/tensais1/items/863e44f2f1384abba4d6

下記のようにstackdriver Loggingでログが見れるのでここを開く

イメージ説明

とこういうページが表示されるようになるのでここにログが表示されてました。

イメージ説明

イメージ説明

###おまけ
文字おこしくんのコードに関しては、短縮コードというところが短縮したら表示されなかったので、短縮しないで書かないといけなかったので、エラーの方はそちらも試してみてください。

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

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

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

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

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

guest

回答9

0

おっしゃるとおり、doPostはスクリプトエディタではデバッグできません。
デバッグしたければそのためのドライバを書く必要があります

参考書なんてのは合わなかったら次に行くものです。

直近4つくらい回答してるのでそれを見て進めるか進めなきゃ別の資料を探してください

過去1
過去2
過去3
過去4

文字起こしくんていうのも過去質問で見たので検索してみてください。その資料を買ってくれれば文字起こしくんのカイセ資料書きますよ

投稿2019/06/22 12:44

papinianus

総合スコア12705

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

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

tensais1

2019/06/22 13:52

たしかにおっしゃるとおりですね〜。時間だけがすぎていくので質問だけして他に行ってやろうかなんて思っちゃいますが、それだといつまでたっても進まないので初心者のうちは耐えるしかないのかとも思いつつ。。
guest

0

質問にあるコードでは「何かを返す」という処理がないので、何も返ってこないのは正常な動作だと思います。

投稿2019/06/22 12:12

mistn

総合スコア1191

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

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

tensais1

2019/06/22 12:43

ありがとうございます!処理自体はLINEでこのGASに送るように処理していたのでコードからの実行ではありませんでした。 ただ、Apps Script ダッシュボードの表示の問題だったようで、起動はしていました!
guest

0

イメージ説明

めちゃめちゃ悔しいんで画像貼りました
2行目と16行目を変えました。実行するとエラーが出ます。

2行目
const LINE_ACCESS_TOKEN = "PFhogehoge=";

16行目
const API_KEY = "AIhogehogejg";

エラー
文字列リテラルが閉じられていません。(行 6、ファイル「」

6行目
const lineImageUrl = "https://api.line.me/v2/bot/message/" + messageId + "/content/";

投稿2019/07/22 10:43

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

tensais1

2019/07/22 10:48 編集

6行目、quotの後に" で閉じないとだめです!ここに貼っても何故か消えてしまうのですが、 quot;" です
tensais1

2019/07/22 10:49

そんな感じで他にも消えてるのか?
退会済みユーザー

退会済みユーザー

2019/07/22 10:52

ありがとうございます
退会済みユーザー

退会済みユーザー

2019/07/22 10:52

はい。少なくとも4箇所消えてます(号泣
tensais1

2019/07/22 10:55

上にスクショ貼りました!エスケープ処理ってやつですね
guest

0

お世話になります。やはりソースをコピーして以下2行を変更しましたが全く動かず困っています。お知恵を拝借させて下さい。まずアクセストークンとApikeyに相違がない事は30回以上確認しました。

ソース変更した箇所は二箇所
var CHANNEL_ACCESS_TOKEN = '【自分のBotのアクセストークン】';
var googleToken = '【取得したAPI Key】'; //Google Cloud APIのAPI KEY

その後やった事はステップ3までです。

STEP1 Google側

ソースを変更した後にhttps://script.google.com/のメニューから
「公開」→「Webアプリケーションとして導入」を押しました。

現在のウェブ アプリケーションの URL:LINEの
プロジェクト バージョン:NEW
次のユーザーとしてアプリケーションを実行:自分
アプリケーションにアクセスできるユーザー:全員

更新ボタンを押しました。

STEP2 LINE側

LINE側のメッセージ送受信設定 
Webhook送信 利用する
Webhook URL ※SSLのみ対応
https://script.google.com/xxxxxxxxxxxxxxxxxxxxxx/exec
を記入しております。

アプリタイプ  BOT
Permissions  PROFILE
利用可能な機能 REPLY_MESSAGE PUSH_MESSAGE
Botのグループトーク参加 利用する
自動応答メッセージ 利用する
友だち追加時あいさつ  利用する

STEP3

携帯で登録したLINEから写真を自分のアプリに投稿しましたが、自動返送文章が何回も返送するばかりで何も返ってこない状況です。

1日どころか1週間徹夜してもなおりません。宜しくお願いいたします。

投稿2019/07/22 08:43

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2019/07/22 09:32

回答ありがとうございます。チェックしていませんでした。すぐに実施し返信いたします。引き続き宜しくお願いいたします。
tensais1

2019/07/22 09:40 編集

うろ覚えですが、そういえば、const lineImage = lineImageResponse.getContent();と、const imageText = visionTextResponse.getContentText(); の短縮形を使うって書いてましたが、短縮形だと機能しなかったので、短縮せずに書いたら動いたと思います。 ``` const lineImage = lineImageResponse.getContent(); const lineImageBlob = Utilities.base64Encode(lineImage); const API_KEY = "APIきー"; const visionRequestUrl = 'https://vision.googleapis.com/v1/images:annotate?key=' + API_KEY; const payload = JSON.stringify({ "requests":[ { "image": { "content": lineImageBlob }, "features": [ { "type": "TEXT_DETECTION", "maxResults": 1 } ] } ] }); const visionTextResponse = UrlFetchApp.fetch(visionRequestUrl, { method: "POST", contentType: "application/json", payload: payload, }) const imageText = visionTextResponse.getContentText(); //戻ってきたJSONデータ console.log(imageText); const visionTextJson = JSON.parse(imageText); //JSONデータをオブジェクトに変換 console.log(visionTextJson); const visionText = visionTextJson.responses[0].fullTextAnnotation.text; ```
退会済みユーザー

退会済みユーザー

2019/07/22 09:44

紐づけておりませんでした。紐づけましたが何も表示されません。 そこで function doPost(e) { const lineJson = JSON.parse(e.postData.contents); console.log(lineJson); } だけにソースを変えて試しました。
退会済みユーザー

退会済みユーザー

2019/07/22 09:53

新しくレスを作成いたします。上記ソースをコピーしてAPIキーを変更すれば動きますか?
退会済みユーザー

退会済みユーザー

2019/07/22 09:54

function doPost(e) { const lineJson = JSON.parse(e.postData.contents); console.log(lineJson); } 上記3行だけにソースを変えても以下エラーがでました。 TypeError: undefined からプロパティ「postData」を読み取れません。(行 2、ファイル
退会済みユーザー

退会済みユーザー

2019/07/22 10:00

他にもトライしてみた方が良いと思いまして https://qiita.com/tensais1/items/ddc31957f77c74443e32 の記事にあるソースをコピーしLINEアクセストークンを変更し実行すると以下エラーが出ました。 ReferenceError: 「PROPERTIES」が定義されていません。(行 1、ファイル「」) 行1行目にはアクセストークンが以下のように入っています。 var LINE_ACCESS_TOKEN = PROPERTIES.getProperty('kokoniakusesutokengahaitteirufasfasdfat89/1O/w1cDnyilFU=');
退会済みユーザー

退会済みユーザー

2019/07/22 12:09 編集

エラーは表示されました。 Head doPost エディタ 2019/07/22 18:57:05 0.012 秒
tensais1

2019/07/22 10:05

う〜ん。今、投稿にその後の処理を記載したのですが表示されませんかね?
退会済みユーザー

退会済みユーザー

2019/07/22 12:09 編集

だめですねでも
退会済みユーザー

退会済みユーザー

2019/07/22 12:09 編集

丁寧にありがとうございます。
退会済みユーザー

退会済みユーザー

2019/07/22 12:09 編集

丁寧ですので嬉しいです。
退会済みユーザー

退会済みユーザー

2019/07/22 12:10 編集

コードちょっとはずかしいですがお見せします。
tensais1

2019/07/22 10:16

コード拝見させていただくと、むしろ、私よりもプログラミングができるかたっぽく、私は、文字おこしくんのコードをコピーしてアレンジしただけなので、お力になれないです。。。 下記をみて作られたというわけではないんですよね? https://note.mu/daikawai/n/n9e203dd4063a
退会済みユーザー

退会済みユーザー

2019/07/22 10:28 編集

なるほど
退会済みユーザー

退会済みユーザー

2019/07/22 10:27 編集

テスト
退会済みユーザー

退会済みユーザー

2019/07/22 10:27 編集

です
退会済みユーザー

退会済みユーザー

2019/07/22 12:10 編集

まさかのまさかです。これ
tensais1

2019/07/22 10:35

えーーーーガ━━(;゚Д゚)━━ン!! 丸々コピペなんですけど。。。GCPのログビューでみてますよね?
退会済みユーザー

退会済みユーザー

2019/07/22 10:36

マジすか。。。。。
tensais1

2019/07/22 10:42

すいません。私にはわかりません。。。
退会済みユーザー

退会済みユーザー

2019/07/22 10:44

いま画面キャプチャしました。2行目と16行目以外いじってないのに(大泣)”で閉じてなかったという記憶はございませんか?
tensais1

2019/07/22 10:44

これ、quot;の後に " がないですよ!って、多分そこは大丈夫そうですけど。。 以下エラーがでてしまい保存できませんでした。"を最後に増やして以下のようにすべきでしょうか? const lineImageUrl = "https://api.line.me/v2/bot/message/" + messageId + "/content/";
退会済みユーザー

退会済みユーザー

2019/07/22 10:55 編集

それとも。。。
tensais1

2019/07/22 10:45

あれ、消えてる。。
tensais1

2019/07/22 10:45

teratailに入れたら消える?
退会済みユーザー

退会済みユーザー

2019/07/22 11:06 編集

teratailに入れると消えますね
退会済みユーザー

退会済みユーザー

2019/07/22 11:07 編集

明らかに消えていました。
退会済みユーザー

退会済みユーザー

2019/07/22 11:10 編集

あれ
退会済みユーザー

退会済みユーザー

2019/07/22 11:10 編集

おかしいな
退会済みユーザー

退会済みユーザー

2019/07/22 11:11 編集

すみません。4、5箇所エラーが出てしまいます
tensais1

2019/07/22 10:59

送れてるのかよくわかりませんが、送りました
退会済みユーザー

退会済みユーザー

2019/07/22 11:11 編集

ううう。ありがとうございます
退会済みユーザー

退会済みユーザー

2019/07/22 11:11 編集

dの後ってやっぱり
退会済みユーザー

退会済みユーザー

2019/07/22 11:26 編集

来ました! 2019-07-22 20:23:00.232 JST TypeError: undefined からプロパティ「postData」を読み取れません。
退会済みユーザー

退会済みユーザー

2019/07/22 12:10 編集

ミイラ取りがミイラに
tensais1

2019/07/22 11:42

文字の入ってる写真を送ってますか?
退会済みユーザー

退会済みユーザー

2019/07/22 11:47

もちろんです。ダメです。LINEで写真を送っても自動定型文が返ってくるばかりです。
退会済みユーザー

退会済みユーザー

2019/07/22 12:11 編集

ダメ
退会済みユーザー

退会済みユーザー

2019/07/22 11:51

ですか?
tensais1

2019/07/22 11:52

全員(匿名ユーザーを含む)ですね
退会済みユーザー

退会済みユーザー

2019/07/22 11:53

了解!すぐ試します
退会済みユーザー

退会済みユーザー

2019/07/22 11:54

きたよ。きたよ。
退会済みユーザー

退会済みユーザー

2019/07/22 11:55

tensaiさん。あなた最高かよ!キターーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
退会済みユーザー

退会済みユーザー

2019/07/22 11:55

ありがとう(全米が泣いた)
tensais1

2019/07/22 11:56

よかったですね(^^)
退会済みユーザー

退会済みユーザー

2019/07/22 12:11 編集

ありがとうございます。
guest

0

suite developer hubの実行数ですね。自己解決しました。ありがとうございました。

投稿2019/07/22 06:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

お世話になります。ご回答頂きましてありがとうございます。

添付画像頂きました「フィルタをクリア」をしたいのですが、そもそも添付頂いたこの画面がどこのサイトのページなのかがわかりませんので教えて頂けますでしょうか?

GCPでもご存知の通り左メニュー欄に40種類以上あります。御手数かけますが以下テンプレートに記載いただけたら嬉しいです。

GCP「」→「」→「」→「フィルタをクリア」を押す
GAE「」→「」→「」→「フィルタをクリア」を押す
その他「」→「」→「」→「フィルタをクリア」を押す

投稿2019/07/22 06:07

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

このページでフィルタをクリアしたら表示されました。
イメージ説明

ただ、Apps Script ダッシュボードでのログではなく、GCPとの連携後はStackdriverLoggingでみるようになるので、Apps Script ダッシュボードは使う必要がなくなっていました。

投稿2019/07/21 22:31

tensais1

総合スコア14

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

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

0

お世話になります。全く同じ症状でつまづいております。どのダッシュボードのどのフィルタを解除するとエラーTypeError: undefined からプロパティ「postData」を読み取れません。 at doPost(コード:9)が解除されるのか詳しく記載頂けますでしょうか?その後実際に動きましたか?

お手数かけますがご教示ください。

投稿2019/07/20 11:24

編集2019/07/22 06:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

tensais1

2019/07/21 22:31

画像の貼り付け方がわからなかったので、自己解決法で投稿しました!
guest

0

自己解決

デフォルトだとダッシュボードにフィルタがかかっていて、フィルタを消したら表示できた。

投稿2019/06/22 12:44

tensais1

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問