我有类似这样的博客文章网址:
http://www.topluisilanlari.com/blog/goster/48/abc
首先,请更改abc部分(这不会造成页面差异)。当我尝试在Facebook上共享此URL时,它不显示页面图像(代码中存在og:image属性),但是当我在Facebook调试器中输入相同的URL并单击“获取新的抓取信息”按钮时,我的页面图像显示正确以及共享功能。
我该如何解决?
谢谢。
https://developers.facebook.com/docs/sharing/best-practices#precaching:
第一次共享内容时,Facebook搜寻器将从共享的URL中抓取并缓存元数据。抓取工具必须至少看到一次图像才能进行渲染。这意味着共享内容的第一个人将看不到渲染的图像
有两种方法可以避免这种情况,并在第一个“赞”或“共享”操作上渲染图像:
1。使用URL调试器预缓存图像通过URL调试器运行URL以预取页面的元数据。如果您为某个内容更新图像,也应该执行此操作。
2。使用
og:image:width
和og:image:height
打开图表标签使用这些标签会将图像指定给搜寻器,以便它可以立即呈现图像而不必异步进行。
第二个也是如此–通过这些og
元标记指定预览图像的尺寸。
Facebook不会定期抓取URL:它不是搜索引擎。第一次共享页面时,它会刮擦页面并保存此信息,直到您重新刮擦或重新获取页面为止(如您所尝试的)。
关于打开图的更多信息,以及示例,可以在http://ogp.me上找到,尽管此open graph generator将来可能会对您有所帮助。
[今天,当我查看抓取信息时,它包含错误,并且元标记未以/>
结尾(仅以>
结尾)。好像我重新抓取页面一样,已经解决了这个问题。现在可以通过添加以下方法来修复唯一的警告:
<meta property="og:url" content="http://www.topluisilanlari.com/blog/goster/48/abc"/>
您的代码有几个问题,尽管没有引起共享问题,但它有validation errors。
[如果有人偶然发现有关如何使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
,正文为包含URL的数组,该URL带有?scrape=true
查询参数和访问权限令牌。
$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