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

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

詳細はこちら
Watson

Watsonは、IBMが開発した質問応答・意思決定支援を行うシステムです。人口知能と言われることもあるが、IBMは自然言語処理と機械学習を用いて人間の意思決定を支援するコグニティブコンピューティングプラットホームと呼んでいます。

LINE Messaging API

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

Node-RED

Node-REDは、ビジュアルプログラミング向けのフローベース開発ツールです。ブラウザベースのUIになっており、さまざまなノード(Node)を結びつけることでフローを作成でき、処理を実現します。

Q&A

1回答

2709閲覧

LINEbotで2通以上画像送信がしたい

sophiai

総合スコア0

Watson

Watsonは、IBMが開発した質問応答・意思決定支援を行うシステムです。人口知能と言われることもあるが、IBMは自然言語処理と機械学習を用いて人間の意思決定を支援するコグニティブコンピューティングプラットホームと呼んでいます。

LINE Messaging API

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

Node-RED

Node-REDは、ビジュアルプログラミング向けのフローベース開発ツールです。ブラウザベースのUIになっており、さまざまなノード(Node)を結びつけることでフローを作成でき、処理を実現します。

0グッド

0クリップ

投稿2021/01/18 02:41

前提・実現したいこと

IBMwatsonの応答をLINEで投稿したいと考えています。

テキストメッセージ1通返信するところまでは何とか出来ましたが、相手の投稿内容によって画像を表示させたり、2通以上返信メッセージを送ったりしたいです。

投稿内容によって画像を送付するコードは下記のものを参考にいたしていましたが、できませんでした。2通以上送るものは参考コードも不明です。

様々なサイトを参考にしていますが、素人でなかなか上手くいきません。お力を貸してください。お願いします。

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

エラーメッセージ

該当のソースコード

var outMessage = msg.payload.output.text[0];
var code = '%LINE アクセストークン%';
var post_request = '';

//FlexMessageを表示したい時
if (msg.payload.entities[0].value=='ゆず酎ハイ') {
var sentmsg = {
"type": "bubble",
"hero": {
"type": "image",
"url": "https://****画像URL",
"size": "full",
"aspectRatio": "3:2",
"aspectMode": "cover"
},
"body": {
"type": "box",
"layout": "vertical",
"spacing": "md",
"contents": [
{
"type": "text",
"text": "¥280",
"size": "xl",
"weight": "bold"
},
{
"type": "text",
"text": "ゆず果汁の豊潤な香りと酸味がひきたち、まろやかでコクのある味わいが楽しめます",
"wrap": true,
"color": "#aaaaaa",
"size": "xs"
}
]
}
};
//ある条件の時
post_request = {
"headers": {
"content-type": "application/json; charset=UTF-8",
"Authorization": " Bearer " + "{" + code + "}"
},
"payload": {
"replyToken": flow.get("replyToken"),
"messages": [{
"type": "flex",
"altText": "#",
"contents": sentmsg
}]
}
};
}else{
//通常返信
post_request = {
"headers": {
"content-type": "application/json; charset=UTF-8",
"Authorization": " Bearer " + "{" + code + "}"
},
"payload": {
"replyToken": flow.get("replyToken"),
"messages": [
{
"type": "text",
"text": outMessage
}
]
}
};
}

return post_request;

試したこと

上記、参考にせさていただいたコードです。

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

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

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

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

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

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

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

guest

回答1

0

payload.messagesに複数の画像(image)メッセーオブジェクトを設定して送信することで、複数枚画像の送信が可能になります。

"messages":[ { "type": "image", "originalContentUrl": "https://example.com/original.jpg", "previewImageUrl": "https://example.com/preview.jpg" }, { "type": "image", "originalContentUrl": "https://example.com/original.jpg", "previewImageUrl": "https://example.com/preview.jpg" } ]

flexメッセージはjsonの構造が複雑になりがちで、何が問題で送信できていないかが分かりづらいので
まずは画像メッセージを使い複数メッセージの送信を実装して、なれてきたらflex message simulatorを使って確認しながら実装していくのをオススメします。

参考URL:

https://developers.line.biz/ja/reference/messaging-api/#image-message

https://developers.line.biz/flex-simulator/

投稿2021/01/18 06:27

shoya.shiraki

総合スコア430

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問