首先 - 我不认为这是一个重复的问题。我在SO上搜索了相同或类似的问题,并且由于在询问之前进行故障排除的性质,我相信这个问题是独一无二的。
Facebook无法掌握我的og:image
文件,我尝试了所有常用解决方案。我开始认为它可能与https://...
og:image
”中找到了我们关联的图片,但它们显示为空白。然而,当我们点击图像时,它们确实存在并且直接对它们起作用。og:image
时,FB的linter会找到并读取它。它会显示预览。预览为空白。我们获得的唯一例外是针对不在此网站上的图片。cpanel
或.htaccess
上有一些阻止图像出现的反渗透,所以我们检查了一下。这没有。我们甚至在完全不同的服务器上快速< img src="[remote file]" >
,图像显示正常。 og:type
或另一个带有另一个元标记的怪异。我们删除了所有这些,一次一个并检查它。没变。只是警告。 og:image
或image_src,FB找不到任何图像。我在绳子的尽头。如果我说自己和别人花了多少时间在这上面,你会感到震惊。问题是这是一个在线商店。我们绝对,肯定不能有图像。我们必须。我们有十个左右的其他网站......这是唯一一个有og:image
个问题的网站。它也是https
上唯一的一个,所以我们认为这可能是问题所在。但我们无法在网络上的任何地方找到任何先例。
这些是元标记:
<meta property="og:title" content="[The product name]" />
<meta property="og:description" content="[the product description]" />
<meta property="og:image" content="https://www.[ourwebsite].com/images/shirts/overdriven-blues-music-tshirt-details-black.png" />
<meta property="og:image" content="https://www.[ourwebsite].com/images/shirts/overdriven-blues-music-tshirt-art-black.png" />
<meta property="og:image" content="http://www.[ADIFFERENTwebsite].com/wp-content/uploads/2011/06/ARS-Header-Shine2.png" />
<meta property="og:image" content="https://www.[ourwebsite].com/images/ARShopHeader.png" />
<meta property="og:image" content="http://www.[ourwebsite].com/overdriven-blues-music-tshirt-art-black.JPG" />
<meta property="og:type" content="product"/>
<meta property="og:url" content="https://www.[ourwebsite].com/apparel-details.php?i=10047" />
<meta property="og:site_name" content="[our site name]" />
<meta property="fb:admins" content="[FB-USER-ID-NUMBER]"/>
<meta name="title" content="[The product name]" />
<meta name="description" content="[The product description]" />
<link rel="image_src" href="https://www.[ourwebsite].com/images/shirts/overdriven-blues-music-tshirt-details-black.png" />
<meta name="keywords" content="[four typical keywords]">
<meta name="robots" content="noarchive">
如果您需要,请点击此处链接到我们一直在处理的产品页面。 [链接缩短以尝试限制我们进入我们网站的搜索结果]:http://rockn.ro/114
编辑----
使用“查看facebook看到的”刮刀工具,我们能够看到以下内容:
"image": [
{
"url": "https://www.[httpSwebsite].com/images/shirts/soul-man-soul-music-tshirt-details-safari.png"
},
{
"url": "https://www.[httpSwebsite].com/images/shirts/soul-man-soul-music-tshirt-art-safari.png"
},
{
"url": "http://www.[theotherNONSECUREwebsite].com/wp-content/uploads/2011/06/ARS-Header-Shine2.png"
}
],
我们测试了它为单个页面找到的所有链接。所有都是完全有效的图像。
编辑2 ----
我们尝试了一项测试,并在NONSECURE网站上添加了子域名(实际上可以通过脸谱查看图片)。子域名为http:// img。[nonsecuresite] .com。然后,我们将所有图像放入主子域文件夹并引用它们。它不会将这些图像拉入FB。但是,它仍然会拉出在非安全主域上引用的任何图像。
张贴办公室----
感谢基冈,我们现在知道这是Facebook的一个错误。要解决此问题,我们将子域放在不同的NON-HTTPS网站中,并将所有图像转储到其中。我们在每个产品页面上引用了http://img.otherdomain.com/[like-image.jpg]
中的协调og:image
图片。然后,我们必须通过FB Linter并运行每个链接来刷新OG数据。这是有效的,但解决方案是一个创可贴的解决方法,如果https
问题得到修复,我们又回到使用自然的https域,FB将缓存来自不同网站的图像,使问题复杂化。希望这些信息有助于拯救其他人免于他们生活的32个编码时间。
答案 0 :(得分:124)
某些属性可以附加额外的元数据。这些内容的指定方式与使用property
和content
的其他元数据的方式相同,但property
将有额外的内容:
og:image
属性有一些可选的结构化属性:
og:image:url
- 与og:image相同。 og:image:secure_url
- An
如果网页需要HTTPS,则使用备用网址。 og:image:type
- A.
此图像的MIME类型。 og:image:width
- 像素数宽。og:image:height
- 像素数高。完整的图片示例:
<meta property="og:image" content="http://example.com/ogp.jpg" />
<meta property="og:image:secure_url" content="https://secure.example.com/ogp.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="400" />
<meta property="og:image:height" content="300" />
因此,您需要将HTTPS网址的og:image
属性更改为og:image:secure_url
例如:
图片的HTTPS META TAG:
<meta property="og:image:secure_url" content="https://www.[YOUR SITE].com/images/shirts/overdriven-blues-music-tshirt-details-black.png" />
用于图片的HTTP META TAG:
<meta property="og:image" content="http://www.[YOUR SITE].com/images/shirts/overdriven-blues-music-tshirt-details-black.png" />
来源:http://ogp.me/#structured&lt; - 您可以访问此网站以获取更多信息。
希望这会对你有所帮助。
编辑:更新代码后不要忘记ping facebook服务器 - URL Linter
答案 1 :(得分:82)
我遇到了同样的问题并将其报告为Facebook开发者网站上的一个错误。很明显,使用HTTP的og:图像URI工作正常,而使用HTTPS的URI则不然。他们现在承认他们“正在研究这个问题。”
这里可以看到错误: https://developers.facebook.com/bugs/260628274003812
答案 2 :(得分:13)
我不知道,如果仅限于我,但对我而言og:image
无法正常工作并选择我的网站徽标,即使facebook debugger显示正确的图片。
但将og:image
更改为og:image:url
对我有用。希望这可以帮助其他任何面临类似问题的人。
答案 3 :(得分:8)
来自Google,但这对我没什么帮助。事实证明,徽标所需的最小宽高比为3:1。我的差不多是4:1。我使用Gimp将其裁剪为3:1并且瞧 - 我的徽标现在显示在FB上。
答案 4 :(得分:8)
tl; dr - 耐心等待
我最终在这里,因为我看到从https网站提供的空白图像。问题是完全不同的:
当第一次共享内容时,Facebook抓取工具将从共享的URL中抓取并缓存元数据。爬虫必须至少看一次图像才能渲染。这意味着共享一段内容的第一个人将看不到渲染图像
[https://developers.facebook.com/docs/sharing/best-practices/#precaching]
在测试时,Facebook 大约10分钟最终显示渲染图像。因此,当我在Facebook上摸不着头脑并在Facebook上投掷随机og标签时(怀疑这里提到的https问题),我所要做的只是等待。
由于这可能会阻止人们第一次分享您的链接,FB提出了两种方法来规避这种行为: a)在所有链接上运行OG调试器:图像将被缓存并在约10分钟后准备好共享或b)指定og:image:width和og:image:height。 (在上面的链接中阅读更多内容)
仍然想知道是什么让他们这么久......
答案 5 :(得分:4)
我遇到了同样的错误,之前没有任何帮助,所以我尝试遵循Open Graph Protocol的原始文档,并在我的html标签中添加了prefix属性,一切都变得非常棒。
<html prefix="og: http://ogp.me/ns#">
答案 6 :(得分:2)
答案 7 :(得分:1)
我有类似的问题。我删除了属性=“og:image:secure_url”,现在它将只用og:image擦洗。有时,少就是
答案 8 :(得分:1)
正如我意外发现的那样,透明的空白图像带有响应标题,指示问题的可能原因。
https://external-ams3-1.xx.fbcdn.net/safe_image.php?d=...&url=...
)x-error-detail
响应标题及解释例如,就我而言,它是Invalid image extension for URL: https://[mydomain]/[myfilename].jpg
我的案例中的真正问题与prerender.io有关。
事实证明,如果通过预渲染请求图像,它将转换为HTML。像这样:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head>
<body style="margin: 0px;"><img style="-webkit-user-select: none; cursor: -webkit-zoom-in; " src="https://[yourdomain].com/[yourfilename].jpg" width="1078" height="718"></body>
</html>
它既可以是预呈现本身的错误,也可以是在您的代理中配置为不对*.jpg
请求使用预渲染(即使它们是由Facebook机器人请求的)。< / p>
很难注意到这一点,因为prerender仅用于某些用户代理标头。
答案 9 :(得分:1)
我发现了另一种可能导致此问题的方案。我完成了问题和答案中描述的所有步骤,但问题仍然存在。
我检查了我的图片,发现我的一些帖子在og:image
中的缩略图图像太大,在几千像素和几兆字的范围内。
这是因为最近从WP迁移到Jekyll,我用gulp优化了我的图像,但错误地使用了og:image中的原始图像。
Facebook gives us the following recommendations as of today:
使用至少1200 x 630像素的图像以获得最佳显示效果 高分辨率设备。至少,你应该使用那些图像 是600 x 315像素,以显示更大图像的链接页面帖子。 图像最大可达8MB。
所以上限为8MB。
答案 10 :(得分:1)
我遇到了同样的问题然后我注意到og:url
确保og:url
和og:image
的域名相同后,就可以了。
希望这有帮助。
答案 11 :(得分:1)
就我而言,问题在于没有提供 CA根证书。我在使用https://www.ssllabs.com/ssltest/analyze.html分析SSL配置后想出来了。
答案 12 :(得分:1)
当网站的https证书不完全符合时,可能会出现类似的症状(Facebook等人未正确获取og:图像和其他资产而不是https)。
您网站的https证书似乎有效(浏览器中的绿色键和所有内容),但如果缺少中间证书或链证书,则无法正确删除。这可能导致许多浪费时间检查并重新检查所有各种缓存和元标记。
可能不是你的问题,但可能是其他有类似症状的人(比如我的)。有很多方法可以检查您的证书 - 我碰巧使用的证书:https://www.sslshopper.com/ssl-checker.html
答案 13 :(得分:0)
我来到这里是因为更新的 facebook 元标记图片没有显示在 facebook 共享中。
对于处于这种困境的其他人,原因很简单,您需要让 facebook scrape your site again。
一旦你这样做,它就会按预期显示。
答案 14 :(得分:0)
此外,添加用户生成的故事(不使用og:image)时也会出现此问题。例如:
POST /me/cookbook:eat?
recipe=http://www.example.com/recipes/pizza/&
image[0][url]=http://www.example.com/recipes/pizza/pizza.jpg&
image[0][user_generated]=true&
access_token=VALID_ACCESS_TOKEN
上述内容仅适用于http,而不适用于https。如果您使用https,则会收到错误消息: 附加图片()无法上传
答案 15 :(得分:0)
我有一个 Wordpress 网站,它使用 og:image
和图像的 https URL,图像在 Facebook 预览链接中显示得很好。
我正在开发的另一个网站使用 og:image
和 https URL,有时图像会出现,有时不会。我尝试了此页面上的建议,使用 og:image:url
和 og:image:secure_url
,但没有任何区别,图像不会用于预览。
两个站点都有有效的 https 证书,所以这不是证书问题。
搜索更多内容后,我发现 Facebook 对图片有最小尺寸。如果 og:image
小于 200x200px,Facebook 将不会使用它。推荐的故事尺寸为 600x600 像素,其他所有尺寸为 1200x630 像素。
我在我的第二个网站上放大了图像尺寸,它们开始出现在 Facebook 上。谜底解开。
希望你觉得这有用。
答案 16 :(得分:0)
我碰到另一个原因,导致og图像无法显示在FB卡上。此外,使用FB scraper tool to debug the og meta tags,我可以确认所有required tags在WordPress页面中的位置,但是我会收到以下文件下载错误,
提供的og:image,
无法下载。 发生这种情况的原因可能有多种,例如您的服务器 使用不受支持的内容编码。搜寻器接受deflate和gzip内容编码。
我有一种模糊的感觉,图像格式有问题,图像的链接正常工作,但是该消息似乎表明内容编码有问题。
经过大量搜索,我最终查看了php extensions that are required for a WordPress server,并意识到未安装pho-exif模块。 exif模块将exif metadata写入所有上传的图像。结果,FB og图像标签中使用的图像没有与之关联的任何exif元数据。
启用exif模块后,WordPress允许重置图像的exif元数据(媒体库->选择和图像->编辑更多详细信息->映射exif元数据),并且图像现在按预期显示在FB卡上
答案 17 :(得分:0)
好的...我知道这个线程很旧而且人满为患,但是如果有人像我那样努力地让他们的og:image标签在Facebook上正常工作,这是对我有用的窍门:
请勿使用此链接:
https://developers.facebook.com/tools/debug/sharing/?q=https%3A%2F%2Fwww.google.com
解决您的问题。或者,如果您这样做,请立即向下滚动至底部,然后单击Scrape VIA API。
在资源管理器工具中显示的错误未在“调试”工具中显示。疯了! (在我的情况下,图像文件名中的空格在调试工具中将我的图像无声地敲了出来,但在资源管理器工具中却显示了错误)。
答案 18 :(得分:0)
在我的情况下,似乎该搜寻器只是一个错误。我尝试过:
这些作品都没有。这花了我一周的时间。突然之间,它似乎又无处不在。
如果有人再次遇到此问题,这是我的研究:
此外,除了Facebook's Object Debugger以外,还有更多检查程序供您检查:OpenGraphCheck.com,Abhinay Rathore's Open Graph Tester,Iframely's Embed Codes,Card Validator | Twitter Developers。
答案 19 :(得分:0)
更新元标记后,请确保content(image)链接为绝对路径,并且
转到here https://developers.facebook.com/tools/debug/sharing
输入您的网站链接,然后单击下一页的scrape again
答案 20 :(得分:0)
我从http://
中抽出og:image
并换成了普通的旧www.
,然后开始正常工作。
您可以使用this tool, by Facebook重置图像抓取缓存,并测试其为演示图像提取的URL。
答案 21 :(得分:0)
今天有类似的问题,Sharing Debugger帮我解决了。看来,Facebook无法(当前)理解嵌入了XMP元数据的图像。当我用没有XMP元数据的版本替换文章中的图像,然后重新刮擦页面(使用共享调试器)时,问题就消失了。十六进制编辑器将帮助您查看图像是否包含XMP元数据。
答案 22 :(得分:0)
对我来说这很有效:
<meta property="og:url" content="http://yoursiteurl" />
<meta property="og:image" content="link_to_first_image_if_you_want" />
<meta property="og:image" content="link_to_second_image_if_you_want" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="400" />
<meta property="og:image:height" content="300" />
<meta property="og:title" content="your title" />
<meta property="og:description" content="your text about homepage"/>
答案 23 :(得分:0)
我可以看到您网址中的Debugger is retrieving 4 og:image
tags。
第一张图片是最大的,因此加载时间最长。 尝试缩小第一张图像或更改顺序以首先显示较小的图像。
答案 24 :(得分:0)
从我观察到的情况来看,我看到当你的网站是公开的时候,即使图像网址是https,它也能正常工作。
答案 25 :(得分:-3)
经过几个小时的测试和尝试......
我尽可能简单地解决了这个问题。 我注意到他们在Facebook开发者页面中使用“测试页面”,其中仅包含“og”标签和body标签中的一些文本,这些文本会反馈这个og标签。
那我做了什么?
我在我的应用程序中创建了第二个视图,其中包含了他们使用的相同内容。
我怎么知道Facebook正在访问我的页面以便我可以更改视图?他们有一个独特的用户代理:“facebookexternalhit / 1.1”