我想要做的是在php中的facebook朋友的计数器,所以代码的结果将是“你有1342个朋友!”。
所以这是我使用的代码:
<?php
require_once("../src/facebook.php");
$config = array();
$config[‘appId’] = 'MY_APP_ID';
$config[‘secret’] = 'MY_APP_SECRET';
$facebook = new Facebook($config);
$user_id = "MY_USER_ID";
//Get current access_token
$token_response = file_get_contents
("https://graph.facebook.com/oauth/access_token?
client_id=$config[‘appId’]
&client_secret=$config[‘secret’]
&grant_type=client_credentials");
// known valid access token stored in $token_response
$access_token = $token_response;
$code = $_REQUEST["code"];
// If we get a code, it means that we have re-authed the user
//and can get a valid access_token.
if (isset($code)) {
$token_url="https://graph.facebook.com/oauth/access_token?client_id="
. $app_id
. "&client_secret=" . $app_secret
. "&code=" . $code . "&display=popup";
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
}
// Query the graph - Friends Counter:
$data = file_get_contents
("https://graph.facebook.com/$user_id/friends?" . $access_token );
$friends_count = count($data['data']);
echo "Friends: $friends_count";
echo "<p>$data</p>"; //to test file_get_contents
?>
所以,echo $ Friends_count的结果总是“1”。
然后我用回声测试$ data,它给了我所有朋友的列表,所以它正在获取内容但不计算它...我怎么能解决它?
我已经尝试过更改
了$friends_count = count($data['data']);
的
$friends_count = count($data['name']);
和
$friends_count = count($data['id']);
但结果总是“1”。
上面代码的结果如下所示;
Friends: 1
{"data":[{"name":"Enny Pichardo","id":"65601304"},{"name":"Francisco Roa","id":"500350497"},etc...]
答案 0 :(得分:2)
你有一个JSON对象;一个字符串,而不是PHP可以用count()
“计数”的任何东西。您需要先解析JSON:
$obj=json_decode($data);
$friends_count = count($obj->data); // This refers to the "data" key in the JSON
我快速搜索了一些参考文献:
http://php.net/manual/en/function.json-decode.php
http://roshanbh.com.np/2008/10/creating-parsing-json-data-php.html
答案 1 :(得分:0)
你可以轻松地通过fql获得朋友数。
您可以查询用户表的friend_count字段。
SELECT friend_count FROM user WHERE uid = me();
https://graph.facebook.com/fql?q=SELECT friend_count FROM user WHERE uid={any id}