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

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

解決済

1回答

489閲覧

GASでLINE送信(今度はflexでbroadcast配信)

s.20

総合スコア10

LINE Messaging API

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

Google Apps Script

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

0グッド

0クリップ

投稿2022/11/19 12:27

前提

GASでflexメッセージを送信しようとすると400エラーが返ってくる

実現したいこと

ここに実現したいことを箇条書きで書いてください。
エラーなしでflexメッセージを送信したい

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

Exception: Request failed for https://api.line.me returned code 400. Truncated server response: {"message":"A message (messages[0]) in the request body is invalid","details":[{"message":"invalid property","property":"/body/contents/4/contents/... (use muteHttpExceptions option to examine full response)

該当のソースコード

GAS

1var ACCESS_TOKEN = "トークン"; 2 UrlFetchApp.fetch('https://api.line.me/v2/bot/message/broadcast', 3 { 4 method: 'post', 5 headers: { 6 'Content-Type': 'application/json', 7 'Authorization': 'Bearer ' + ACCESS_TOKEN, 8 }, 9 payload: JSON.stringify({ 10 messages: [ 11 { 12Flex本文 13 } 14 ] 15 } 16 ] 17 }, 18 "styles": { 19 "footer": { 20 "separator": true 21 } 22 } 23} 24 }, 25 ] 26 }), 27 }); 28]

コード上記に他のプログラムを記載しているため、{}の数は合わないかもしれません。

試したこと

何をしたらいいのかわからなかったです

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

s.20

2022/11/19 13:03

修正方法の提案を聞いてるのでこの質問の修正は検討していません。
guest

回答1

0

ベストアンサー

多分 Flex メッセージ の部分の書式がおかしいのでしょう。
エラーメッセージもソースも肝心の部分がないので、これ以上具体的なことは指摘できません。
公式ドキュメント を確認して、どこがおかしいか自分で調べてください。

LINE 公式が Flex Message Simulator を用意してくれているので、こちらを使ってもいいです。

ちなみに、teratail で line flex を検索すると、私が過去に回答したコピペで動作する GAS で Flex メッセージを送信するサンプルが見つかります。

この程度のことも調べてないと思われることから、やってほしいことだけを記載した丸投げの質問という評価は妥当だと感じます。

投稿2022/11/19 15:21

draq

総合スコア2573

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

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

s.20

2022/11/19 15:27

回答ありがとうございます。 draq様がご提示いただきましたサンプルも確認しました。 ですが今回は、pushではなくbroadcastを希望していたため断念しました。 また、Flex Messageも ご提示いただきましたSimulatorを利用したので間違ってはないかと思います。 対処法がありましたらご提示ください。
draq

2022/11/19 15:29

push API と broadcast API の違いを比較すればいいだけでは?ほとんど同じです。
draq

2022/11/19 15:30

結局ドキュメントを読んでないと言っているようなものです。
draq

2022/11/19 15:31

> また、Flex Messageも ご提示いただきましたSimulatorを利用したので間違ってはないかと思います。 これもエラーになっている以上、間違っている可能性が高いです。
s.20

2022/11/19 16:15

ご回答ありがとうございます。 何度か確認して Flex Messageの中で変数を指定していて、その部分が400エラーになっているのではないかと思いました。 対処法をご伝授いただけますと幸いです。 { "type": "text", "text": Text,// "size": "sm", "color": "#555555", "flex": 0 }
s.20

2022/11/19 17:09

できました ありがとうございました。
draq

2022/11/20 02:03

解決したようでよかったですが、「できました」だけでは、後から他の人が見たときに何の参考にもなりません。 何が原因だったのか、どうやって解決したのかを書いてもらえれば、ナレッジベースとしての teratail に貢献出来ると思います。 ちなみに LINE Messaging API はエラーがあった場合、レスポンスに詳細なエラー原因を返してくれます。回答のリンク先の様に、UrlFetchApp.fetch が返す Response の getContextText() でレスポンスボディを取得すれば、調査が楽になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問