2013-02-12 2 views
0

Я ищу, чтобы получить все родные родные мои друзья, я использую аналогичный PHP, который используется для извлечения их имен. Я думаю, что код im, использующий , должен работать, но я думаю, потому что некоторые пользователи havent устанавливают родной город, он не работает и говорит, что для каждого аргумента недействительно (хотя это может быть совершенно неверно).Facebook API - Get friends hometown

Когда просто набрав в 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 Я знаю, что имена переменных arent особенно хороши, но я изменю их, как только я понял, что они делают для родного города!

Большое спасибо за любую помощь заранее.

ответ

0

Не все делают свой родной город или местоположение доступными для своих друзей. В этом случае вы не сможете получить данные по API и должны их проверить.

Чтобы получить немного больше данных, чем просто запрос на родной город, мы также зачитаем текущее местоположение.

Через API Graph вы бы использовать этот ресурс: 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 читать эти поля.

+0

Спасибо за ответ, из моего понимания вы не можете получить доступ к местоположению пользователей или родному городу, используя 'me/friends /', и вы должны использовать 'user_id? Fields = friends' Im, не использующий FQL, но не прочь использовать он до тех пор, пока возвращается родной город, идея состоит в том, чтобы отображать родной город на Картах Google. – thrash

+0

/me/friends возвратят как местоположение, так и родной город, если вы попросите поля в строке запроса. Вы можете проверить это в [Graph API Explorer] (https://developers.facebook.com/tools/explorer/?method=GET&path=me%2Ffriends%3Ffields%3Dname%2Chometown%2Clocation). (Нажмите «Получить токен доступа» и дайте разрешения 'friends_location' и' friends_hometown'.) – mgw

+0

Кстати, если вы используете родной город для Карт Google, вы можете использовать ID, возвращенный Facebook, и сделать еще один запрос для получения широту и долготу возвращенного местоположения. Пример для Венеции: [https://graph.facebook.com/110339052328061](https://graph.facebook.com/110339052328061) – mgw

Смежные вопросы