上下文
我在HTTPS上运行一个站点,其中新的内容(每个条目都有自己的页面)可以由用户创建和共享。
每个页面都有一个图像,这个图像url出现在页面顶部的og:image
元标记中。
问题
facebook似乎很慢才开始使用og:image
。当第一次创建页面并且用户尝试共享url时,在第一次~1-3次尝试中,og:image
不会被facebook刮掉/呈现(标题和描述是)。之后,图像在“共享”对话框中清晰可见。
使用facebook的og url调试工具时也会出现类似的问题。我第一次弹出url时,它没有显示任何图像。如果我再次选择从源文件获取页面,它将显示图像。
附加说明
起初,我认为可能是站点代码最初没有显示图像,但我发送了一个curl请求,并欺骗了facebook的一个用户代理字符串(这对访问页面很重要),生成的html包含带有正确图像url的og:image
标记。我也知道这与访问页面无关,否则og:title
和og:description
数据将不会显示(但确实如此)。
我唯一的线索是它可能是ssl或https问题。我最近设置了ssl证书,但我不确定为什么会导致延迟,因为它根本不起作用。
为了清楚起见,该网站运行在一个标准的灯塔上的wordpress上。
最佳答案
这显然是一个相当普遍的问题。解决方案是,在内容创建上,用内容的URL向脸谱网的刮削工具发送请求。scraper将获取并处理该图像,允许第一个共享已经由facebook缓存了该图像。