如何在 facebook graph api 请求中使用 cURL

Posted

技术标签:

【中文标题】如何在 facebook graph api 请求中使用 cURL【英文标题】:how to use cURL in facebook graph api request 【发布时间】:2013-02-18 15:28:09 【问题描述】:

我正在使用 file_get_contents() 将信息发送到 facebook graph api

但有时我会收到错误消息。

我发现必须使用 cURL 而不是 file_get_contents()。

问题是,我不知道如何将 cURL 与我需要传递的 URL 一起使用。

如果我转换了

file_get_contents($graph_url);

进入cURL,代码是什么?

这里是 $graph_url 的内容

$graph_url= "https://graph.facebook.com/me/photos?"
  . "url=" . urlencode($photo_url)
  . "&message=" . urlencode('')
  . "&method=POST"
  . "&access_token=" .$access_token;

【问题讨论】:

阅读 cURL 文档,了解如何提出请求。 【参考方案1】:
    $graph_url= "https://graph.facebook.com/me/photos";
  $postData = "url=" . urlencode($photo_url)
  . "&message=" . urlencode('')
  . "&access_token=" .$access_token;
                
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $graph_url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

        $output = curl_exec($ch);

        curl_close($ch);

【讨论】:

如果我的 $graph_url = 'graph.facebook.com' 怎么样。 'fql?q=SELECT+src_big+FROM+photo+WHERE+object_id='.$photo_id. '&access_token=' 。 $access_token; 对于fql,file_get_contents更合适。我在 fql 中使用了这个函数。 如果您想使用curl,只需将CURLOPT_POST 更改为0 并删除CURLOPT_POSTFIELDS 选项。您的完整网址也是$graph_url = 'graph.facebook.com/fql?q=SELECT+src_big+FROM+photo+WHERE+object_id='.$photo_id. '&access_token=' . $access_token; @MaulikVora 重读后我明白了。 使用 http_build_query() 会更漂亮^^

以上是关于如何在 facebook graph api 请求中使用 cURL的主要内容,如果未能解决你的问题,请参考以下文章

在 facebook http graph api 上创建应用程序请求的问题

在单个 Graph API 请求中获取 Facebook 发布所有反应计数

Facebook Graph API,如何获取用户电子邮件?

Facebook Graph API:在一个请求中获取更大的图片

Facebook 请求配置文件 Graph API 无法在 iOS 7 本机 facebook 上未登录

Facebook Graph API - 来自批处理请求的同步响应