我昨天已经开通了一个关于symfony2中关于hwioauthbundle的问题的主题. Symfony2 HWIOauthBundle响应错误
感谢stloyd的回答,这有助于我弄清楚如何使用bundle来访问linkedin.
我现在正在尝试不仅获得来自linkedin的格式化名称,还获得其他信息,如教育,技能等
我不确定HwioAuth通常是否可以这样做?那是我的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
那是我的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
这是我的服务类提供者:
session = $session; $this->doctrine = $doctrine; } public function loadUserByOAuthUserResponse(UserResponseInterface $response) { //data from LINKEDIN response var_dump($response); exit; } }
如你所见,我给了json我从linkedin获得的东西.Hier很可能是回应,教育领域,技能都是空洞的!
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) { } }
}
在受保护的$ oAuthToken =>是私有$ authenticated => bool(false)的值
我认证了吗?我如何使用r_fullprofile作为Linkedin的范围访问其他字段?
问候