我从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)。那为什么我的计数会给出不同的数字呢?我对计数很有信心,因为我提供了一个较短的测试数据,我可以仔细检查它,看它是否正确。
答案 0 :(得分:1)
/ {user-id} / friends的documentation表示:
- 这只会返回使用(通过Facebook登录)应用程序的任何朋友。
- 如果此人的朋友拒绝了user_friends权限,该朋友将不会出现在此人的朋友列表中。
这可能解释了为什么data
对象中返回的人数与total_count
不同的原因:
"summary": {
"total_count": 474
}
返回Facebook好友的总数,无论他们是否拥有该应用。 这可能是您列表中缺少的21个人的原因。