首页 > 解决方案 > laravel socialite facebook 没有返回正确的头像

问题描述

大家好,我正在使用带有 laravel 的社交名流包通过 facebook 提供商登录用户,除了当我要求提供个人资料头像时,一切都很好。它不会返回用户真实的 facebook 个人资料照片,而是返回您在创建新的 facebook 帐户时获得的默认 facebook 头像。这是返回的默认 Facebook 头像,它不是用户的真实个人资料图片(https://i.stack.imgur.com/l60Hf.png)这是我的代码

   /**
 * Redirect the user to the Facebook authentication page.
 *
 * @return \Illuminate\Http\Response
 */
public function redirectToFacebookProvider()
{
    return Socialite::driver('facebook')->redirect();
}

/**
 * Obtain the user information from Facebook.
 *
 * @return \Illuminate\Http\Response
 */
public function handleFacebookProviderCallback()
{
    $facebookUser = Socialite::driver('facebook')->user();
    $user = User::firstOrCreate([
        'email'=>$facebookUser->getEmail()
    ], [
        'name' => $facebookUser->getName(),
        'email' => $facebookUser->getEmail(),
        'avatar'=>$facebookUser->getAvatar(),
    ]);

    Auth::login($user , false);
    return redirect()->route('user.dashboard');
}

标签: phplaravelfacebook

解决方案


获取 getAvatar() 的 URL 然后在 url &access_token=YOURTOKEN 中包含这个参数


推荐阅读