Laravel socialite: 总是抓取默认头像
Laravel socialite: always grab default avatar
我允许用户使用 Scialite 注册(仍然在 Laravel homestead 本地工作并启用 openSSL)。它与 FB 一起工作正常,除了头像它总是获得默认图像。我正在使用创建该应用程序的同一个 FB 帐户进行测试(FB 应用程序处于开发模式)
代码
public function handleProviderCallback($provider)
{
$userSocial = Socialite::driver($provider)->user();
$users = User::where(['email' => $userSocial->getEmail()])->first();
if($users){
Auth::login($users);
return redirect('/');
}else{
$avatar_file_name = 'test';
if(!empty($userSocial->getAvatar()) && $userSocial->getAvatar()!='' && $userSocial->getAvatar() != null)
{
$fileContents = file_get_contents($userSocial->getAvatar());
File::put(public_path() . '/uploads/' . $userSocial->getId() . ".jpg", $fileContents);
$avatar_file_name = $userSocial->getId() . ".jpg";
}
$user = User::create([
'name' => $userSocial->getName(),
'email' => $userSocial->getEmail(),
'avatar' => $avatar_file_name,
'provider_id' => $userSocial->getId(),
'provider' => $provider,
]);
Auth::login($user, true);
return redirect()->route('home');
}
}
当我 dd($userSocial->getAvatar())
并复制 URL 时,它会打开默认头像(上图),这是为什么?有什么我必须做的FB App或登录代码才能获得用户的真实头像吗?
我现在遇到了这个问题。大约一个月前,社会名流头像检索工作正常。但是前几天看的时候坏了。所以当前的解决方案只是附加 access_token 来检索如下所示的图像。
https://graph.facebook.com/v3.3/[facebook_user_id]/picture?type=normal&access_token=[fbtoken]
如果您找到更简单的解决方案,请告诉我。
结果是:
将 access_token 附加到查询
像这样:
$social = Socialite::driver('facebook')->user();
$avatar = $social->avatar_original . "&access_token={$social->token}";
$avatar
变量将包含个人资料图片的正确 url。
我允许用户使用 Scialite 注册(仍然在 Laravel homestead 本地工作并启用 openSSL)。它与 FB 一起工作正常,除了头像它总是获得默认图像。我正在使用创建该应用程序的同一个 FB 帐户进行测试(FB 应用程序处于开发模式)
代码
public function handleProviderCallback($provider)
{
$userSocial = Socialite::driver($provider)->user();
$users = User::where(['email' => $userSocial->getEmail()])->first();
if($users){
Auth::login($users);
return redirect('/');
}else{
$avatar_file_name = 'test';
if(!empty($userSocial->getAvatar()) && $userSocial->getAvatar()!='' && $userSocial->getAvatar() != null)
{
$fileContents = file_get_contents($userSocial->getAvatar());
File::put(public_path() . '/uploads/' . $userSocial->getId() . ".jpg", $fileContents);
$avatar_file_name = $userSocial->getId() . ".jpg";
}
$user = User::create([
'name' => $userSocial->getName(),
'email' => $userSocial->getEmail(),
'avatar' => $avatar_file_name,
'provider_id' => $userSocial->getId(),
'provider' => $provider,
]);
Auth::login($user, true);
return redirect()->route('home');
}
}
当我 dd($userSocial->getAvatar())
并复制 URL 时,它会打开默认头像(上图),这是为什么?有什么我必须做的FB App或登录代码才能获得用户的真实头像吗?
我现在遇到了这个问题。大约一个月前,社会名流头像检索工作正常。但是前几天看的时候坏了。所以当前的解决方案只是附加 access_token 来检索如下所示的图像。
https://graph.facebook.com/v3.3/[facebook_user_id]/picture?type=normal&access_token=[fbtoken]
如果您找到更简单的解决方案,请告诉我。
结果是:
将 access_token 附加到查询
像这样:
$social = Socialite::driver('facebook')->user();
$avatar = $social->avatar_original . "&access_token={$social->token}";
$avatar
变量将包含个人资料图片的正确 url。