【问题标题】:Facebook Send Dialog cannot show the preview imageFacebook 发送对话框无法显示预览图像
【发布时间】:2014-11-11 13:17:15
【问题描述】:

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

<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" />

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

我使用 JSSDK:

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

而且SendDialog不能显示预览图!!!!!!

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

所以,问题是,如果我在几秒钟内创建一个 HTML 并使用 SendDialog ,预览图片无法显示,但如果 HTML 已经在 5 分钟前创建,并且使用 SendDialog,预览图片显示...

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

有没有可能SendDialog可以显示几秒前刚刚创建的HTML时的预览图片!

哦,对了,我也用object debbug tool查看了url,结果是206,title,description and image,都很好。但是Send Dialog就是不能显示预览图

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

【问题讨论】:

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


    【解决方案1】:

    如果您在每次有人想要发送图像时覆盖元标记,这将不起作用,因为 Facebook 会在首次共享链接时缓存元数据。

    您需要为每个共享使用唯一的 URL,以便该共享的数据保持完整和唯一。例如:

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

    2. 然后,当User 1 想要分享image2.jpg。您使用新元数据创建 share2.html,然后共享它。

    3. 如果User 2也想分享image1.jpg,你可以重复使用share1.html,因为元数据是一样的。

    【讨论】:

    • 我知道 Facebook 缓存,所以当我创建 HTML 时,我将随机数添加到每个 HTML,例如:test1.html?v=231412,它起作用了.. 有趣的是,当我使用共享对话框,预览图片显示.... !!!!只是发送对话框,预览图无法显示~ 快把我逼疯了!还是谢谢你的回答~!
    • 顺便说一下,如果user1选择了一张图片,它会创建test1.html?v=123 image is image1.jpg if user2 select,create test2.html?v=432 , image2.jpg,它是每个用户的每个 HTML 的唯一 URL,所以,我不认为这是缓存问题:D
    • 啊,共享对话框不会显示预览,除非您使用picture 参数手动添加它。
    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多