我正在努力用PHP中的GRAPH API提取数据 . 我不了解Facebook开发者的文档 . 我也找不到任何帮助的例子 . 我想让我的API给我以下(在本月的第一天和当月的最后一天之间):
-
新喜欢
-
访问
-
有机覆盖率(每月总计)
-
有机覆盖面(本月每天)
-
付费覆盖面(每月总计)
-
付费到达(每月的每一天)
-
迄今为止的费用
-
参与
-
有机印象
-
付费展示次数
我已经达到了能够提取数据的能力,但是当我测试使用洞察力部分时,它并没有给我数据 . 例如我有这个:
// Sets the default fallback access token so we don't have to pass it to each request
$fb->setDefaultAccessToken('{access-token}');
try {
$response = $fb->get('/{page-id}/insights/page_impressions?since=1443650400&until=1446246000', $accessToken);
$graphEdge = $response->getGraphEdge();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
它返回:
Facebook\GraphNodes\GraphEdge Object
(
[request:protected] => Facebook\FacebookRequest Object
(
[app:protected] => Facebook\FacebookApp Object
(
[id:protected] => *******************
[secret:protected] => ********************
)
[accessToken:protected] => *******************
[method:protected] => GET
[endpoint:protected] => /{page-id}/insights/page_impressions?since=1443650400&until=1446246000
[headers:protected] => Array
(
[Content-Type] => application/x-www-form-urlencoded
)
[params:protected] => Array
(
)
[files:protected] => Array
(
)
[eTag:protected] =>
[graphVersion:protected] => v2.5
)
[metaData:protected] => Array
(
[paging] => Array
(
[previous] => https://graph.facebook.com/v2.5/{page-id}/insights/page_impressions?access_token=*******************&appsecret_proof=*******************&since=1440968400&until=1443564000
[next] => https://graph.facebook.com/v2.5/{page-id}/insights/page_impressions?access_token=*******************&appsecret_proof=*******************&since=1446159600&until=1448755200
)
)
[parentEdgeEndpoint:protected] =>
[subclassName:protected] =>
[items:protected] => Array
(
)
)
我没有看到任何可以使用的信息,这仅仅是针对page_impressions . 我甚至改变了日期,从7月31日开始到10月31日结束,但仍然没有任何结果 . 我的两个问题是:1 . 我做错了什么? 2.如何进行多次调用以获取上面列表中的所有数据?
先谢谢你!
1 回答
由于响应没有抛出错误,请确保您满足以下要求:
对于未公开提供的数据洞察指标(
page_impressions
,page_stories
等),您的访问令牌必须具有read_insights权限 .仅为拥有超过30人喜欢的Facebook页面生成数据洞察 . (您的Facebook页面必须有> 30个粉丝)
对于第1点,如果您没有给出数据(因为它不公开),Facebook Graph Api不会抛出错误 . 为此,您必须为您的Facebook应用程序申请
read_insight
权限,并获得Facebook团队的reviewed批准 .或者(不推荐的方式)检查:How to get a never expiring Facebook Page Access Token
这是使用Graph Api Explorer显示指标数据的方法:
登录Graph Api Explorer
点击“获取令牌”,然后点击“获取用户访问令牌”
read_insights
,然后单击“获取访问令牌” .为自己授予您请求的权限 .
现在在Graph API查询字段中输入测试查询,然后单击提交:
在那里,您将看到指标的数据 . 如果它没有生成任何数据,那么它是因为第2点(必须有> 30次)
Facebook允许批量请求,例如使用php-sdk: