Как я могу получить список user_friends от авторизованного пользователя Facebook?


Как я могу получить список user_friends от авторизованного пользователя Facebook?

09.06.2015 03:59:04 Просмотров 66 Источник

Я исследовал возможность просмотра списка друзей для определенного пользователя после того, как пользователь разрешает приложению просматривать его user_friends, но я не совсем понял эту идею, поэтому мне было интересно, есть ли прямой способ просмотреть список без необходимости проходить через API graph и все такое? Я использую пакет социальных сетей Laravel для входа в систему, и он, кажется, работает довольно хорошо и возвращает информацию по умолчанию(адрес электронной почты, Имя, аватар и т. д..) наряду с другими разрешенными вещами, такими как дата рождения, местоположение и родной город. Однако мне трудно просматривать список фотографий, постов, друзей и групп и т. д.. даже если пользователь разрешает мне это делать.

Заранее большое спасибо!

У вопроса есть решение - Посмотреть?

Ответы - Как я могу получить список user_friends от авторизованного пользователя Facebook? / How can I get the list of user_friends from a Facebook authorized user?

Jesús

09.06.2015 04:36:07

Вы просто не можете этого сделать.

Facebook не позволяет вам получить список друзей, а только список друзей, которые уже используют ваше приложение. В официальных документах для API мы можем прочитать: https://developers.facebook.com/docs/graph-api/reference/v2.3/user/friends

Это вернет только тех друзей, которые использовали (через Facebook Login) приложение, сделавшее запрос. Если друг человека отклоняет разрешение user_friends, этот друг не будет отображаться в списке друзей для этого человека.

Более того, вы не можете получить список друзей, использующих Socialite от Laravel, поэтому я бы рекомендовал вам использовать для этого другой пакет Laravel, например этот: https://github.com/SammyK/LaravelFacebookSdk

Ваше здоровье!

jayenne

20.02.2018 12:22:37

вся вышеприведенная информация по-прежнему верна, за исключением того, что вы можете получить список друзей и многое другое с помощью socialite, добавив их в поля и области действия вашего контроллера...

Например:

$socialUser = Socialite::driver('facebook')->fields(['id', 'email', 'cover', 'name', 'first_name', 'last_name', 'age_range', 'link', 'gender', 'locale', 'picture', 'timezone', 'updated_time', 'verified', 'birthday', 'friends', 'relationship_status', 'significant_other','context','taggable_friends'])->scopes(['email','user_birthday','user_friends','user_relationships','user_relationship_details'])->user();
velasco622

12.03.2020 06:55:35

Этот ответ просто расширяет и объясняет, как вы можете использовать то, что сказал @jayenne, чтобы сделать эту работу.

В перенаправление() функция, вы хотели позвонить как:

    public function redirect() {
        return Socialite::driver('facebook')
            ->fields([
                'friends'
            ])
            ->scopes([
                'user_friends'
            ])->redirect();
    }

Выше мы просим Socialite запросить разрешение user_friends и сохранить его в поле под названием friends. Теперь в вашем обратном вызове вы можете получить поле friends внутри SocialiteUser следующим образом:

   public function callback(SocialFacebookAccountService $service) {
        $socialiteUser = Socialite::driver('facebook')
            ->fields(['friends'])
            ->user();

        //Loop through all the facebook friends returned (who are already on your site and friends with the recently registered user)
        foreach($socialiteUser->user['friends']['data'] as $fbFriend) {
            //do something with this facebook friend here
        }
        //Most tutorials log the user in like this; you define the $service and the method
        //You can find a tutorial in the Socialite docs/github repo
        $user = $service->createOrGetUser($socialiteUser);
        auth()->login($user);
        return redirect('/home');
   }
Помочь в развитии проекта:
Закрыть X