在Facebook Messenger中,有一个图标允许用户发送他们的地理坐标。
这是否可以在Facebook Messenger平台上使用,即如果用户向我发送他们的位置,我的Chatbot是否可以访问它?如果是这样,它是如何完成的,因为我无法在webhook的响应中看到它。
答案 0 :(得分:21)
您在邮件中将该位置作为附件获取。见下面的示例:
{ mid: 'mid.1463464074086:96b149e1a047e47842',
seq: 2076,
attachments:
[ { title: 'Anupam\'s Location',
url: 'https://www.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%2Fdefault.aspx%3Fv%3D2%26pc%3DFACEBK%26mid%3D8100%26where1%3D19.120002%252C%2B72.863715%26FORM%3DFBKPL1%26mkt%3Den-US&h=AAQH523sr&s=1&enc=AZNmEBjv3zHHm0_dYnEIC6j7EDsJNt8PZRZZyaXbIZ6VzjPsQUOOaMIPGtXFH17CevUiNK0_K594CgDQHAMQSru7uS_jjbkxojBWNwBnncqzaw',
type: 'location',
payload: [Object] } ] }
从有效负载中,您可以使用以下方式访问纬度和经度
lat = event.message.attachments[0].payload.coordinates.lat
lng = event.message.attachments[0].payload.coordinates.long
答案 1 :(得分:1)
是的,该位置将作为附件发送到邮件中。如果您参考facebook messenger平台文档中给出的示例代码,则可以按如下方式进行修复....(请参阅此处的完整代码https://developers.facebook.com/docs/messenger-platform/quickstart)
else if (messageAttachments) {
console.log(messageAttachments[0].payload.coordinates.lat); //gives you lat
console.log(messageAttachments[0].payload.coordinates.long); // gives you long
}
答案 2 :(得分:0)
目前有一个关于获取某些用户位置的错误。
当我的用户在facebook-messenger-bot中分享他们的位置时;
虽然我可以获得用户的位置,如下面的响应;
{ mid: 'mid.1463464074086:96b149e1a047e47842',
seq: 2076,
attachments:
[ { title: 'Fatih\'s Location',
url: 'https://www.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%..',
type: 'location',
payload: [Object]
} ] }
但无法获得其他一些用户的位置,如下面的响应;
{
{ mid: 'mid.$cAAD53Ka90kBmfY23q1gTEdy6rrmW', seq: 19104}
}
Facebook小组仍然在处理这个错误,如果你想浏览这个链接: https://developers.facebook.com/bugs/160926314660178/