FB.ui的feed对话框“忽略”图片属性,而是使用缓存的og:image标签。

37

这是我的FB.ui代码:

FB.ui({ 
  method: 'feed', 
  message: '', 
  link: 'http://mywebaddress/pathToContent', 
  picture: 'http://mywebaddress/pathToPhoto/photo.jpg', 
  display: 'popup'
});

对话框完美弹出,链接也没有问题...但是图片没有显示。

我已经确认了图片的URL是正确的。然后我使用调试器测试内容URL的开放图谱标签:它运行得很好。

显然,调试器清除了某种缓存。在我在链接上使用调试器之后,FB.ui对话框可以正常显示图片。

这个问题有什么办法可以解决吗?从我的网站分享到Facebook的内容没有像应该一样显示图片,这让用户使用起来有点烦人(这绝不是一件好事!)

谢谢!


1
你是说使用调试器解决了问题?那么这就是一个缓存问题... - ifaour
好的,所以“图形内容”的URL即使从一开始就有有效的og:image标签,仍然被缓存而没有照片?而且,即使提供了图片属性,FB.ui代码也会忽略它并使用无照片缓存?如果这是一个缓存问题,听起来应该是在Facebook的服务器端,如何解决它? - Chaddeus
你尝试过提交 FB.ui 对话框吗?即使图片没有显示出来...当你发布时它是否显示了?如果是这样,那么我会认为对话框中有些问题。 - ifaour
我已经尝试提交了...我刚刚更新了我的代码,使图片属性的URL与og:image标签略有不同...我在路径后面添加了?v=1,跟随图片的文件扩展名。到目前为止,这使情况有所改善...但仍在测试中。感谢您的回复。 - Chaddeus
2个回答

0

-2
问题在于您没有设置图像的URL。
Since you're using a relative URL, the FB.ui is looking for the image in the same folder as the current page. What you should do is put the full URL of your image.

<code>picture: 'http://mywebaddress/pathToPhoto/photo.jpg',</code>
If you don't have the full URL of your image, you can use the following code to get the full URL:
<code>var url = window.location.protocol + '//' + window.location.host + window.location.pathname;
url = url.substring(0, url.lastIndexOf('/') + 1);
url += 'pathToPhoto/photo.jpg';
</code>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接