Facebook Messenger Chatbot 如何收集用户发送的地理位置信息?
Facebook Messenger Chatbot how do I collect the users geo location that they send?
在 Facebook Messenger 中有一个图标允许用户发送他们的地理坐标。
这在 Facebook Messenger 平台上是否可用,即如果用户向我发送他们的位置,我的聊天机器人是否可以访问它?如果是这样,它是如何完成的,因为我在我的 webhook 的响应中看不到它。
您在邮件中以附件形式获取位置。请参阅下面的示例:
{ 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
是的,该位置将作为邮件中的附件发送。如果您指的是 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
}
目前在获取某些用户的位置时存在错误。
当我的用户在 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 团队仍在处理此错误,如果您想浏览,请点击 link:
https://developers.facebook.com/bugs/160926314660178/
在 Facebook Messenger 中有一个图标允许用户发送他们的地理坐标。
这在 Facebook Messenger 平台上是否可用,即如果用户向我发送他们的位置,我的聊天机器人是否可以访问它?如果是这样,它是如何完成的,因为我在我的 webhook 的响应中看不到它。
您在邮件中以附件形式获取位置。请参阅下面的示例:
{ 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
是的,该位置将作为邮件中的附件发送。如果您指的是 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
}
目前在获取某些用户的位置时存在错误。
当我的用户在 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 团队仍在处理此错误,如果您想浏览,请点击 link: https://developers.facebook.com/bugs/160926314660178/