我在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和客户端密码,因为我在授权后收到错误!
答案 0 :(得分:0)
请参阅样本https://github.com/ozgur/python-linkedin。我发现您缺少匹配代码中的redirect_url。这里有更多样本和解释http://requests-oauthlib.readthedocs.io/en/latest/examples/linkedin.html