How to send location from Facebook messenger platform?

Dmitry picture Dmitry · Jun 24, 2016 · Viewed 9.8k times · Source

There is a way to send my location to facebook-messenger from a mobile client, but how can I send some location from a bot? (messenger platform api)

When I try to send a similar structure from bot, I get an error: (#100) Unsupported attachment type

Is there a way to send my location from bot?

Example of received message to bot:

{
   "object": "page",
   "entry": [{
       "id": "1719442148306048",
       "time": 1466780344978,
       "messaging": [{
           "sender": {"id": "123456789"},
           "recipient": {"id": "987654321"},
           "timestamp": 1466780344847,
           "message": {
               "mid": "mid.12345698875:c80066d69b6cee1779",
               "seq": 65,
               "attachments": [{
                   "title": "Dmitry's Location",
                   "url": "Link to bing.com through facebook redirect"
                   "type": "location",
                   "payload": {"coordinates": {"lat": 55, "long": 37}}
               }]
           }
       }]
   }]
}

I try send message with attachment like this:

               "attachment": {
                   "type": "location",
                   "payload": {"coordinates": {"lat": 55, "long": 37}}
               }

Answer

Dmitry picture Dmitry · Jul 7, 2016

There is workaround. We can send generic template with static map image and url to dynamic. For iOS native map app we can use address http://maps.apple.com/maps (which redirects all non iOS users to Google Maps with the same parameters). On Android it opens Google Maps app.

{
    "recipient": {"id": "132456"},
    "message": {
        "attachment": {
            "type": "template",
            "payload": {
                "template_type": "generic",
                "elements": {
                    "element": {
                        "title": "Your current location",
                        "image_url": "https:\/\/maps.googleapis.com\/maps\/api\/staticmap?size=764x400&center="+lat+","+long+"&zoom=25&markers="+lat+","+long,
                        "item_url": "http:\/\/maps.apple.com\/maps?q="+lat+","+long+"&z=16"
                    }
                }
            }
        }
    }
}