Facebook Messenger的API - 消息的元数据不会回来
问题描述:
我有以下代码发送带有元数据的文本消息。当用户使用文本进行响应时,消息中的元数据字段为空。它是一个错误还是Messenger api不支持这个功能?Facebook Messenger的API - 消息的元数据不会回来
function sendTextMessage(recipientId, messageText, metadata) {
var messageData = {
recipient: {
id: recipientId
},
message: {
text: messageText,
metadata: metadata,
}
};
callSendAPI(messageData);
}
function callSendAPI(messageData) {
request({
uri: 'https://graph.facebook.com/v2.6/me/messages',
qs: { access_token: PAGE_ACCESS_TOKEN },
method: 'POST',
json: messageData
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
var recipientId = body.recipient_id;
var messageId = body.message_id;
if (messageId) {
console.log("FBHook Successfully sent message with id %s to recipient %s",
messageId, recipientId);
} else {
console.log("FBHook Successfully called Send API for recipient %s",
recipientId);
}
} else {
console.error(response.error);
}
});
}
答
这不是它预期的表现方式。如果订阅“message_echoes”字段,元数据字段将立即返回到webhook。这是为了链接到页面的多个应用程序之间的协调。
从更新日志 - https://developers.facebook.com/docs/messenger-platform/changelog
“新场:元数据,从发送API通过并送至message_echoes回调,帮助互操作性悫多个机器人。”