身份验证后如何获取LinkedIn返回URL

时间:2016-03-16 15:56:00

标签: python authentication linkedin urllib

我正在尝试使用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。我怎么能这样做?

1 个答案:

答案 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

这只是为了让你入门。我相信以编程方式验证自己是可能的,但它可能比这个基本方法稍微复杂一些。让我知道这会给你带来什么。