Ввод данных Facebook (пол, дата рождения, адрес и биография) в базу данных с помощью Laravel Socialite

Я создал полный код, который позволяет входить в Facebook, получая имя, электронную почту и аватар пользователя в базе данных с помощью Laravel Socialite.

Я сделал это, написав это:

$user = User::create([
                'email' => $providerUser->getEmail(),
                'name' => $providerUser->getName(),
                'avatar' => $providerUser->getAvatar(),
                'password' => md5(rand(1,10000)),
            ]);

Но для того, чтобы поместить Gender, BirthDate и Address в базу данных, я попробовал это.

$user = User::create([
                'email' => $providerUser->getEmail(),
                'name' => $providerUser->getName(),
                'avatar' => $providerUser->getAvatar(),
                'gender' => $providerUser->getGender(),
                'bio' => $providerUser->getBio(),
                'password' => md5(rand(1,10000)),
            ]);

Но нет таких функций, как getGender() или же getBio(), Ты знаешь, кто они?

Я также попросил необходимые разрешения для драйвера Facebook в SocialController.php

public function redirect()
  {
      return Socialite::driver('facebook')->fields([
        'first_name', 'last_name', 'email', 'gender', 'birthday'
        ])->scopes([
            'email', 'user_birthday'
        ])->redirect();
  }

Все необходимые материалы, такие как базы данных таблиц, миграции, модели и рабочий проект без Gender и Bio готовы. Но мне нужно добавить больше информации в базу данных. Как я могу это сделать?

Я уже ищу такие вопросы в Stackru, но не нашел удовлетворительного ответа. Я надеюсь, что кто-то ответит на это.

Заранее спасибо.

1 ответ

Решение

У провайдера социальных сетей по умолчанию для Facebook нет метода получения пола и биографии.

Для получения дополнительной информации, вы можете проверить доступные методы здесь:

https://github.com/laravel/socialite/blob/3.0/src/Contracts/User.php https://github.com/laravel/socialite/blob/3.0/src/AbstractUser.php

Этот Stackru может помочь вам:

Как получить информацию о полу и религии на день рождения, используя социальные сети laravel, внедряя Facebook Api

Помимо получения объема в перенаправлении, вам также нужно передать их в обратный вызов

 public function handleFacebookCallback()
{
    $facebook_user = Socialite::driver('facebook')->fields([
        'first_name', 'last_name', 'email', 'gender', 'birthday'
    ])->user();
}

Проверьте доступные вспомогательные методы

https://github.com/laravel/socialite/blob/3.0/src/AbstractUser.php

  • offsetExists ('пол')
  • offsetGet ('пол')

Эти методы могут помочь получить дополнительную информацию из массива пользователей

Другие вопросы по тегам