尝试使用以下代码将图像与墙贴一起发布几个月正常工作。突然它停止了工作。
当我使用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
}
}
);
答案 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。它没有表现出来。但在我链接到一个小得多的版本之后,它显示了!