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回调,帮助互操作性悫多个机器人。”