Facebook不会自动抓取我网站的网址

时间:2015-05-11 10:54:27

标签: facebook social facebook-sharer

我有这样的博客帖子:

http://www.topluisilanlari.com/blog/goster/48/abc

首先请更改abc部分(它不会对页面产生差异)。当我尝试在Facebook上分享这个网址时,它不显示页面图像(代码中有og:图像属性)但是当我在facebook调试器中输入相同的网址并点击“获取新的网页信息”按钮时,我的页面图像显示正常和分享功能。

我该如何解决?

感谢。

3 个答案:

答案 0 :(得分:2)

https://developers.facebook.com/docs/sharing/best-practices#precaching

  

当第一次共享内容时,Facebook抓取工具将从共享的URL中抓取并缓存元数据。爬虫必须至少看一次图像才能渲染。这意味着共享一段内容的第一个人不会看到渲染图像

     

有两种方法可以避免这种情况,并在第一个Like或Share操作上呈现图像:

     

<强> 1。使用URL调试器预先缓存图像
  通过URL调试器运行URL以预取页面的元数据。如果更新一段内容的图像,也应该这样做。

     

<强> 2。使用og:image:widthog:image:height打开图表标记
  使用这些标记会将图像指定给爬虫,以便它可以立即呈现它而不必异步。

第二个也是如此 - 通过og元标记指定预览图像的尺寸。

答案 1 :(得分:0)

Facebook不会定期抓取网址:它不是搜索引擎。它在第一次共享时抓取一个页面并保存此信息,直到您重新抓取或重新获取页面为止(正如您所尝试的那样)。

有关开放图表的更多信息以及示例,可以在http://ogp.me找到,尽管此open graph generator可能会对您有所帮助。

今天我查看了scrape信息时,它包含错误,而meta标签并未以/>结尾(仅限>)。它看起来像重新抓取页面,我刚刚完成,修复了这个问题。现在唯一的警告可以通过添加:

来修复
<meta property="og:url" content="http://www.topluisilanlari.com/blog/goster/48/abc"/> 

您的代码有几个问题,它有validation errors,尽管这些问题不会导致共享问题。

答案 2 :(得分:0)

如果有人偶然发现有关如何使Facebook以编程方式抓取URL的详细信息,则答案在以下页面上:https://developers.facebook.com/docs/sharing/opengraph/using-objects#update

发送带有您要抓取/抓取的URL的POST请求,然后将查询参数?scrape=true&scrape=true添加到该URL(相应地)。还要在请求中添加访问令牌。

以下是WordPress中发帖请求的示例,但您可以对Guzzle,Curl等进行操作。端点为https://graph.facebook.com,正文为包含带有?scrape=true的URL的数组查询参数和访问令牌。

$scrape['id'] = $yoururl . '?scrape=true';
$scrape['access_token'] = $access_token;

$response = wp_remote_post(
                'https://graph.facebook.com',
                array(
                    'body' => $scrape,
                    'headers' => array(
                        'Content-Type' => 'application/x-www-form-urlencoded',
                    ),
                    'timeout' => 60,

                )
            );
print_r($response, true); //would echo out the results of the srape