PHP / Facebook-Api: обновить список друзей - PullRequest
1 голос
/ 17 декабря 2010

Я использую официальный PHP-Facebook-Api и знаю, как получить список друзей пользователя.В основном это выглядит так:

    $facebook = new Facebook(array(
                'appId' => 'xxxxxxxx',
                'secret' => 'xxxxxxx',
                'cookie' => true,
            ));
    // $session is only != null, when you have the session-cookie, that is set by facebook, after the user logs in
    $session = $facebook->getSession(); 
    // you dont get a list of friends, but a list, which contains other friendlists
    $friendsLists = $facebook->api('/me/friends');

    // Save all Friends and FriendConnections
    foreach ($friendsLists as $friends) {
      foreach ($friends as $friend) {
         // do something with the friend, but you only have id and name
         $id = $friend['id'];
         $name = $friend['name'];
      }
   }

В моем приложении я в основном сохраняю всех друзей в своей базе данных, чтобы у меня не было http-запроса каждый раз, когда я хочу показать всех друзей пользователя.Но теперь я хотел бы обновить Список друзей.Я не хотел бы удалять все Friend-Connections и сохранять их снова и снова.Так кто-нибудь знает об опциях, как просто получить изменения в списке друзей с определенной даты?

1 Ответ

2 голосов
/ 18 декабря 2010

Тогда вам придется проверить, есть ли они в базе данных. Я предлагаю вам получить массив всех идентификаторов пользователей в базе данных, а затем сравнить их с друзьями, которых вы извлекли из API. Если есть новый друг, добавьте его.

$database = new mysqli('Localhost', 'username', 'password', 'db_name');

if($users = $database->query('SELECT id FROM `users`')) {
    while($row = $result->fetch_assoc()) {
        $my_friend[] = $row['id'];
    }
}

$facebook = new Facebook(array(
            'appId' => 'xxxxxxxx',
            'secret' => 'xxxxxxx',
            'cookie' => true,
        ));
// $session is only != null, when you have the session-cookie, that is set by facebook, after the user logs in
$session = $facebook->getSession(); 
// you dont get a list of friends, but a list, which contains other friendlists
$friendsLists = $facebook->api('/me/friends');

// Save all Friends and FriendConnections
foreach ($friendsLists as $friends) {
  foreach ($friends as $friend) {
     // do something with the friend, but you only have id and name
     $id = $friend['id'];
     $name = $friend['name'];

     if(!in_array($id, $my_friends)) {
        // Insert into table
     }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...