我一直在尝试使用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
我检查了年龄限制:它对所有人开放。
然后我哪里出错了?谢谢你的帮助
答案 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);
?>