Facebook messenger api - 消息中的元数据不会在响应中返回

时间:2016-10-04 16:30:25

标签: facebook facebook-messenger

我有以下代码来发送包含元数据的短信。当用户使用文本进行响应时,消息上的元数据字段为空。它是一个bug还是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);
    }
  });
}

1 个答案:

答案 0 :(得分:3)

这不是预期的行为方式。如果订阅了" message_echoes"则会立即将元数据字段返回给webhook。领域。这是为了在链接到页面的多个应用程序之间进行协调。

来自更改日志 - https://developers.facebook.com/docs/messenger-platform/changelog

"新字段:元数据,从Send API传递并发送到message_echoes回调,以帮助多个机器人之间的互操作性。"