Facts:我运行一个简单的网站,其中包含文章、通过抓取第三方网站/博客等动态获取的文章(新文章每半个小时左右到达我的网站),我希望在facebook页面上发布这些文章。每一篇文章通常包括一个图像,一个标题和一些文本。
Problem:我在Facebook上发布的大部分(几乎所有)文章都没有正确发布--它们的图片不见了。
低效解决方案:使用Facebook的调试器(这个)向其提交一篇文章的URL (来自我的网站,而不是原始源的URL),然后Facebook扫描/刮取该(这个),并正确提取所需的信息(图像、标题、文本等)。在这一行动之后,这篇文章可以被正确地发布在Facebook上--没有丢失的图像或任何东西。
:我想要的是一种创建一个进程的方法,它将向Facebook的调试器提交一个URL,从而迫使Facebook扫描/刮刮该URL,以便能够正确地发布它。我认为我需要做的是创建一个包含URL的HTML帖子请求,并将其提交给Facebook的调试器。这样做对吗?如果是的话,因为我以前没有使用CURL的经验,那么在PHP中使用CURL的正确方法是什么?
Side Notes:作为附带说明,我应该指出,我在文章中使用的是短URL,尽管我不认为这是问题的原因,因为即使使用规范URL,问题仍然存在。
此外,Open标记也被正确设置(og:image,og:description,等等)。
发布于 2014-07-15 10:44:50
您可以使用Facebook图形API与PHP-cURL
一起调试图形对象,方法是执行POST
https://graph.facebook.com/v1.0/?id={Object_URL}&scrape=1
为了使事情变得更简单,我们可以将调试器封装在一个函数中:
function facebookDebugger($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/v1.0/?id='. urlencode($url). '&scrape=1');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$r = curl_exec($ch);
return $r;
}
虽然这将更新和清除通过的URL
的Facebook缓存,但是打印出每个键及其内容并同时避免错误有点困难,但是我建议使用var_dump()
或print_r()
或PHP-参考文献
与PHP-ref
一起使用
r( facebookDebugger('http://retrogramexplore.tumblr.com/') );
https://stackoverflow.com/questions/24758526
复制