Facebook共享对话框未显示图像第一次页面预览共享

时间:2017-01-19 20:16:36

标签: facebook facebook-javascript-sdk facebook-opengraph giphy

在将此标记为Facebook Share Story Image Does Not Appear For First time或相关问题的副本之前,请仔细阅读整篇文章。

我正在创建一个动态页面(具有唯一的网址和图片),用户可以在Facebook上与共享对话框共享。

根据https://developers.facebook.com/docs/sharing/best-practices#precaching Facebook需要抓取og:image中的网址才能在共享对话框中显示它。
这可以通过在共享页面上使用共享调试器或设置og:image:width和og:image:height元标记来完成。

由于我制作的网站可能会获得大量独特的页面和图片,因此我不希望将脚本编程到编程调用共享调试器(或使用唯一网址的sharer.php)使这项工作。所以我试图使用og:image:width和og:image:height metatags。

不幸的是,我无法完成这项工作 第一次共享页面时,它不会显示og:image中指定的图像。它第二次。

我已经创建了两个演示文件来支持它:

http://beerco.de/fbgifshare/urls_without_ts.php 此页面包含以下元标记和fb.ui代码:

    <meta property="og:url" content="http://beerco.de/fbgifshare/test.gif">
    <meta property="og:title" content="Lorem Ipsum">
    <meta property="og:description" content="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fermentum lacinia nisl ut hendrerit. Sed elementum, urna id accumsan ultrices, lectus felis bibendum lectus, sed ornare velit elit eleifend ipsum.">
    <meta property="og:image" content="http://beerco.de/fbgifshare/test.gif"
    <meta property="og:image:width" content="500">
    <meta property="og:image:height" content="500">
    ...
    FB.ui({
        method: 'share',
        href: 'http://beerco.de/fbgifshare/urls_without_ts.php'
    }, function(response){
        console.log(response);
    });

这将始终有效(在初始共享之后),因为共享的href和og:image是静态的。

http://beerco.de/fbgifshare/urls_with_ts.php此页面将始终共享唯一的网址和图片:

    <meta property="og:url" content="http://beerco.de/fbgifshare/test.gif?ts=1484855521">
    <meta property="og:title" content="Lorem Ipsum">
    <meta property="og:description" content="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fermentum lacinia nisl ut hendrerit. Sed elementum, urna id accumsan ultrices, lectus felis bibendum lectus, sed ornare velit elit eleifend ipsum.">
    <meta property="og:image" content="http://beerco.de/fbgifshare/test.gif?ts=1484855521">
    <meta property="og:image:width" content="500">
    <meta property="og:image:height" content="500">
    ...
    FB.ui({
        method: 'share',
        href: 'http://beerco.de/fbgifshare/urls_with_ts.php?ts=1484855521'
    }, function(response){
        console.log(response);
    });

第一次打开Feed对话框时,分享对话框不显示图像预览,但如果我再试一次(不重新加载页面),它可能会显示,因为facebook已经抓取了图像。

如果我刷新页面并尝试再次共享,则不显示预览,因为网址有新的时间戳。

我在这里遗漏了什么或者说facebook文件错了吗? 我需要在用户第一次共享页面时显示图像预览 实现这一目标的最佳方法是什么?

在og:image和og:url中使用image-url的原因是因为我希望在共享页面时在Facebook中内联播放动画gif(如giphy)。

请查看两个演示文件的源代码,以查看所有OG标记和FB.ui代码。

所有帮助表示赞赏!

0 个答案:

没有答案
相关问题