我是 Python 新手,我想测试 Linkedin API。 我从该网站获得了身份验证代码的示例(使用 oauth2):https://github.com/ozgur/python-linkedin
我猜我的应用程序在 Linkedin 上的配置没有任何问题:
客户ID:XXX
secret 客户:YYY
所有这些框均已选中:r_basicprofile、r_emailaddress、rw_company_admin、w_share
OAuth 2.0 => 授权 URL:http://localhost:8000
这是代码:
#-*- coding: utf-8 -*-
from linkedin import linkedin
API_KEY = 'XXX'
API_SECRET = 'YYY'
RETURN_URL = 'http://localhost:8000'
authentication = linkedin.LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL)
print "authentication.authorization_url : " + authentication.authorization_url
print "authentication.key : " + authentication.key
print "authentication.secret : " + authentication.secret
print "authentication.redirect_uri : " + authentication.redirect_uri
print "authentication.state : " + authentication.state
print authentication.authorization_code
print authentication.token
print authentication._error
application = linkedin.LinkedInApplication(authentication)
结果是:
authentication.authorization_url : https://www.linkedin.com/uas/oauth2/authorization?scope=&state=a2eb48d9b7b5f94a24dfbf36d498ebdc&redirect_uri=http%3A//localho st%3A8000&response_type=code&client_id=XXX
authentication.key : XXX
authentication.secret : YYY
authentication.redirect_uri : http://localhost:8000
authentication.state : a2eb48d9b7b5f94a24dfbf36d498ebdc
None
None
None
我不明白为什么我的授权码是“无”。根据 git hub 链接,redirect_url 应包含 URL + 授权代码。这里我只有 URL,所以无法继续验证过程。
我做了一些研究,但没有找到任何东西。有人知道我的代码或配置有什么问题吗?
谢谢!
最佳答案
好吧,我终于发现问题所在了!
authentication = linkedin.LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL)
这将返回一个 URL(例如: https://www.linkedin.com/uas/oauth2/authorization?scope=r_basicprofile%20r_emailaddress&state=4a8b5b5932f182fff0a1731ebfbb05ef&redirect_uri=http%3A//localhost%3A8000&response_type=code&client_id=XXX )。我必须在浏览器中打开此 URL,才能使用我的 Linkedin 帐户登录。然后我被重定向到这个网址:http://localhost%3A8000/?code=my_code&state=31624da3ad7331c11def407de0a56cc4
my_code 是用于获取 token 的代码。
authentication.authorization_code = 'my_code'
authentication.get_access_token()
获得 token 后,我可以发出一些使用 API 的请求。
希望这有帮助。
关于python - linkedin API 的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35370168/