Сохранить объект в массиве из ответа api

Я звоню в API LinkedIn с помощью Socialite в laravel и получаю следующий ответ:

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] => 
)

Затем я сохраняю ответы в своей базе данных, но не могу понять, как правильно получить доступ к значениям позиций, publicProfileUrl или сводки. Все остальные работают из коробки со светской львицей со следующим:

        $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();
    }

Я пробовал добавить это:

$publicProfileUrl = array_get($linkedin_user, 'user.publicProfileUrl', null);

После этого:

$user = User::where('provider_id', $linkedin_user->id)->first();

И добавляем это перед сохранением пользователя:

$user->linkedin = $linkedin_user[user]->publicProfileUrl;

Но я в тупике!

Любая помощь очень ценится!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
118
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

AbstractUser, который является родительским для Two\User, имеет метод getRaw (https://github.com/laravel/socialite/blob/3.0/src/AbstractUser.php#L106), который вернет вам простой массив:

$user = $linkedin_user->getRaw();
echo $user['publicProfileUrl'];
print_r($user['positions']);

Спасибо за ваш ответ -

lawson 17.05.2018 10:05

Если ответ поможет - не стесняйтесь принимать. Это повысит ваше репо и поможет другим посетителям SO.

u_mulder 17.05.2018 10:28

Я изо всех сил пытаюсь реализовать это - я хочу создать нового пользователя и сохранить publicProfileUrl, где $ user-> linkedin = ........... как мне это написать?

lawson 17.05.2018 10:47
= $linkedin_user->getRaw()['publicProfileUrl']?
u_mulder 17.05.2018 10:57

ГЕРОЙ. Спасибо! Ответ принят. А как насчет того, хочу ли я получить значение названия компании, которое похоронено в должностях. Как бы вы могли получить к нему доступ, учитывая, что есть два нескольких значения, хранящихся как «имя»?

lawson 17.05.2018 11:04

Другие вопросы по теме