Facebook Messenger APIを使用して画像の形式で添付ファイルを受信するにはどうすればよいですか? 文書には、テキストベースのメッセージの受信方法に関する指示のみが記載されています。Facebook Messengerボットで画像を受信する方法
答えて
ボットのコードに使用している言語はわかりませんが、メッセンジャーコードスニペットのほとんどがnode.jsにあるFacebookのドキュメントを参照しているからです。 これは役に立ちます。
app.post('/webhook/', function (req, res) {
//Getting the mesagess
var messaging_events = req.body.entry[0].messaging;
//Looping through all the messaging events
for (var i = 0; i < messaging_events.length; i++) {
var event = req.body.entry[0].messaging[i];
//Checking for attachments
if (event.message.attachments) {
//Checking if there are any image attachments
if(atts[0].type === "image"){
var imageURL = atts[0].payload.url;
console.log(imageURL);
}
}
}
}
FYIこの回答が古くなったかどうかはわかりません。私はClaudiaJSを使ってfacebookボットを作っています。バックエンドはlambda/api gatewayです。今私にとって、イメージを含むものは 'request.message.attachments [0] .payload.url'です。 – SMT
https://developers.facebook.com/docs/messenger-platform/implementation#receive_message
このリンクをチェックしてください。
それは、 "メッセージに画像、ビデオ、または音声の添付ファイルがある可能性があります。
UPDATE:Facebookは最近、多くの内容が不足していると変なふうにダウングレード版で彼らのドキュメンテーションを更新して
上記のリンクが壊れています。
{
"mid": "some mid",
"seq": 26,
"attachments": [{
"type": "image",
"payload": {
"url": "some image url"
}
}]
}
、あなたは多分あなたのサーバーに画像をダウンロードするダウンロード機能を作成することができますコメントで指摘したように、ユーザーが要求を送信すると、サーバーは、このようなJSONを受け取ることになります、詳しく説明し
。
上記のように、このデータを使用するには、webhookを使用できます。
app.post('/webhook', function (req, res) {
var data = req.body;
// Make sure this is a page subscription
if (data.object == 'page') {
console.log(data.entry);
// Iterate over each entry
// There may be multiple if batched
data.entry.forEach(function(pageEntry) {
var pageID = pageEntry.id;
var timeOfEvent = pageEntry.time;
// Iterate over each messaging event
pageEntry.messaging.forEach(function(messagingEvent) {
receivedMessage(messagingEvent);
});
});
// Assume all went well.
//
// You must send back a 200, within 20 seconds, to let us know you've
// successfully received the callback. Otherwise, the request will time out.
res.sendStatus(200);
}
});
function receivedMessage(event) {
var senderID = event.sender.id;
var recipientID = event.recipient.id;
var timeOfMessage = event.timestamp;
var message = event.message;
if (senderID == PAGE_ID) {
console.error("Sender is self.");
return;
}
console.log("Received message for user %d and page %d at %d with message:",
senderID, recipientID, timeOfMessage);
console.log(JSON.stringify(message));
var messageId = message.mid;
// You may get a text or attachment but not both
var messageText = message.text;
var messageAttachments = message.attachments;
if (messageText) {
// If we receive a text message, check to see if it matches any special
// keywords and send back the corresponding example. Otherwise, just echo
// the text we received.
} else if (messageAttachments) {
messageAttachments.forEach(function(messageAttachment) {
var attachmentUrl = messageAttachment.payload.url;
console.log("Received Attachment");
download(attachmentUrl);
}
}
このコードはFacebookのサンプルコードから取得したものです。
2017年2月、私は同じ問題を遭遇し、これを取得して、非常に長い時間稼働させるために苦労しました。実際の添付ファイルがオブジェクト内にある場合、message.attachments
がオブジェクトとして提供されることがわかります。
構造はこのように書き:
添付ファイル> JSONレスポンス> &ペイロードを入力オブジェクト> URL
app.post('/webhook/', function(req, res) {
let messaging_events = req.body.entry[0].messaging
for (let i = 0; i < messaging_events.length; i++) {
let event = req.body.entry[0].messaging[i]
let sender = event.sender.id
// Check if it's a message
if (event.message) {
//Create the attachment
let attachment = event.message.attachments
// Here we access the JSON as object
let object1 = attachment[0];
//Here we access the payload property
let payload = object1.payload;
// Finally we access the URL
let url = payload.url;
console.log(url)
}
else if (event.message && event.message.text) {
// Here you can handle the text
console.log("Just Text")
}
}
res.sendStatus(200)
})
説明せずに、よりコンパクトなバージョンは、次のようになります。
if (event.message) {
let attachment = event.message.attachments
console.log(attachment[0].payload.url)
}
追加ボーナスとして、タイプが画像かどうかを確認することもできます。あなたは、この調整を行うこと追加していることを達成することができます
if (event.message &&) {
let attachment = event.message.attachments[0]
if (attachment.type === "image") {
console.log(attachment.payload.url)
}
}
を希望Pythonで自分のFacebookのチャットボットの画像添付ファイルを受信して保存することが、これは、 ジュリアン
を支援作品:
@app.route('/', methods=['POST'])
def webhook(): # endpoint for processing incoming messaging events
data = request.get_json()
if data["object"] == "page":
for entry in data["entry"]:
for messaging_event in entry["messaging"]:
if messaging_event["message"].get("attachments"):
attachment_link = messaging_event["message"]["attachments"][0]["payload"]["url"]
print("Image received, boss!")
print(attachment_link)
良いチャットボットのこと!PHPで マルコ
、
ボットへのユーザーsentsそれは、レスポンスの下に我々は添付ファイルtype
とurl
{
"object": "page",
"entry": [
{
"id": "000000000000000",
"time": 1511956708068,
"messaging": [
{
"sender": {
"id": "000000000000000"
},
"recipient": {
"id": "000000000000000"
},
"timestamp": 1511956707862,
"message": {
"mid": "mid.$xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"seq": 42172,
"sticker_id": 369239263222822,
"attachments": [
{
"type": "image",
"payload": {
"url": "https:\/\/scontent.xx.fbcdn.net\/v\/t39.1997-6\/851557_369239266556155_759568595_n.png?_nc_ad=z-m&_nc_cid=0&oh=9058fb52f628d0a6ab92f85ea310db0a&oe=5A9DAADC",
"sticker_id": 369239263222822
}
}
]
}
}
]
}
]
}
が含まれている取得するとこれは、ユーザーからのメッセージの異なる種類を取得する方法であります
//get the response from user
$input = json_decode(file_get_contents('php://input'), true);
//first check if attachment is present
$attachment = array_key_exists('attachments', $input['entry'][0]['messaging'][0]['message']);
//get the attachement type and url
$type = $input['entry'][0]['messaging'][0]['message']['attachments'][0]['type'];
$file_url = $input['entry'][0]['messaging'][0]['message']['attachments'][0]['payload']['url'];
希望すると、
- 1. githubページでFacebook Messengerボットをホストする
- 2. Facebook Messengerボットで新しいセッションアクセストークンを取得する方法
- 3. Facebook Messengerにボットを接続
- 4. Facebook Messengerボットの日付ピッカーカード
- 5. Facebook Messengerボットとウェブサイトアカウントをリンクする
- 6. Facebook Messenger Bot Python画像を送信する
- 7. Facebook App User IDとMessenger IDをリンクしてFacebook Messengerボットに使用する方法
- 8. Facebook Messenger Bot、画像添付ファイルを送信
- 9. Facebook Boot Campを使用したMessengerボット?
- 10. get_started + facebook messenger chatbotのバナー画像
- 11. Facebook Messengerボットをionicアプリに統合する方法はありますか?
- 12. Facebook Messengerボットで送信したメッセージのエコーを取得しています
- 13. Facebook Graph API Messengerの統合 - パラメータ受信者が必要です
- 14. Facebook Messengerで選択したボタンに返信する方法
- 15. Facebook messenger live bot公開メッセージを受信できません
- 16. Facebookのメッセンジャーでボットにパラメータを送信する方法
- 17. Facebook messenger apiビデオメッセージを送信
- 18. MessengerボットとのConnectionError
- 19. Facebook Messengerボットに絵文字を表示するには?
- 20. ブルートゥースアンドロイド経由でテキストと画像を送受信する方法
- 21. Facebook Messengerボットがストライプで支払いをトークン化
- 22. Bluetoothで画像を受信する
- 23. Androidで画像を送受信する
- 24. ソケットで画像を送受信する
- 25. MessengerボットのRubyリソース?
- 26. Facebook Messengerボット、複数のメッセージやペイロードを返す
- 27. メッセージを作成する方法Messengerボットnodejs
- 28. 複数の画像を送受信する方法
- 29. Facebookのボットが互いに通信する方法
- 30. 画像で電報ボットにメッセージを送信する
こんにちは、ようこそ。 [こちらを読んでください](http://stackoverflow.com/help/mcve)を確認し、質問を改善してください。他の人がそれを理解しやすくするのに役立ちます。 –
https://developers.facebook.com/docs/messenger-platform/webhook-reference#received_messageには、添付ファイル付きのメッセージのJSONデータ構造の例があります。 – CBroe