php symfony oauth hwioauthbundle

php - Symfony2 HwioAuth: obteniendo la información completa de linkedin



symfony facebook login (1)

Mira este cliente API de LinkedIn y su primer ejemplo. Traes cosas por

$linkedIn->api(''v1/people/~:(firstName,lastName)'');

Además, echa un vistazo a la documentación de la API . Indica claramente qué campos puedes obtener y cómo.

Ya abrí ayer un tema para mis preguntas sobre hwioauthbundle en symfony2. Error de Symfony2 HWIOauthBundle con respuesta

Gracias a stloyd por su respuesta, esto me ayudó a descubrir cómo usar el paquete para obtener acceso a linkedin.

Ahora estoy tratando de obtener no solo el nombre formateado de linkedin sino también otras informaciones como educaciones, habilidades para

No estoy seguro si esto es generalmente posible con HwioAuth? Ese es mi config.yml

hwi_oauth: firewall_name: main resource_owners: linkedin: type: linkedin client_id: %linkedin_client_id% client_secret: %linkedin_client_secret% scope: r_fullprofile infos_url: ''https://api.linkedin.com/v1/people/~:(id,educations,languages,skills)?format=json'' scope: ''r_fullprofile'' paths: educations: educations languages: languages skills: skills

Ese es mi security.yml:

providers: .... my_custom_hwi_provider: id: linkedin.oauth_user_provider firewalls: main: ... oauth: resource_owners: linkedin: "/login/check-linkedin" login_path: /login failure_path: /login oauth_user_provider: service: linkedin.oauth_user_provider

Este es mi proveedor de clase de servicio:

<?php namespace XXXX/UtilBundle/Util/OAuthProvider; use HWI/Bundle/OAuthBundle/Security/Core/User/OAuthUserProvider; use HWI/Bundle/OAuthBundle/OAuth/Response/UserResponseInterface; class Provider { protected $session, $doctrine; public function __construct($session, $doctrine) { $this->session = $session; $this->doctrine = $doctrine; } public function loadUserByOAuthUserResponse(UserResponseInterface $response) { //data from LINKEDIN response var_dump($response); exit; } }

Como ves, le doy al json lo que recibo de linkedin. ¡Hier es probablemente la respuesta y los campos de educación, habilidades están vacías!

class HWI/Bundle/OAuthBundle/OAuth/Response/PathUserResponse#694 (4) { protected $paths => array(8) { ''identifier'' => string(2) "id" ''nickname'' => string(13) "formattedName" ''realname'' => string(13) "formattedName" ''email'' => string(12) "emailAddress" ''profilepicture'' => string(10) "pictureUrl" ''educations'' => string(10) "educations" ''languages'' => string(9) "languages" ''skills'' => string(6) "skills" } protected $response => array(1) { ''id'' => string(10) "XYXYXYXYXYXYXY" } protected $resourceOwner => class HWI/Bundle/OAuthBundle/OAuth/ResourceOwner/LinkedinResourceOwner#699 (8) { protected $options => array(8) { ''authorization_url'' => string(49) "https://www.linkedin.com/uas/oauth2/authorization" ''access_token_url'' => string(47) "https://www.linkedin.com/uas/oauth2/accessToken" ''infos_url'' => string(81) "https://api.linkedin.com/v1/people/~:(id,educations,languages,skills)?format=json" ''csrf'' => bool(true) ''client_id'' => string(12) "XYXYXYXYXYXYXY" ''client_secret'' => string(16) "XYXYXYXYXYXYXY" ''scope'' => string(29) "r_fullprofile" ''options'' => array(0) { ... } } protected $paths => array(8) { ''identifier'' => string(2) "id" ''nickname'' => string(13) "formattedName" ''realname'' => string(13) "formattedName" ''email'' => string(12) "emailAddress" ''profilepicture'' => string(10) "pictureUrl" ''educations'' => string(10) "educations" ''languages'' => string(9) "languages" ''skills'' => string(6) "skills" } protected $defaultOptions => array(6) { ''client_id'' => NULL ''client_secret'' => NULL ''infos_url'' => NULL ''user_response_class'' => string(54) "HWI/Bundle/OAuthBundle/OAuth/Response/PathUserResponse" ''scope'' => NULL ''csrf'' => bool(false) } protected $httpClient => class Buzz/Client/Curl#700 (7) { private $lastCurl => resource(286) of type (curl) protected $options => array(2) { ... } protected $ignoreErrors => bool(true) protected $maxRedirects => int(5) protected $timeout => int(5) protected $verifyPeer => bool(true) protected $proxy => NULL } protected $name => string(8) "linkedin" protected $state => NULL protected $storage => class HWI/Bundle/OAuthBundle/OAuth/RequestDataStorage/SessionStorage#701 (1) { private $session => class Symfony/Component/HttpFoundation/Session/Session#220 (3) { ... } } public $httpUtils => class Symfony/Component/Security/Http/HttpUtils#230 (2) { private $urlGenerator => class Symfony/Bundle/FrameworkBundle/Routing/Router#233 (9) { ... } private $urlMatcher => class Symfony/Bundle/FrameworkBundle/Routing/Router#233 (9) { ... } } } protected $oAuthToken => class HWI/Bundle/OAuthBundle/Security/Core/Authentication/Token/OAuthToken#696 (11) { private $accessToken => string(179) "XYXYXYXYXYXYXY" private $rawToken => array(2) { ''expires_in'' => int(5183807) ''access_token'' => string(179) "XYXYXYXYXYXYXYXY" } private $refreshToken => NULL private $expiresIn => int(5183807) private $createdAt => int(1378302276) private $tokenSecret => NULL private $resourceOwnerName => NULL private $user => NULL private $roles => array(0) { } private $authenticated => bool(false) private $attributes => array(0) { } }

}

En protected $ oAuthToken => es el valor private $ authenticated => bool (false)

¿Estoy autenticado? ¿Y cómo puedo acceder a otros campos con r_fullprofile como alcance de Linkedin?

Saludos