2017-08-09 30 views
0

显示发送这对Facebook不会显示在地图上,因为它曾经谷歌静态地图将不会透过Facebook Messenger

{ 
        "attachment": 
        { 
         "type":"template", 
         "payload": 
         { 
          "template_type":"generic", 
          "elements": 
          [ 
           { 
            "title":"Is this your address?", 
            "image_url":"https://maps.googleapis.com/maps/api/staticmap?size=400x400&markers=color:blue%7Clabel:S%7C"+address+"&key=API_KEY", 
            "subtitle":address, 
            "buttons": 
            [ 
             { 
              "type":"postback", 
              "title":"Yes", 
              "payload":address 
             }, 
             { 
              "type":"postback", 
              "title":"No", 
              "payload":"googlemapwrong" 
             }    
            ] 
           } 
          ] 
         } 
        } 

发送其他IMAGE_URL仍然有效,但地图不显示。

回答

0

它在这里定义在facebook generic template documentation

水平图像纵横比为1.91:1,和方形图像纵横比为1:用于呈现由IMAGE_URL在元对象指定图像1 和 长宽比。必须是水平或正方形。默认为水平。

所以在你的情况,因为我看到你正在尝试图像尺寸400 * 400这是正方形。这样你可以

  • 尝试像570 * 300,其是1.9图像的不同尺寸:有效载荷对象1内的图像比

  • 集image_aspect_ratio作为正方形,并尝试您当前的图像大小。

希望帮助:)

0

的Facebook改变了他们解释的链接我猜“地址”可变我串联必须被编码为URL的方式(空格改为+或%20等)。 Facebook早些时候为我做了这件事,但它改变了。

0

像@Abhishek Raj说,Fb正在对网址进行某种双重编码,然后这个网址没有任何意义。我曾尝试先编码url的地址,但之后地址保持解码状态,谷歌无法识别它。 我找到的唯一解决方法是从地址中删除特殊字符(例如#,@),如果有的话,并用破折号替换所有的空格(谷歌地图不介意,如果你做..)

address = address.Replace(' ','-') 

,然后在URL

"image_url":"https://maps.googleapis.com/maps/api/staticmap?size=400x400&markers=color:blue%7Clabel:S%7C"+address+"&key=API_KEY" 

这是为我工作的信使V2.2使用地址