Facebook API - 不支持获取页面/帖子洞察的请求

时间:2015-10-20 13:17:50

标签: php facebook facebook-graph-api

我知道有很多关于Facebook的SDK和API的问题以及这个特定的错误回复,但是他们似乎都没有回答我的问题。

我运行一个Facebook页面,直到几天前我运行了一些代码才能收集我的Facebook页面上每个帖子的insights数据。

这就是我在做的事情:

define('FB_APP_ACCESS_TOKEN', 'omitted'); // Never expires, has permission to read insight data (and more)
define('FB_APP_ID', 'omitted'); // ID of my Facebook App
define('FB_APP_SECRET', 'omitted'); // Secret for App
define('FB_ACCOUNT_ID', 'omitted'); // Facebook ID of my page
define('FB_REQUEST', 'insights/post_impressions_unique,post_consumptions_by_type,post_negative_feedback_by_type,post_consumptions,post_story_adds_by_action_type');

// .. Require Facebook SDK (Using composer)
// .. Other processing


// Initialise the Facebook SDK with our credentials and permanent access token.
$fb = new Facebook\Facebook([
    'app_id' => FB_APP_ID,
    'app_secret' => FB_APP_SECRET,
    'default_graph_version' => 'v2.2'
]);
$fb->setDefaultAccessToken(FB_APP_ACCESS_TOKEN);


// .. Grab some posts from my database
foreach ($posts as $post) {
    $postId = $post['id'];
    $request = FB_ACCOUNT_ID . '_' . $postId . '/' . FB_REQUEST;
    // Request will now contain something like...
    // <PAGE_ID>_<POST_ID>/insights/post_impressions_unique,post_consumptions_by_type,post_negative_feedback_by_type,post_consumptions,post_story_adds_by_action_type

    try {
        $fb->get($response); // This line fails and throw exception

        // .. Rest of my processing
    } catch (Facebook\Exceptions\FacebookSDKException $e) {
        die("\nEXCEPTION: {$e->getMessage()}\n{$e->getTraceAsString()}");
    }
}

上面的代码工作得很好,直到几天前我发现我的统计数据还没有进入。经过一些调查和使用Graph API Explorer后,我发现我得到以下输出:< / p>

  

例外:不支持的获取请求。请阅读https://developers.facebook.com/docs/graph-api

上的Graph API文档

使用Graph API Explorer:

{
  "error": {
    "message": "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
    "type": "GraphMethodException",
    "code": 100,
    "fbtrace_id": "XXXXXXX"
  }
}

无论我尝试过什么,我似乎都无法再次在页面上获得单个帖子的见解。我尝试使用Graph API Explorer,尝试了多种组合,但似乎无法获得任何回报。我甚至尝试使用正确的权限生成新令牌无济于事。我尝试过的一些组合:

  • <POST_ID>/insights - (#12) singular statuses API is deprecated for versions v2.4 and higher
  • <PAGE_ID>/insights - 显示页面的所有见解,不显示每个特定帖子

有谁知道我哪里出错?

干杯

1 个答案:

答案 0 :(得分:2)

除了始终在每个请求中都有正确的访问令牌外,还有

中的文档

包含提示:

  

/ {post-id} /见解(仅限网页帖子)*   *注意:图谱API对象{post-id}需要以API调用返回的相同格式指定以获取页面帖子列表 - 不要尝试拆分或合并其他ID以形成帖子ID

基线:尝试使用

$request = $postId . '/' . FB_REQUEST;

而不是

$request = FB_ACCOUNT_ID . '_' . $postId . '/' . FB_REQUEST;