我有这样的博客帖子:
http://www.topluisilanlari.com/blog/goster/48/abc
首先请更改abc部分(它不会对页面产生差异)。当我尝试在Facebook上分享这个网址时,它不显示页面图像(代码中有og:图像属性)但是当我在facebook调试器中输入相同的网址并点击“获取新的网页信息”按钮时,我的页面图像显示正常和分享功能。
我该如何解决?
感谢。
答案 0 :(得分:2)
https://developers.facebook.com/docs/sharing/best-practices#precaching:
当第一次共享内容时,Facebook抓取工具将从共享的URL中抓取并缓存元数据。爬虫必须至少看一次图像才能渲染。这意味着共享一段内容的第一个人不会看到渲染图像
有两种方法可以避免这种情况,并在第一个Like或Share操作上呈现图像:
<强> 1。使用URL调试器预先缓存图像
通过URL调试器运行URL以预取页面的元数据。如果更新一段内容的图像,也应该这样做。<强> 2。使用
og:image:width
和og: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