图像在FB.ui中不起作用

时间:2011-09-09 02:54:14

标签: php javascript facebook

尝试使用以下代码将图像与墙贴一起发布几个月正常工作。突然它停止了工作。

当我使用https进行测试时,它不起作用,但在http中它可以正常工作。

如果协议是https,则APP URL使用https,否则使用http。

$protocol = "http";
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']!="off")
    $protocol = "https";

define("CANVAS_URL","$protocol://apps.facebook.com/appname/");
define("APP_URL","$protocol://domain.com/content/appname/live/");

FB.ui(
        {

         method: 'feed',
         name: 'my app name',
         link: <? echo "'".CANVAS_URL."'";?>,
         picture: <? echo "'".APP_URL."'";?>+image,
         caption: _caption,
         description: _description
       }, function(response) {
         if (response && response.post_id) 
         {
           // published
         } else {
           // not published
         }
       }
    );

3 个答案:

答案 0 :(得分:6)

尝试不使用SSL网址来获取图片(但仍然将其用于链接的CANVAS_URL)。 Facebook代理向用户显示的图像请求,因此即使您使用非SSL网址提供服务,Facebook中使用的图像也会通过SSL覆盖用户。

至于为什么SSL URL不起作用,可能是Facebook用来检索图像的爬虫无法识别您正在使用的证书链。你在浏览器中为我工作得很好,但是当在Linux命令行上通过wget检索时(可能是比FB浏览器更接近浏览器的环境),无法验证证书。

答案 1 :(得分:1)

我的页面上的四个饲料柱中有两个与Black Knight有相同的“细灰条” 我拿出了https://现在一切正常......

是......
图片:'https://mysite.com/images/'+图片,
现在...
图片:'mysite.com/images/'+图片,

答案 2 :(得分:1)

我刚刚发现的一件事,图像大小似乎也发挥了作用。我的图片网址是原始的全尺寸jpg。它没有表现出来。但在我链接到一个小得多的版本之后,它显示了!