使用 Laravel 社交名流将 Facebook 数据(性别、出生日期、地址和简历)输入数据库
Input Facebook Data (Gender, Birthdate, Address and Bio) into database with Laravel Socialite
我已经创建了一个完整的代码,它允许通过使用 Laravel Socialite 在数据库中获取用户的姓名、电子邮件和头像来登录 Facebook。
我是这样写的:
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
'avatar' => $providerUser->getAvatar(),
'password' => md5(rand(1,10000)),
]);
但是为了将性别、出生日期和地址放入数据库,我尝试了这个。
$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()
等功能。你知道它们是什么吗?
我还在 SocialController.php
中请求了对 Facebook Driver 的必要权限
public function redirect()
{
return Socialite::driver('facebook')->fields([
'first_name', 'last_name', 'email', 'gender', 'birthday'
])->scopes([
'email', 'user_birthday'
])->redirect();
}
所有必要的东西,如数据库表、迁移、模型和一个没有性别和生物的工作项目都已准备就绪。但我需要在数据库中添加更多信息。我该怎么做?
我已经在 Whosebug 上搜索过此类问题,但没有找到满意的答案。我希望有人回答这个问题。
提前致谢。
Facebook 的默认社交名流提供程序没有获取性别和简历的方法。
有关更多信息,您可以在此处查看可用方法:
https://github.com/laravel/socialite/blob/3.0/src/Contracts/User.php
https://github.com/laravel/socialite/blob/3.0/src/AbstractUser.php
这个 Whosebug 可能对您有所帮助:
除了在重定向中获取范围外,您还需要在回调中传递它们
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('gender')
- offsetGet('gender')
这些方法可以帮助从用户数组中获取额外信息
我已经创建了一个完整的代码,它允许通过使用 Laravel Socialite 在数据库中获取用户的姓名、电子邮件和头像来登录 Facebook。
我是这样写的:
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
'avatar' => $providerUser->getAvatar(),
'password' => md5(rand(1,10000)),
]);
但是为了将性别、出生日期和地址放入数据库,我尝试了这个。
$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()
等功能。你知道它们是什么吗?
我还在 SocialController.php
public function redirect()
{
return Socialite::driver('facebook')->fields([
'first_name', 'last_name', 'email', 'gender', 'birthday'
])->scopes([
'email', 'user_birthday'
])->redirect();
}
所有必要的东西,如数据库表、迁移、模型和一个没有性别和生物的工作项目都已准备就绪。但我需要在数据库中添加更多信息。我该怎么做?
我已经在 Whosebug 上搜索过此类问题,但没有找到满意的答案。我希望有人回答这个问题。
提前致谢。
Facebook 的默认社交名流提供程序没有获取性别和简历的方法。
有关更多信息,您可以在此处查看可用方法:
https://github.com/laravel/socialite/blob/3.0/src/Contracts/User.php https://github.com/laravel/socialite/blob/3.0/src/AbstractUser.php
这个 Whosebug 可能对您有所帮助:
除了在重定向中获取范围外,您还需要在回调中传递它们
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('gender')
- offsetGet('gender')
这些方法可以帮助从用户数组中获取额外信息