我正在寻找通过给定用户对象ID获取所有朋友的生日信息的资源最少的方法。可能使用事件对象,因为朋友的生日在事件中是可见的。
答案 0 :(得分:6)
我通过以下方式做了类似的事情:
1)像Awais所指出的那样 - 您需要在登录时首先获得用户的扩展许可才能访问他们的生日信息
<fb:login-button perm="user_birthday, friends_birthday"></fb:login-button>
2)有不同的方法可以做到这一点,但是如果你没有使用php sdk,你可以按照以下方式获得朋友生日
all_friends_profile = json_decode(file_get_contents('https://api.facebook.com/method/fql.query?query=select+uid,name,birthday_date+from+user+where+uid+in+(select+uid2+from+friend+where+uid1%3Dme())&format=json&access_token=...')); foreach($all_friends_profile as $profile) { echo $profile->name.' birthay='.$profile->birthday_date; }
只需替换上述代码中的访问令牌,它就应该遍历所有朋友并打印他们的生日
3)基本上我使用的查询是
select uid,name,birthday_date from user where uid in (select uid2 from friend where uid1=me())祝你好运
答案 1 :(得分:1)
非常简单。只需获取用户生日的扩展权限,然后只需查询用户表即可获得生日
<fb:login-button perm="user_birthday, friends_birthday"></fb:login-button> $user=json_decode(file_get_contents('https://graph.facebook.com/me/friends?access_token='.$cookie['access_token'])); foreach($user[data] as $friend) { $fql = "select name, birthday_date from user where uid=".$friend['id']; $param = array( 'method' => 'fql.query', 'query' => $fql, 'callback' => '' ); $fqlResult = $facebook->api($param); print_r($fqlResult);
希望它能运作