Facebook不从og:image加载图像

Facebook不从og:image加载图像,facebook,facebook-opengraph,Facebook,Facebook Opengraph,它已经开始工作了,但今天我很惊讶,当我尝试分享链接时,Facebook没有显示来自og:image meta-tag的图像 发件人: Meta标记: 元标记: 元标记: 元标记: 元标记: 元标记: 元标记: 元标记: 图像在哪里?图像显示在Facebook调试器中(尽管它看起来不太好,因为你有一些透明度,最适合你的灰色背景,FB不会拍摄) 最好使用方形图像 有一件事我发现了,Facebook在他们这边缓存元数据。所以,如果我们对像图像这样的东西进行更改,在清除缓存之前,它们不会总是出现。也

它已经开始工作了,但今天我很惊讶,当我尝试分享链接时,Facebook没有显示来自og:image meta-tag的图像

发件人:

Meta标记:
元标记:
元标记:
元标记:
元标记:
元标记:
元标记:
元标记:


图像在哪里?

图像显示在Facebook调试器中(尽管它看起来不太好,因为你有一些透明度,最适合你的灰色背景,FB不会拍摄)

最好使用方形图像


有一件事我发现了,Facebook在他们这边缓存元数据。所以,如果我们对像图像这样的东西进行更改,在清除缓存之前,它们不会总是出现。也许你以前有错误的图像url/没有url,FB缓存了这个结果。如果是这样的话,您可能需要等待一段时间才能清除并再次获取数据。我看到它需要一段时间(大约在一天的范围内)

我也有同样的问题,但FB调试器“说”图像在两个维度上都必须至少是200px。当我将图像的大小调整到200像素时,在较短的一侧,一切都进行得很顺利。另一件事是布鲁斯说的——缓存。我不得不开始另一个页面来测试我的最终链接

希望这有帮助。
关于

当您注意到要在facebook上共享的页面存在缓存问题时(我的意思是,如果您看到页面源代码与facebook上显示的值之间存在差异,或者如果您注意到一些缺失的值),那么您可以转到以下url,提供您试图在facebook上共享的url,并提交表单以清除facebook缓存。
现在,您可以再次尝试共享您的页面,您应该可以看到与页面源代码中相同的值。

结果表明,答案是同时设置
og:image:width
og:image:height

另见:


(在我自己的测试中,我发现设置
og:image:width
og:image:height
就足够了。设置
og:image:type
是不必要的。)

把你的URL放到这个网站上,facebook会帮你:


有时,facebook会显示旧的缓存图像文件,使其高于您的URL,从而显示当前的更新结果。一旦完成,facebook将存储您的新图像,之后它将只显示新图像。

试试这个,它会有帮助。

<?php

$params = array();
if(count($_GET) > 0) {
    $params = $_GET;
} else {
    $params = $_POST;
}
// defaults
if($params['type'] == "") $params['type'] = "restaurant";
if($params['locale'] == "") $params['locale'] = "en_US";
if($params['title'] == "") $params['title'] = "default title";
if($params['image'] == "") $params['image'] = "thumb";
if($params['description'] == "") $params['description'] = "default description";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# MY_APP_NAME_SPACE: http://ogp.me/ns/fb/MY_APP_NAME_SPACE#">
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

        <!-- Open Graph meta tags -->
        <meta property="fb:app_id" content="MY_APP_ID" />
        <meta property="og:site_name" content="meta site name"/>
        <meta property="og:url" content="URL/index.php?type=<?php echo $params['type']; ?>&locale=<?php echo $params['locale']; ?>&title=<?php echo $params['title']; ?>&image=<?php echo $params['image']; ?>&description=<?php echo $params['description']; ?>"/>
        <meta property="og:type" content="MY_APP_NAME_SPACE:<?php echo $params['type']; ?>"/>
        <meta property="og:locale" content="<?php echo $params['locale']; ?>"/>
        <meta property="og:title" content="<?php echo $params['title']; ?>"/>
        <meta property="og:image" content="URL/img/<?php echo $params['image']; ?>.png"/>
        <meta property="og:description" content="<?php echo $params['description']; ?>"/>

    </head>
</html>


要手动清空缓存,请向url添加?v=2或一些参数,然后单击“添加新url”并启动Facebook调试器()。
现在,使用原始url(不带?v=2)重试,图像就会出现。

答案是,您必须记住将图像打开访问。如果您将其上载到服务器,并且您的服务器已激活安全性。(安全性意味着您在不知道图像或任何东西的确切链接的情况下无法访问图像或任何东西)。如果激活,facebook将无法连接到您的图像


您可以做的一件事是将您的图像上传到dropbox并公开该文件。所以每个人都可以访问它,然后将它链接到:)。或者只需打开服务器访问权限。^^:)

我只是在从以前创建的应用程序中放置id时才设法解决了这个问题

<meta property = "fb:app_id" content = "1234567891011121" />


我遇到了FB没有下载og图像的另一个原因,这与没有将EXIF元数据写入WordPress站点上传的图像有关。我已经在这篇文章中详细回答了这个问题。

将png改为gif解决了这个问题,FB没有缓存旧的png,因此我在应用FB debugger并进行测试后立即发布结果通过Facebook调试器粘贴您的URL强制缓存刷新-如果您不耐烦,请记住这一点!即使这样,也不会一直刷新缓存。我提供了指向文档的链接,这些文档指定了为什么要刮页面以及如何刮页面(通过向Facebook对象调试器发送web请求或使用curl)。这个过程应该为每个新创建的页面完成。旧答案,新评论。实际上,现在最好使用1.91:1的图像。有趣的是,facebook忽略了我在og:image中的144x144 png,而选择了加载spinner.gif,即16x16左右。有趣的将尝试200x200 png,但我打赌它只想要.gif,或者png上的8位透明度让它感到困惑?看起来缓存实际上已被清除。然而,facebook似乎不喜欢小图片。如果og图像太小,则会“随机”拍摄图像。这个答案对我很有用。为了让Facebook重新设置我的网站并应用更改,我不得不使用
https://developers.facebook.com/tools/debug/sharing/?q=myURL.TLD
<meta property = "fb:app_id" content = "1234567891011121" />