2016-05-17 33 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/

相關問題