如何获得total_count的朋友? Facebook PHP-api

时间:2016-07-28 02:37:48

标签: php facebook facebook-graph-api

我正在获取facebook用户的朋友数量。我不知道如何获得total_count。

这是我的代码:

$helper = $fb->getRedirectLoginHelper();

try 
    if (isset($_SESSION['facebook_access_token'])) {
                $accessToken = $_SESSION['facebook_access_token'];

    } else {
        $accessToken = $helper->getAccessToken();
    }

  // Returns a `Facebook\FacebookResponse` object
    $response = $fb->get('/me?fields=id,name,email,friends', $accessToken);

} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
echo $accessToken;
 $user = $response->getGraphUser();
 $userInfo = $user->asArray();

 print_r($userInfo);

然而,打印返回这些:

( [id] => 1234567890 
  [name] => lmc_john
  [email] => xxxxxxxx@hotmail.com 
  [friends] => Array ( ) )

Graph-api test tool上,它会返回以下内容:

{
    "id": "12345667890",
    "name": "lmc_john",
     "friends": {
       "data": [
        ],
        "summary": {
        "total_count": 89
    }
  }
}

那么,我怎样才能从这个数组中获得朋友total_count?

帮助

最后,我找到另一种方式来获得总朋友。

这是我的来源代码: https://github.com/capslock10/Get_facebook_total_friend/blob/master/getSession.php

希望可以帮助别人。

3 个答案:

答案 0 :(得分:0)

这是猜测,但也许您可以确认其实际情况。朋友正在向您显示数据,由于您的应用无权查看朋友,因此该数据非常清空。但是,如此处所述,您可以访问边缘的摘要数据。

https://developers.facebook.com/docs/php/GraphEdge/5.0.0

  

Graph的某些端点和边缘支持数据摘要。如果   summary = true修饰符是在受支持的端点上发送的请求   或者,Edge将返回元数据中结果的总数   在$ .summary.total_count下。 getTotalCount()将返回该值或   如果它不存在,则返回null。

答案 1 :(得分:0)

啊,典型的问题。因此解决这个问题的简单方法是解码图形体,而不是使用GetGraphUser,因为GetGraphUser不会通过total_count发送。

确保不使用来自"朋友"的count()因为它只显示 "只有安装此应用程序的朋友才能在API v2.0及更高版本中返回。 total_count in summary表示朋友的总数,包括尚未安装应用的朋友"

以下是解决方案:

        $response = $response->getDecodedBody();
        $count = $response['friends']['summary']['total_count'];

答案 2 :(得分:-1)

简单,您可以使用方法[count(array)= total_count]。参考enter link description here

  

回显计数($ userInfo ['朋友']);