我使用FB.UI api允许用户发布到他们的墙上,这是代码:
FB.ui(
{
method: 'feed',
name: name,
link: linkPath,
picture: thumbnailPath,
caption: iconName,
description: 'Come check out my my awesome post'
},
function(response) {
if (response && response.post_id) {
alert('Post was published!');
} else {
alert('Post was not published!');
}
}
);
通常这样可以正常运行并弹出Facebook对话框,显示从“thumbnailPath”链接的图片,但是当我使用已启用安全浏览的测试帐户时,缩略图不显示以及何时将其发布到墙上不是图片。我正在运行MAMP Pro服务器并使用MAMP的“生成自签名证书”功能创建证书,因此它不是有效证书。我想知道这是否是我的缩略图不会显示的原因。当我转到由变量“thumbnailPath”链接的路径时,它显示就好了。我在Chrome,Safari和Firefox中对此进行了测试,我在所有浏览器中都获得了相同的行为。
我想知道我的无效证书是否可能是导致此问题的原因,或者这是否有意义?我一直无法在网上找到任何描述类似问题的链接,所以我不确定这是否与我的证书有关。
答案 0 :(得分:1)
如果您没有有效的证书,则FB不能/不会通过https抓取对象,包括图像等元数据。获得真正的证书,然后确保FB可以使用Debugger抓取您的网址。
此外,如果这是一个全新的对象,并且没有在对象上发布任何内容,则FB不知道它存在(并且不会显示缩略图)。您可以使用Debugger或使用GET / curl以编程方式启动先发制人的抓取(请参阅“更新对象”,https://developers.facebook.com/docs/opengraph/objects/)。
在apps.facebook.com(Canvas)上发布应用程序时,您还需要一个有效的安全浏览证书。
如果您只是测试应用程序,那么您可以使用App Dashboard将您的应用程序置于沙盒模式,这将让您,管理员,测试人员和您在角色部分中定义的其他人使用该应用程序带有http的画布(不需要安全浏览)。
答案 1 :(得分:1)
我通过简单地确保始终将缩略图与http地址而不是https地址链接来解决问题,我做了这个,缩略图总是会显示。