Facebook发送对话框无法显示预览图像

时间:2014-11-10 11:59:14

标签: facebook facebook-graph-api facebook-javascript-sdk

我想使用Facebook SendDialog将图片发送给我的朋友。 我的应用程序上有很多图片,如果用户选择一张图片,我的应用程序将创建一个HTML, 并将HTML配合标记更新为:

<meta property="fb:app_id" content="1234567890" />
<meta property="og:type" content="momantest:picture" />
<meta property="og:url" content="myhostdomain.com" />
<meta property="og:title" content="Mytitle" />
<meta property="og:description" content="BlahBlah123!" />
<meta property="og:image" content="The picture use just selected" />

并保存此HTML,名为test1.html并将其上传到我的服务器。

我使用JSSDK:

FB.ui({
       method:'send',
       link : 'https://myhostdomail.com/test1.html'
    });

SendDialog无法显示预览图片!!!!!

enter image description here

但如果test1.html在五分钟前创建,然后我使用senddialog ..预览图片显示...

enter image description here

所以,问题是,如果我创建一个HTML只需几秒钟并使用SendDialog,则预览图片无法显示,但如果HTML已经创建了5分钟,并使用SendDialog,预览图片显示...... < / p>

为什么?这是一个错误吗?

在几秒钟之前创建HTML时,SendDialog是否可以显示预览图片!

哦,对了,我还用对象debbug工具检查网址,它回复了206,标题,解密和图片,都很好..但是发送对话框只是无法显示预览图片

任何答案都将不胜感激。感谢!!!!!

1 个答案:

答案 0 :(得分:1)

如果您每次有人想要发送图像时都要覆盖Meta标签,那么当首次共享链接时,Facebook会缓存元数据,这将无法正常工作。

您需要做的是为每个共享使用唯一的网址,以便数据保持完整且对该共享而言是唯一的。例如:

  1. User 1想要分享image1.jpg。然后创建share1.html并为此共享添加适当的元数据。

  2. 然后,当User 1想要分享image2.jpg时。您使用新的元数据创建share2.html,然后分享此内容。

  3. 如果User 2想要分享image1.jpg,您可以重复使用share1.html,因为元数据会相同。