[英]Images not working in FB.ui
尝试使用以下代码发布图像和墙贴一起工作几个月。 突然它停止了工作。
当我使用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
}
}
);
尽量不要使用SSL URL来获取图像(但仍然将其用于链接的CANVAS_URL)。 Facebook代理它向用户显示的图像请求,因此即使您从非SSL URL提供图像,Facebook中使用的图像也将通过SSL到达用户。
至于为什么SSL URL不起作用,可能是Facebook用来检索图像的爬虫无法识别您正在使用的证书链。 你在浏览器中为我工作得很好,但是当在Linux命令行上通过wget
检索时(可能是比FB浏览器更接近浏览器的环境),无法验证证书。
我刚发现的一件事,图像大小似乎也发挥了作用。 我的图片网址是原始的全尺寸jpg。 它没有表现出来。 但在我链接到一个小得多的版本后,它显示了!
在我页面上的四个饲料柱中的两个上,我和Black Knight一样有“薄灰条”。
我拿出了https://现在一切正常......
是...
图片:'https://mysite.com/images/'+图片,
现在...
图片:'mysite.com/images/'+图片,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.