1

I want use spatie to get Google+ avatar, but when I try get it there is an error.

$user = Socialite::driver('google')->user();
$usertest=User::whereEmail($user->getemail())->first();

if(! $usertest){
$usertest=User::create([
    'name'=>$user->name,
    'email'=>$user->email,
    'password'=>bcrypt($user->id)
]);}

$usertest->addMediaFromUrl($user->avatar)->toMediaCollection('avatar');
auth()->loginUsingId($usertest->id);
return redirect('/');

error:

Type error: Argument 1 passed to Spatie\MediaLibrary\FileAdder\FileAdder::processMediaItem() must be an instance of Spatie\MediaLibrary\HasMedia\HasMedia, instance of App\User given,

apokryfos
  • 38,771
  • 9
  • 70
  • 114

1 Answers1

2

It looks like you have not added HasMedia interface and HasMediaTrait to User class:

class User extends Authenticatable implements HasMedia {

    use HasMediaTrait;

    // ...

}
Daniel
  • 2,621
  • 2
  • 18
  • 34