Javascript Facebook在从URL推断开放图属性时考虑了什么?

Javascript Facebook在从URL推断开放图属性时考虑了什么?,javascript,html,facebook-like,Javascript,Html,Facebook Like,我对类似Facebook的按钮有问题。虽然按钮可以工作,但它获取了错误的缩略图以显示在Facebook上 因为网站是一个商店,每个产品都有自己的like按钮,所以在Facebook上显示正确的缩略图非常重要。我使用从站点调试产品URL。我希望Facebook能抓取更大的,明显是产品URL的主图像,但它正在抓取一个相关的产品缩略图 根据我在文档中读到的内容,我应该在文档的头部明确设置og:image。但是,我无法访问后端,只能使用JavaScript动态生成元标记。我已经尝试过这样做,但这样做似乎

我对类似Facebook的按钮有问题。虽然按钮可以工作,但它获取了错误的缩略图以显示在Facebook上

因为网站是一个商店,每个产品都有自己的like按钮,所以在Facebook上显示正确的缩略图非常重要。我使用从站点调试产品URL。我希望Facebook能抓取更大的,明显是产品URL的主图像,但它正在抓取一个相关的产品缩略图

根据我在文档中读到的内容,我应该在文档的头部明确设置
og:image
。但是,我无法访问后端,只能使用JavaScript动态生成元标记。我已经尝试过这样做,但这样做似乎毫无价值,因为URL在任何脚本运行之前都会被废弃

我不明白Facebook使用什么规则来推断
og:image
的值。在没有设置任何元标签的情况下,产品的主图像被正确地废弃。为什么?


无论出于何种原因,如果无法声明任何开放图属性,可以采取哪些措施来提高Facebook算法获取所需图像(或文本)的机会?

理想情况下,您应该将
og:image
元标记设置为开放图协议的一部分。当这失败时,它只是默认所有图像通过图像html标记优先。通过
img
tag定义的第一张图像将是facebook获取的第一张图像

<html><body>
    <p style="background:url(img0.jpg);">hello</p>
    <img src="img1.jpg">
    <img src="img2.jpg">
    <p>bye</p>
    <img src="img3.jpg">
</body></html>

您好

再见

如果上面的示例代码是您的站点,facebook会将img1、img2和img3标记为潜在的缩略图,如果用户可以选择要指定的图像,则按此顺序标记


所以,把你的产品图片放在第一位。

我认为这只是使用的算法的一部分。我调试了两个不同的URL:和。在后一个示例中获取的错误图像远远不是DOM中的第一个。它甚至不是它自己的
    中的第一个。我不明白。只要你没有在上面使用开放图协议,就真的没有保证,因为没有进一步定义的API。第一张图片的概率最高。从之前的测试来看,它确实有避免某些图片的倾向,比如太小或太大。