python - linkedin API 的身份验证

标签 python oauth-2.0 linkedin-api

我是 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/

相关文章:

node.js - LinkedIn API 失败 - Node.js 请求

python - 为我的 Django 项目中的每个应用程序创建自定义 404 错误?

Python 子进程挂起命名管道

java - 仅 Twitter 应用程序身份验证 - 错误代码 86 “This method requires a GET or HEAD”

javascript - 访问被拒绝的人 - Linkedin API Javascript

c# - LinkedIn OAuth 失败并显示 https_required 错误消息

python - Networkx 图在不同平台上的大小不同

python - “ImageDataGenerator”对象没有属性 'image_data_generator'

php - 无法在 Linux 上安装 OAuth

authentication - 为什么 JWT 是无状态认证?