如何在使用python在LinkedIn上获取客户端ID和客户端密钥后获取访问令牌和访问权限?

时间:2017-05-01 07:38:45

标签: api oauth authorization python-3.5 linkedin-api

我在linkedIn中创建了一个API应用程序,因此我获得了客户端ID和客户端密钥。但是我无法从LinkedIn获得访问令牌和密钥。

我使用下面的python代码来完成这项工作。一切正常,我得到'authorization_url',但是当我将它粘贴到浏览器中时,我收到错误:“redirect_uri无效。此值必须与使用API​​密钥注册的URL匹配。”

***请注意,目前我的申请中的“授权重定向网址”部分是空白的,我的问题是我应该放在那里的?我理解它应该与我在下面的代码中提供的OAuth2Session函数(而不是“http://127.0.0.1”中的“arbitrary_url”)相同。但是不知道从哪里得到这个网址?

Snapshot of my authorization_url page

***澄清我一步一步做的事情: 1)在我的API应用程序的“授权重定向URL”文本框中添加一个URL,然后单击“添加”。 2)然后我用我的代码中的“arbitrary_url”替换完全相同的url。 3)继续运行我的代码以获得“redirect_response”。 4)在我的浏览器中尝试“redirect_response”;到目前为止,我总是得到错误:“redirect_uri无效。此值必须与使用API​​密钥注册的URL匹配。”

非常感谢您的帮助。

# Import packages
from requests_oauthlib import OAuth2Session
from requests_oauthlib.compliance_fixes import linkedin_compliance_fix

# Credentials you get from registering a new application
client_id = '<my client id>'; client_secret = '<my client secret>'

# Redirect user to LinkedIn for authorization
linkedin = OAuth2Session(client_id, redirect_uri='<arbitrary_url>')
linkedin = linkedin_compliance_fix(linkedin)
authorization_url, state = linkedin.authorization_url('https://www.linkedin.com/uas/oauth2/authorization')
print(authorization_url)

最后我在第一阶段犯了错误!我缺少的是在我的应用程序中单击“添加”后我需要点击“更新”以实际执行添加! 然而,仍然没有得到客户端ID和客户端密码,因为我在授权后收到错误!

1 个答案:

答案 0 :(得分:0)

请参阅样本https://github.com/ozgur/python-linkedin。我发现您缺少匹配代码中的redirect_url。这里有更多样本和解释http://requests-oauthlib.readthedocs.io/en/latest/examples/linkedin.html