Wie Standort von Facebook Messenger-Plattform senden?

stimmen
10

Es gibt eine Möglichkeit, meine Lage zu Facebook-Messenger von einem mobilen Client zu senden, aber wie kann ich etwas Lage von einem Bot schicken? (Messenger Plattform api)

Wenn ich versuche, eine ähnliche Struktur von Bot zu schicken, ich erhalte eine Fehlermeldung: (#100) Unsupported attachment type

Gibt es eine Möglichkeit, meine Lage von Bot zu schicken?

Beispiel für empfangene Nachricht an bietet:

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

Ich versuche Meldung wie diese mit Anhang senden:

               attachment: {
                   type: location,
                   payload: {coordinates: {lat: 55, long: 37}}
               }
Veröffentlicht am 24/06/2016 um 15:50
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
22

Es gibt Abhilfe. Wir können generische Vorlage mit statischem Kartenbild und URL dynamisch senden. Für nativen iOS Karten - App können wir Adresse verwenden http://maps.apple.com/maps (das leitet alle nicht iOS - Nutzer Google Maps mit den gleichen Parametern). Auf Android öffnet 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"
                    }
                }
            }
        }
    }
}
Beantwortet am 07/07/2016 um 13:30
quelle vom benutzer

stimmen
3

Dmitry, danke für den Hack! FB API hat sich leicht verändert, hier ist was für mich in der Nutzlastabschnitt gearbeitet:

    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=[])
        ]
    )
Beantwortet am 21/03/2017 um 10:47
quelle vom benutzer

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