मैं लार्वेल में सोशलाइट का उपयोग करके लिंक्डइन के एपीआई को कॉल कर रहा हूं और निम्नलिखित प्रतिक्रिया प्राप्त करता हूं:

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;

लेकिन स्टम्प्ड हूँ!

सभी मदद की बहुत सराहना की जाती है!

1
lawson 16 मई 2018, 19:01

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']);
0
u_mulder 16 मई 2018, 19:07