我想找回所有朋友的家乡,我使用类似的PHP来检索他们的名字。我认为使用的代码应该工作,但我认为因为有些用户没有设置它不会工作的家乡,并且说每个参数都是无效的(尽管这可能是完全错误的)。
当只需输入网络浏览器的URL时,我得到以下结构:
{
"id": "z",
"friends": {
"data": [
{
"name": "x",
"hometown": {
"id": "x",
"name": "x"
},
"id": "x"
},
然后对朋友列表中的每个用户重复一次,但对于没有家乡的朋友,则省略以下内容:
"hometown": {
"id": "x",
"name": "x"
},
要检索姓名和生日,我使用了以下PHP:
$response2 = curl_exec($ch2);
$user2 = json_decode($response2, true);
$user3=$user2{'friends'};
$user4=$user3['data'];
echo ("<h2>Friend List</h2><br>");
foreach($user4 as $friend) {
echo $friend["name"] . "<br />" . $friend["birthday"] . "<br /><br />";
}
}
PS我知道变量名称并不是特别好,但是一旦我弄清楚我为家乡做了什么,我就会改变它们。
非常感谢您提前提供任何帮助。
答案 0 :(得分:0)
不是每个人都可以将他们的家乡或位置提供给他们的朋友。在这种情况下,您将无法通过API获取数据,需要检查它。
为了获得比查询家乡更多的数据,我们还读出了current_location。
通过Graph API,您可以使用此资源:https://graph.facebook.com/me/friends?fields=hometown,location
如果您使用FQL,可以使用如下查询:
SELECT uid, first_name, last_name, current_location, hometown_location, friend_count, mutual_friend_count FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
请注意,您需要friends_location
和friends_hometown
权限才能阅读这些字段。