我正在尝试使用https://github.com/ozgur/python-linkedin
if __name__ == '__main__':
API_KEY = 'XXXXXXXXXXX'
API_SECRET = 'XXXXXXXXXX'
RETURN_URL = 'http://localhost:8080'
authentication = LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL, PERMISSIONS.enums.values())
print authentication.authorization_url
此代码打印:
https://www.linkedin.com/uas/oauth2/authorization?scope=r_basicprofile%20r_emailaddress%20w_share&state=1e7f21566bdd75cee5d71d0615f338ad&redirect_uri=http%3A//localhost%3A8080&response_type=code&client_id=XXXXXXXXXX
当我点击此链接时,LinkedIn身份验证页面正在打开。验证后,它返回该URL:
http://localhost:8080/?code=CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC&state=f40c8d9ec67df057e72eeb235f4d8e7c
如果我快速复制CCCCCCCC ...代码并在
中使用它application = LinkedInApplication(authentication)
authentication.authorization_code = "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
application = LinkedInApplication(token=authentication.get_access_token())
print application.get_profile()
它会打印我需要的个人资料信息。但是我不想点击URL并将那个CCCCC ...代码复制到我的python代码中。我想以编程方式执行这些操作。我需要获得该authorization_code。我怎么能这样做?
答案 0 :(得分:1)
当我按照我获得的链接时遇到无效的redirect_uri错误,所以我只能帮助你开始。
如果代码在您链接的页面上,您只需HTTP GET页面并提取代码即可。但是,由于您说您必须在浏览器中加载页面,对自己进行身份验证,然后从结果页面中获取代码,因此该过程会更复杂一些。您是否可以在已包含凭据的页面上尝试GET?
import requests
if __name__ == '__main__':
API_KEY = 'XXXXXXXXXXX'
API_SECRET = 'XXXXXXXXXX'
RETURN_URL = 'http://localhost:8080'
authentication = LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL, PERMISSIONS.enums.values())
auth_url = authentication.authorization_url
#Create an HTTP request with your credentials included
response = requests.get(auth_url, auth=requests.auth.HTTPBasicAuth('username', 'password'))
print response
print response.text
这只是为了让你入门。我相信以编程方式验证自己是可能的,但它可能比这个基本方法稍微复杂一些。让我知道这会给你带来什么。