Facebook Messsenger,如何处理发送的位置
Facebook Messsenger, how to handle sent location
根据本指南,它向我们描述了如何发送消息和处理按钮文本等。
但是,当用户向机器人发送其geolocation
时,我的 webhook 接收它如下:
{ sender: { id: 99999999999999},
recipient: { id: 99999999999999 },
timestamp: 99999999999,
message:
{ mid: 'mid.9999999:999999999',
seq: 231,
attachments: [ [Object] ] } }
位置作为数组中的某种对象发送到 webhook attachments
。
在我的代码中,我尝试像这样获取它们:
event.message.attachments[0].longitude
event.message.attachments[0].latitude
我得到undefined
.
如何获取用户发送的位置的经度和纬度?文档中没有对此进行描述。
更新
经过一番尝试,我能够获得它的所有属性。当用户发送他们的位置时,我在这个结构中得到它:
{url: https://www.facebook.com/l.php?u=https%3A%2F%2Fwww.bing.com%2Fmaps%2Fdefault.aspx%3Fv%3D2%26pc%3DFACEBK%26mid%3D8100%26where1%3D43.230507%252C%2B76.945031%26FORM%3DFBKPL1%26mkt%3Den-US&h=vAQHe08Kz&s=1&enc=AZPRe3VQFnThq3_jdPFg8R4WWUZxWJA1XjbVvVua4fD0PNpt2u26hvS-noUEU55qQNC6Wm9hNGwpGntrUgu1nx7KsSIKRbGQyKEXueAImV3Kyg}
它是巨大的网址。如果您通过浏览器打开此链接,它将打开 Bing 地图并显示此位置。
很难处理这些数据。它强制用户编写自己的解析器。
纬度和经度在 URL 中:
。其中1%3D 43.230507%252C%2B76.945031%26FORM...
因此,一种方法是将URL转换为文本,然后解析此文本以获取Lat和Long。
更新现在,可以从附件 JSON 直接访问 lat 和 lng:
lat = event.message.attachments[0].payload.coordinates.lat
lng = event.message.attachments[0].payload.coordinates.long
相关文章:
- 在网站中处理 SQL 响应的位置
- 如何使用jQuery对固定元素的位置进行动画处理
- Facebook Messsenger,如何处理发送的位置
- 在 javascript 中添加事件处理程序的位置
- 覆盖批处理IP地址以查找位置
- javascript在处理地理位置时会导致错误
- $apply没有'无法处理“后退”按钮提示的位置更改
- jQuery使用calc作为值(从百分比中减去px)对位置进行动画处理
- 如何使用硒铬驱动程序处理地理位置弹出窗口
- 如何处理 Backbone .js应用程序中哈希更改的滚动位置
- JS/CSS 库,用于根据指针位置对背景进行动画处理
- 具有超时的地理位置会导致错误处理程序被调用两次
- 了解 JavaScript 中的异常处理:当更改 try/catch 块的位置时,获得不同的输出
- 如何处理用户关闭地理位置弹出窗口时的情况
- Javascript:注册事件处理程序的最佳位置
- 根据页面内容在导航中的位置对窗口内外的页面内容进行动画处理.[在里面摆弄]
- Famo.us:如何以编程方式对滚动视图的位置进行动画处理
- 悬停时对背景位置进行动画处理
- document.位置错误处理
- 在多个位置处理同一复选框