Jak wysłać lokalizację z Facebooka messenger platformy?

głosy
10

Jest na to sposób, aby wysłać moją lokalizację na facebook-posłańca z telefonu klienta, ale jak mogę wysłać jakąś lokalizację z bota? (Messenger platforma API)

Gdy próbuję wysłać podobną strukturę z bota, otrzymuję komunikat o błędzie: (#100) Unsupported attachment type

Czy istnieje sposób, aby wysłać moją lokalizację z bota?

Przykład odebranej wiadomości 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}}
               }]
           }
       }]
   }]
}

Próbuję wysłać wiadomość z załącznikiem tak:

               attachment: {
                   type: location,
                   payload: {coordinates: {lat: 55, long: 37}}
               }
Utwórz 24/06/2016 o 15:50
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
22

Istnieje obejście. Możemy wysłać szablon rodzajowe ze statycznym obrazie mapy i URL do dynamiczna. Dla iOS aplikacji natywnej mapie możemy użyć adresu http://maps.apple.com/maps (który przekierowuje wszystkie non iOS użytkowników do Google Maps z tymi samymi parametrami). Na Androidzie otwiera aplikację Google Maps.

{
    "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"
                    }
                }
            }
        }
    }
}
Odpowiedział 07/07/2016 o 13:30
źródło użytkownik

głosy
3

Dmitry, dzięki za włamania! FB API nieznacznie zmienione, oto co pracował dla mnie w sekcji ładowność:

    payload = dict()
    payload['type'] = 'template'
    payload['text'] = dict(
        template_type="generic",
        elements=[
            dict(
                title='{venue} location',
                # subtitle='Test',
                image_url="https://maps.googleapis.com/maps/api/staticmap?size=764x400&center=" + lat + "," + long +
                          "&zoom=15&markers=" + lat + "," + long,  
                default_action=dict(
                    type="web_url",
                    url="http://maps.apple.com/maps?q=" + venue + "&ll=" + lat + "," + long +
                        "&z=15"
                )
            )  # buttons=[])
        ]
    )
Odpowiedział 21/03/2017 o 10:47
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more