我有一个问题与Facebook的PHP SDK版本4.0。
我只是想通过图形API检索insights/page_fans_city
指标:
$request = new FacebookRequest($session, 'GET',
'/{my object}/insights/page_fans_city',
array('period' => 'lifetime'));
$response = $request->execute();
$client_graph_object = $response->getGraphObject();
print_r($client_graph_object);
但是,不返回任何数据:
Facebook'GraphObject Object
(
[backingData:protected] => Array
(
[data] => Array
(
)
[paging] => stdClass Object
(
[previous] => https://graph.facebook.com/v2.0/...
[next] => https://graph.facebook.com/v2.0/...
)
)
)
我知道我有我要的洞察号数据。我可以通过图形资源管理器发出完全相同的请求:
→/v.2.0/{我对象}/观点/page_fans_city吗?时间=一生
{
"data": [
{
"id": "{my object}/insights/page_fans_city/lifetime",
"name": "page_fans_city",
"period": "lifetime",
"values": [
{
"value": {
...
},
"end_time": "2014-08-01T07:00:00+0000"
},
{
"value": {
...
},
"end_time": "2014-08-02T07:00:00+0000"
}
],
"title": "Lifetime Likes by City",
"description": "Lifetime: Aggregated Facebook location data, sorted by city, about the people who like your Page. (Unique Users)"
}
],
"paging": {
"previous": "https://graph.facebook.com/v2.0/...,
"next": "https://graph.facebook.com/v2.0/...
}
}
我应该注意,如果省略page_fans_city
段,我am接收数据。当它被省略时-我只能查看page_fans_country
的数据。因此
$request = new FacebookRequest($session, 'GET',
'/{myobject}/insights/page_fans_country',
array('period' => 'lifetime'));
和
$request = new FacebookRequest($session, 'GET',
'/{myobject}/insights',
array('period' => 'lifetime'));
将为我工作…
我怀疑这是我的访问令牌-但我不确定为什么会这样。我创建的应用程序只需要read_insights
权限。
提前谢谢你
Mike
权限问题。如果你见过:
{
"data": [
],
...
}
很可能你的访问令牌没有足够的权限来访问你请求的数据(或者根本没有数据)。
我的问题是,即使我是应用程序和的开发人员,它是由Facebook批准的(具有manage_pages
和read_insights
权限)-我不能使用应用程序访问令牌来检索见解数据。
我需要用户访问令牌!
通过手动创建每个Facebook文档的登录流,我轻松地生成了用户访问令牌。这个stackoverflow线程也很有用。
更多关于Facebook代币的信息。
希望这有助于任何人谁绊倒在这个线程!
迈克