2016-05-17 34 views

回答

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 
+0

拥有的Facebook最近才开始允许在响应这个信息,因为我已经研究之前的位置信息除了mid等之外没有其他的东西。我是否需要任何特定的权限才能得到它? –

+1

我过去25天一直在使用它。尝试记录event.message.attachments [0] .payload –

+0

你是对的!我相信我已经尝试了几次,但是有效载荷中没有任何东西。好吧。感谢您的帮助。 –

1

是,该位置将被作为消息中的附件发送。如果你指的是Facebook的Messenger平台文档中给出的示例代码修复可以做如下....在其他部分

else if (messageAttachments) { 

       console.log(messageAttachments[0].payload.coordinates.lat); //gives you lat 

       console.log(messageAttachments[0].payload.coordinates.long); // gives you long 
      } 
0

(请在这里参阅完整的代码https://developers.facebook.com/docs/messenger-platform/quickstart

现在有一个关于获取用户位置的错误。

当我的用户在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/

相关问题