【问题标题】:Authentification to linkedin API对linkedin API的认证
【发布时间】:2016-05-24 01:11:05
【问题描述】:

我是 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=code&client_id=XXX

authentication.key : XXX

authentication.secret : YYY

authentication.redirect_uri : http://localhost:8000

authentication.state : a2eb48d9b7b5f94a24dfbf36d498ebdc

我不明白为什么我的授权码是无。根据 git hub 链接,redirect_url 应该包含 URL + 授权码。这里我只有URL,所以无法继续认证过程。

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

谢谢!

【问题讨论】:

    标签: python oauth-2.0 linkedin-api


    【解决方案1】:

    嗯,我终于找到了问题所在!

    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 帐户登录。然后我被重定向到这个 URL:http://localhost%3A8000/?code=my_code&state=31624da3ad7331c11def407de0a56cc4

    my_code 是用于获取令牌的代码。

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

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

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多