错误:不支持的获取请求。请阅读Graph API文档

时间:2015-04-13 07:13:19

标签: php facebook facebook-graph-api curl

我一直在尝试使用cURL访问有关我的Facebook PAGE的信息。我在Graph Explorer中传递了url me / accounts,其中显示了一些数据如下:

{
  "data": [
    {
      "access_token": "tokenString", 
      "category": "Small business", 
      "name": "myPageName", 
      "id": "xxx", 
      "perms": [
        "ADMINISTER", 
        "EDIT_PROFILE", 
        "CREATE_CONTENT", 
        "MODERATE_CONTENT", 
        "CREATE_ADS", 
        "BASIC_ADMIN"
      ]
    }
  ], 
  "paging": {
    "cursors": {
      "before": "MTM4NzYwMjM5NDg5NTUzOQ==", 
      "after": "MTM4NzYwMjM5NDg5NTUzOQ=="
    }
  }
}

但是当我试图在cURL中运行相同的东西并通过终端运行时,它会给我一个错误“不支持的GET请求

  

代码:

<?php
  $url='https://graph.facebook.com/v2.3/me/accounts';
  $ch=curl_init();
  CURL_SETOPT($ch,CURLOPT_URL,$url);
  CURL_SETOPT($ch,CURLOPT_RETURNTRANSFER, 1);
  $json=json_decode(curl_exec($ch));
  var_dump($json);
?>
  

错误:

object(stdClass)#1 (1) {
  ["error"]=>
  object(stdClass)#2 (3) {
    ["message"]=>
    string(114) "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api"
    ["type"]=>
    string(20) "GraphMethodException"
    ["code"]=>
    int(100)
  }
}

网页权限:manage_pages,publish_pages

我检查了年龄限制:它对所有人开放。

然后我哪里出错了?谢谢你的帮助

1 个答案:

答案 0 :(得分:4)

使用Graph Explorer时,会自动将Access Token添加到每个请求中。如果您通过cUrl执行相同的请求而未明确添加Access Token作为URL参数,那么它将失败。

您需要在调用中添加access_token参数,并使用manage_pages权限添加访问令牌(替换{access_token})。

<?php
  $url='https://graph.facebook.com/v2.3/me/accounts?access_token={access_token}';
  $ch=curl_init();
  CURL_SETOPT($ch,CURLOPT_URL,$url);
  CURL_SETOPT($ch,CURLOPT_RETURNTRANSFER, 1);
  $json=json_decode(curl_exec($ch));
  var_dump($json);
?>