我正在获取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
希望可以帮助别人。答案 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 ['朋友']);