我正在使用 Facebook 共享对话框来共享特定的 URL。共享链接包含一张图片,稍后应该成为共享的一部分。奇怪的是它在移动浏览器上工作得很好。但是桌面浏览器不会在第一次尝试时加载图像。只需重新加载共享窗口即可修复丢失的图像。一旦这张图片至少出现一次,它就可以在其他浏览器中继续工作而无需额外的重新加载..
所以我的问题是:有人知道为什么第一次调用这个 url 不显示图像吗?
详情
Link for opening the sharing dialog
这是 Facebook 调试器的输出,它没有错误并且还显示了图像。
更新
似乎可以毫无问题地使用提要对话框。但这是另一种我想阻止的共享方式,因为它需要 App ID。
最佳答案
我也遇到过这个问题,事实证明 Facebook 有一个未记录的“功能”,可能是为了优化而实现的。它不会在第一次共享时加载您的图片。
错误描述可以在这里找到: https://developers.facebook.com/bugs/657696104321030
简而言之,解决方案是两种可能性之一。
最简单的方法是将 og:image:width 和 og:image:height 作为描述图像像素宽度和高度的 ogtag 的一部分。奇怪的是,这将(显然是故意的)说服 Facebook 立即抓取该网站,包括图像。
<meta property="og:image"content="http://example.com/image.jpg"/ >
<meta property="og:image:width"content="450"/>
<meta property="og:image:height"content="298"/>
第二种可能的解决方案是通过 API 手动触发抓取。这个我没有测试过,但理论上是可以的。参见 the relevant Stackoverflow discussion关于这个话题。
关于Facebook 共享对话框不会在第一次加载时显示缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17920519/