Ввод данных 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 может помочь вам:
Помимо получения объема в перенаправлении, вам также нужно передать их в обратный вызов
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 ('пол')
Эти методы могут помочь получить дополнительную информацию из массива пользователей