2016-06-24 8 views
9

私の場所をモバイルクライアントからfacebook-messengerに送信する方法はありますが、どのようにボットからいくつかの場所を送信できますか?私はbotから同様の構造を送信しようとすると(メッセンジャープラットフォームAPI)どのようにFacebookのメッセンジャープラットフォームから場所を送信するには?

、私はエラーを取得する: (#100) Unsupported attachment type

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

私はこのような添付ファイル付きのメッセージを送信してみてください。

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

あなたは私たちを見ることができます[MCVE]あなたがデータそのままの場所でメッセージを送っている方法を表していますか? – gravity

+1

はい。私は質問を編集しました。 – Dmitry

+0

'' attachment "'はJSON内の配列です。 '['と ']'がすべてのデータ( 'type'と' payload')をカプセル化していることに注目してください。 '[]'を追加して、 'attachment'の開始と終了を示し、それが解決したかどうかをお知らせください。 – gravity

答えて

19

回避策があります。 静的マップイメージとURLを持つ汎用テンプレートを動的に送信できます。 iOSのネイティブマップアプリでは、アドレスhttp://maps.apple.com/maps(iOS以外のすべてのユーザーを同じパラメータでGoogleマップにリダイレクト)を使用できます。 AndroidではGoogleマップアプリを開きます。

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

ドミトリー、ハックありがとう! FBのAPIが若干変更されている、ここではペイロード部に私のために働いていたものです:

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=[]) 
     ] 
    ) 
+0

Javaの例を探している人には、restfbという名前のfacebook api用のオープンソースのJava SDKがあります。 restfb内では、Bubblesを含むことができるGenericItemPayloadオブジェクトを使用できます。各バブルには、image_url、item_url、およびtitleを含めることができます。 –

関連する問題