【问题标题】:How to get access token and access secret after getting client id and and client secret on LinkedIn using python?使用python在LinkedIn上获取客户端ID和客户端密码后如何获取访问令牌和访问密码?
【发布时间】:2017-05-01 07:38:45
【问题描述】:

我在linkedIn 中创建了一个API 应用程序,所以我得到了client-id 和client-secret 密钥。但是,我无法从 LinkedIn 获取访问令牌和密钥。

我已经使用下面的 python 代码来完成这项工作。一切正常,我得到了“authorization_url”,但是当我将它粘贴到浏览器中时出现错误:“redirect_uri 无效。此值必须与使用 API 密钥注册的 URL 匹配。”

*** 请注意,目前我的应用程序中的“授权重定向 URL”部分是空白的,我的问题是我应该放什么?我知道它应该与我在下面的代码中提供的 OAuth2Session 函数(而不是“arbitrary_url”,例如“http://127.0.0.1”)相同。但是不知道从哪里得到这个网址?

Snapshot of my authorization_url page

*** 逐步澄清我到底在做什么: 1) 在我的 API 应用程序的“授权重定向 URL”文本框中添加一个 URL,然后单击“添加”。 2)然后我用完全相同的url替换我的代码中的“arbitrary_url”。 3)继续运行我的代码以获取“redirect_response”。 4)在我的浏览器中尝试“redirect_response”;到目前为止,我总是收到错误:“无效的 redirect_uri。此值必须与使用 API Key 注册的 URL 匹配。”

不胜感激。

# Import packages
from requests_oauthlib import OAuth2Session
from requests_oauthlib.compliance_fixes import linkedin_compliance_fix

# Credentials you get from registering a new application
client_id = '<my client id>'; client_secret = '<my client secret>'

# Redirect user to LinkedIn for authorization
linkedin = OAuth2Session(client_id, redirect_uri='<arbitrary_url>')
linkedin = linkedin_compliance_fix(linkedin)
authorization_url, state = linkedin.authorization_url('https://www.linkedin.com/uas/oauth2/authorization')
print(authorization_url)

最后我在第一阶段弄错了!我缺少的是我需要在我的应用程序中单击“添加”后单击“更新”才能实际执行该添加! 但是,仍然没有获得客户端 ID 和客户端密码,因为我在授权后收到错误消息!

【问题讨论】:

  • 您已将redirect_uri='http://127.0.0.1' 设置为重定向网址。当您创建 API 应用程序时,您提供的重定向 url 是什么?您应该在此处提供相同的 url 以获得正确的 auth_url。
  • 非常感谢@Venkatesh 抽出宝贵时间!如前所述,我只在linkedin.com/developer 中的应用程序中获得了客户端ID 和客户端密钥,并且不知道要在我的应用程序的“授权重定向URL”部分添加什么。我可以在文档中看到它应该采用这种格式:“example.com/auth/linkedin”。关于我应该在那里添加什么网址的任何想法或建议?我怎样才能得到那个网址?
  • 一般您可以添加任何内容,例如:https://www.example.com/auth/linkedin。如果您不知道该给什么,请提供一些有用的东西,例如http://localhost:8080。在那里运行一些东西,以便您知道在身份验证后是否能够成功到达那里。在您的 python 代码中,您应该具有相同的值。您可以在任何 Oauth 应用程序中拥有多个重定向网址。
  • 再次感谢。我已经尝试了您提供的示例以及第三个示例:“localhost:8080/auth/linkedin”。他们都没有工作,我仍然收到错误:“无效的redirect_uri。此值必须与使用API​​ Key注册的URL匹配”。
  • 您能否分享您的linkedIn 应用程序配置的重定向网址截图,如link 所述?我相信您提供的重定向 URL 与应用程序中配置的相同。另外,请通过删除 client_id 和 client_secret 粘贴您的最终 authorization_url

标签: api oauth authorization python-3.5 linkedin-api


【解决方案1】:

请参考样品https://github.com/ozgur/python-linkedin。我看到您在代码中缺少匹配 redirect_url 。更多示例和解释在这里http://requests-oauthlib.readthedocs.io/en/latest/examples/linkedin.html

【讨论】:

  • 非常感谢@VenkateshMarepalli!最后我通过了这个阶段但是还没有得到访问令牌和访问密钥。现在我被提示输入我的个人linkedin用户名和密码。但是,当我放在那里并单击“允许访问”时,出现错误。无法访问此站点:网页example.com/auth/…!可能暂时关闭,或者它可能已永久移动到新的网址。 ERR_INVALID_RESPONSE。您对此有何建议?
  • 我猜你给了一个虚拟的重定向 url,用一个有效的 url 测试它。
  • 不确定我是否完全理解!我按照你的建议给了this redirect url。如果这是一个虚拟的,我应该把什么作为 working url 放在那里?
  • 重定向到有效的东西。 localhost:8080 什么的。 www.google.com,任何可行的东西。
猜你喜欢
  • 1970-01-01
  • 2021-08-31
  • 2020-09-15
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多