在将此标记为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代码。
所有帮助表示赞赏!