2016-05-17 5 views
20

फेसबुक मेसेंजर में एक आइकन है जो उपयोगकर्ता को अपने भू-निर्देशांक भेजने की इजाजत देता है।फेसबुक मैसेंजर चैटबॉट मैं उन उपयोगकर्ताओं के भौगोलिक स्थान को कैसे एकत्र करूं?

Location Sent through Facebook Messenger

अभी तक अर्थात एक उपयोगकर्ता मुझे उनके स्थान भेजता है, तो मेरी chatbot इस तक पहुंच हो करता है फेसबुक मैसेंजर मंच पर उपलब्ध इस है? यदि ऐसा है तो यह कैसे किया जाता है क्योंकि मैं इसे अपने वेबहुक में प्रतिक्रिया में नहीं देख सकता।

उत्तर

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

है फेसबुक हाल ही में जवाब में यह जानकारी की इजाजत दी शुरू कर दिया है क्योंकि मैं पहले स्थान संदेश की जांच की है और मध्य आदि के अलावा कुछ भी नहीं था। क्या मुझे यह प्राप्त करने में सक्षम होने के लिए किसी भी विशिष्ट अनुमति की आवश्यकता है? –

+1

मैं पिछले 25 दिनों से इसका उपयोग कर रहा हूं। लॉगिंग event.message.attachments [0] .payload –

+0

आप सही हैं! मुझे विश्वास है कि मैंने कई बार कोशिश की थी लेकिन पेलोड में कुछ भी नहीं था। ओह अच्छा। सहायता के लिए धनयवाद। –

1

हाँ, स्थान संदेश में अनुलग्नक के रूप में भेज दिया जाएगा। आप फेसबुक दूत मंच दस्तावेज में दिए गए उदाहरण कोड की बात कर रहे हैं ठीक किया जा सकता है इस प्रकार है ....

बाकी अनुभाग

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 देखें) उपयोगकर्ताओं के कुछ स्थान प्राप्त करने के बारे में अभी एक बग है।

जब मेरे उपयोगकर्ता फेसबुक-मैसेंजर-बॉट में अपना स्थान साझा करते हैं;

जबकि मैं उपयोगकर्ताओं की स्थिति नीचे प्रतिक्रिया की तरह प्राप्त कर सकता हूं;

{ 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} 
    } 

फेसबुक टीम अभी भी इस बग पर काम कर रहे, इस लिंक पर है अगर आप ब्राउज़ करना चाहते हैं: https://developers.facebook.com/bugs/160926314660178/

संबंधित मुद्दे