图像在FB.ui中不起作用

Bar*_*klı 3 javascript php 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
         }
       }
    );
Run Code Online (Sandbox Code Playgroud)

Ben*_*pan 6

尽量不要使用SSL URL来获取图像(但仍然将其用于链接的CANVAS_URL).Facebook代理它向用户显示的图像请求,因此即使您从非SSL URL提供图像,Facebook中使用的图像也将通过SSL到达用户.

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