对linkedin API进行身份验证

时间:2016-02-12 18:56:07

标签: python oauth-2.0 linkedin-api

我是Python新手,我想测试Linkedin API。 我从这个站点得到了一个验证代码示例(使用oauth2):https://github.com/ozgur/python-linkedin

我想在Linkedin上的应用配置没有任何问题:

ID客户端:XXX

秘密客户:YYY

选中所有这些框:r_basicprofile,r_emailaddress,rw_company_admin,w_share

OAuth 2.0 =>授权网址: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 =代码&安培; CLIENT_ID = XXX

     

authentication.key:XXX

     

authentication.secret:YYY

     

authentication.redirect_uri:http://localhost:8000

     

authentication.state:a2eb48d9b7b5f94a24dfbf36d498ebdc

     

     

     

我不明白为什么我的authorization_code为None。根据git hub链接,redirect_url应包含URL +授权代码。这里我只有URL,所以我不能继续验证过程。

我做了一些研究,但我找不到任何东西。有人知道我的代码或配置有什么问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,我终于发现了这个问题!

authentication = linkedin.LinkedInAuthentication(API_KEY, API_SECRET, RETURN_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 是用于获取令牌的代码。

authentication.authorization_code = 'my_code'
authentication.get_access_token()

获得令牌后,我可以请求使用该API。

希望得到这个帮助。