首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP & Facebook: Facebook -使用CURL和Facebook调试器调试URL

PHP & Facebook: Facebook -使用CURL和Facebook调试器调试URL
EN

Stack Overflow用户
提问于 2014-07-15 12:43:23
回答 1查看 3.5K关注 0票数 3

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,等等)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-15 18:44:50

您可以使用Facebook图形API与PHP-cURL一起调试图形对象,方法是执行POST

代码语言:javascript
代码运行次数:0
运行
复制
https://graph.facebook.com/v1.0/?id={Object_URL}&scrape=1

为了使事情变得更简单,我们可以将调试器封装在一个函数中:

代码语言:javascript
代码运行次数:0
运行
复制
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一起使用

代码语言:javascript
代码运行次数:0
运行
复制
r( facebookDebugger('http://retrogramexplore.tumblr.com/') );

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24758526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档