我按照这个要点https://gist.github.com/danvbe/4476697让 HWIOauthBundle 在我的网站上工作,现在我可以通过 LinkedIn 帐户正常登录并将用户保存到我的本地数据库,所以我很漂亮对此感到高兴。但是,我的下一步是通过 LinkedIn API 检索有关用户的更多信息,现在我只有用户名和格式化名称字段。
我查看了代码,有趣的代码块在 OAuth/ResourceOwner/LinkedinResourceOwner.php 中:
protected $options = array(
'authorization_url' => 'https://www.linkedin.com/uas/oauth/authenticate',
'request_token_url' => 'https://api.linkedin.com/uas/oauth/requestToken',
'access_token_url' => 'https://api.linkedin.com/uas/oauth/accessToken',
'infos_url' => 'http://api.linkedin.com/v1/people/~:(id,formatted-name)',
'realm' => 'http://api.linkedin.com',
);
所以我想我只需要覆盖这个 ResourceOwner 并修改该行
'infos_url' => 'http://api.linkedin.com/v1/people/~:(id,formatted-name)',
通过添加其他字段。我的想法是创建一个扩展原始 LinkedinResourceOwner 类的 MylinkedinResourceOwner 类。这就是我所做的,我在我的 services.yml 中添加了以下几行:
hwi_oauth.resource_owner.mylinkedin.class: Acme\UserBundle\OAuth\ResourceOwner\MylinkedinResourceOwner
hwi_oauth.abstract_resource_owner.mylinkedin:
class: "%hwi_oauth.resource_owner.mylinkedin.class%"
parent: hwi_oauth.abstract_resource_owner.oauth2
当然在 config.yml 中进行了更改:
hwi_oauth:
resource_owners:
linkedin:
type: mylinkedin
client_id: ***
client_secret: ***
scope: r_fullprofile
但不幸的是我有以下错误
InvalidConfigurationException: Invalid configuration for path "hwi_oauth.resource_owners.linkedin.type": Unknown resource owner type "mylinkedin".
所以我的问题是:我是否有权获取 LinkedIn 帐户的其他信息?如果是这样,我该如何解决这个错误?
谢谢 !