Facebook分享图片(og:image)第一次无法正常工作,尽管已经设置了og:image:width和og:image:height。

3
我正在动态构建一个图片,用于在页面上分享到Facebook。一切似乎都很顺利,直到它进入分享对话框。由于图片没有显示出来,Facebook看起来并没有进行抓取。如果我刷新该对话框页面,则会加载图片(是否是第一次抓取?)。
我已经阅读了几篇文章,它们都说我只需要指定og:image:widthog:image:height就可以立即渲染,但这似乎不起作用。以下是我的元标记:
<meta property="fb:app_id" content="###"/>
<meta property="og:type" content="website" />
<meta property="og:url" content="###" />
<meta property="og:title" content="My Page Title" />
<meta property="og:description" content="My Page Description" />
<meta property="og:image" content="http://the-domain/the-image.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:type" content="image/jpeg" />

我在这里漏掉了什么吗?


我遇到了同样的问题,无法解决。高度和宽度已经提供,但Facebook在预览中没有显示。 - volume one
同样的问题,看起来唯一的解决办法是去共享调试器并且不断地抓取 URL 直到它可以工作 :( 有任何进展吗? - Albert Català
也许一个解决方案是自动化类似于在iframe中重定向到Facebook分享调试器https://developers.facebook.com/tools/debug/sharing/?q=http://myweb.com/path - Albert Català
1个回答

0
针对这类问题,我建议您使用 Facebook 提供的调试工具。它非常适合快速识别像您遇到的那样的致命错误。

https://developers.facebook.com/tools/debug/

需要记住的几件事情,有时候如果Facebook发现获取数据的时间超过1秒,图像或页面会超时。我也发现了自己实现中的问题,如果og:url与您期望Facebook获取的页面不同,则会出现问题。这两个值必须匹配,因为最终Facebook尝试抓取的是og:url值。


是的,在调试工具中页面完全干净。此外,og:url似乎与分享页面的url完全相同,没有重定向或https有趣的事情。感谢您的想法。 - Whit
调试工具中是否出现图像? - biscuitcleaver
@biscuitcleaver,Facebook调试工具给出了这个问题:无法下载文件,因为它超过了8Mb的最大允许大小或者您的服务器响应速度太慢。 我从CloudFront获取图像,这些图像小于30kb,并且它们是有效的图像URL。如果我在浏览器中输入URL,则可以显示图像,但是Facebook调试工具却给出了这个错误。 请帮我解决这个问题,谢谢。 - Muhammad Usama Mashkoor
你的图片分辨率是多少? - biscuitcleaver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接