I'm making a call to LinkedIn's API using socialite in laravel and get the following response:
Laravel\Socialite\Two\User Object
(
[token] =>
[refreshToken] =>
[expiresIn] =>
[id] =>
[nickname] =>
[name] =>
[email] => l
[avatar] =>
[user] => Array
(
[emailAddress] =>
[firstName] =>
[formattedName] =>
[headline] =>
[id] =>
[industry] =>
[lastName] =>
[location] => Array
(
[country] =>
(
[code] =>
)
[name] =>
)
[pictureUrl] =>
[positions] => Array
(
[_total] => 1
[values] => Array
(
[0] => Array
(
[company] => Array
(
[name] =>
)
[id] =>
[isCurrent] =>
[location] => Array
(
[country] => Array
(
[code] =>
[name] =>
)
[name] =>
)
[startDate] => Array
(
[month] =>
[year] =>
)
[summary] =>
[title] =>
)
)
)
[publicProfileUrl] =>
[summary] =>
[avatar_original] =>
)
I'm then saving the responses to my database but can't work out how to properly access the values for positions, publicProfileUrl or summary. All others work out of the box with socialite with the following:
$user = User::where('provider_id', $linkedin_user->id)->first();
if (!$user){
$user = new User;
$user->name = $linkedin_user->getName();
$user->email = $linkedin_user->getEmail();
$user->picture = $linkedin_user->getAvatar();
$user->provider_id = $linkedin_user->getId();
$user->access_token = $linkedin_user->token;
$user->save();
}
I've tried adding this:
$publicProfileUrl = array_get($linkedin_user, 'user.publicProfileUrl', null);
After this:
$user = User::where('provider_id', $linkedin_user->id)->first();
And adding this before saving the user:
$user->linkedin = $linkedin_user[user]->publicProfileUrl;
But am stumped!
All help is greatly appreciated!