事实:我运行一个简单的网站,其中包含通过抓取第三方网站/博客等动态获取的文章,文章(新文章每半小时左右到达我的网站),文章哪些我希望在我的Facebook页面上发帖。每篇文章通常都包含图片,标题和一些文字。
问题:我在Facebook上发布的大多数(几乎所有)文章都没有正确发布 - 他们的图片丢失了。
低效解决方案:使用Facebook的调试器(this one)我向其提交文章的网址(来自我网站的网址,而不是原始来源的网址),然后Facebook会扫描/抓取网址并正确提取所需的信息(图像,标题,文本等)。在此操作之后,文章可以正确地发布在Facebook上 - 没有丢失的图像或任何东西。
目标:我所追求的是一种创建流程的方法,该流程将向Facebook的调试器提交URL,从而迫使Facebook扫描/抓取URL,以便可以正确发布。我相信我需要做的是创建一个包含URL的HTML POST请求并将其提交给Facebook的调试器。这是正确的方法吗?如果是的话,因为我以前没有使用过CURL的经验,在PHP中使用CURL的正确方法是什么?
附注> :作为旁注,我应该提一下,我正在为我的文章使用短网址,虽然我不认为这是问题的原因,因为问题仍然存在,即使我使用规范网址。
此外,正确设置了Open Graph元标记(og:image,og:description等)。
答案 0 :(得分:9)
您可以使用带有PHP-cURL
的Facebook图表API调试图形对象,方法是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-ref
使用PHP-ref
r( facebookDebugger('http://retrogramexplore.tumblr.com/') );