我一直在尝试使用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请求”
Code:
<?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);
?>
Error:
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
我检查了年龄限制:它对所有人开放.
那我在哪里错了?谢谢你的帮助
解决方法:
使用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);
?>