为什么friendlist中的total_count与facebook图表中的实际朋友数量不同

时间:2015-04-14 02:26:47

标签: php facebook facebook-graph-api

我从facebook获得好友列表:

$send_url = "https://graph.facebook.com/me/friends?access_token=CAATihlnybnYBALlxCHkgcnVxQ7HvZAyPYqBMWHtBfdLizNZBzIffMBFBfVBzZCDCvOXuZBzbTDcRd36xfwwtSghQBM6rZB14bL4FjhHRcX0ZAIYt3oi3ShbqAEU4aXZAjHD4MtYSQmHsq8RR0uEz4ZBfk2hD1GLctLZAzifTcQGwg26D0AQZBBvD1FkEFgUWhu1YaXZCwTojHwe4AZDZD";

然后我通过以下方式计算朋友:

    $jsonFriends = json_decode($data, true);
$friendsLists = $jsonFriends['data'];
$i=0;
foreach ($friendsLists as $friends) 
{
  $i=$i+1;
}
echo $i;

我得到的$ i是朋友的数量是:453,但是如果access_token过期,我没有得到数据,但它仍然给出total_count的摘要是474。 所以我想知道474是什么意思?这是朋友的总数(我查看我的Facebook页面,所有朋友,数字也是474)。那为什么我的计数会给出不同的数字呢?我对计数很有信心,因为我提供了一个较短的测试数据,我可以仔细检查它,看它是否正确。

1 个答案:

答案 0 :(得分:1)

/ {user-id} / friends的documentation表示:

  
      
  • 这只会返回使用(通过Facebook登录)应用程序的任何朋友。
  •   
  • 如果此人的朋友拒绝了user_friends权限,该朋友将不会出现在此人的朋友列表中。
  •   

这可能解释了为什么data对象中返回的人数与total_count不同的原因:

"summary": {
    "total_count": 474
  }

返回Facebook好友的总数,无论他们是否拥有该应用。 这可能是您列表中缺少的21个人的原因。