gpt4 book ai didi

php - Laravel Socialite 名字和姓氏

转载 作者:可可西里 更新时间:2023-11-01 13:36:15 27 4
gpt4 key购买 nike

我正在使用 Laravel 的 Socialite 向应用程序添加社交身份验证。我可以检索全名,但不能分别检索名字和姓氏。回调发生后,Socialite 正在处理它,成功检索到用户。如果我要转储我从 $user = this->social->driver('facebook')->user(); 返回的用户,我得到以下信息:

object(Laravel\Socialite\Two\User)#459 (8) {
["token" ]=> string(209) "{token}"
["id"] => string(17) "{socialID}"
["nickname"] => NULL
["name"] => string(14) "{Full Name}"
["email"] => string(19) "{Email address}"
["avatar"] => string(69) "https://graph.facebook.com/v2.4/{socialID}/picture?type=normal"
["user"] => array(6) {
["first_name"] => string(6) "{First name}"
["last_name"] => string(7) "{Last mame}"
["email"] => string(19) "{Email address}"
["gender"] => string(4) "male"
["verified"] => bool(true)
["id"] => string(17) "{socialID}"
}
["avatar_original"] => string(68) "https://graph.facebook.com/v2.4/{socialID}/picture?width=1920"

我可以通过 $user->name$user->email 获取全名或电子邮件,但是,我无法获取单独的名字和姓氏。我尝试了 $user->first_name 并尝试转储 $user->user 数组,但我看到的只是未定义的属性错误。

我不想做一些奇怪的事情,比如当单独的名字和姓氏明显存在时从全名中提取它,因为当存在中间名时它会变得难看。

我用谷歌搜索了一下,奇怪的是,没有人遇到过这个问题。我是否遗漏了 the docs 中的内容? ?非常感谢任何有关如何从 user 数组中检索名字和姓氏的建议。

最佳答案

我发现有时用户对象不会包含名字和姓氏,除非您指定需要这些字段。

//get the driver and set desired fields
$driver = Socialite::driver('facebook')
->fields([
'name',
'first_name',
'last_name',
'email',
'gender',
'verified'
]);
// retrieve the user
$user = $driver->user();

然后你可以像这样得到名字和姓氏

$user->user['first_name'] and $user->user['last_name']

其他你可以要求的东西:

https://developers.facebook.com/docs/graph-api/reference/user/

对于谷歌加:

$user->firstname = $user->user['name']['givenName'];
$user->lastname = $user->user['name']['familyName'];

关于php - Laravel Socialite 名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32407604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com