3

尝试使用 Python 访问 LinkedIn Developer API,但在调用 linkedin API 时出现 401 错误。你能帮忙吗-

Traceback (most recent call last):
  File "user_request.py", line 33, in <module>
    print app.get_profile()
  File "/Users/bchawla/anaconda/lib/python2.7/site-packages/linkedin/linkedin.py", line 179, in get_profile
    raise_for_error(response)
  File "/Users/bchawla/anaconda/lib/python2.7/site-packages/linkedin/utils.py", line 63, in raise_for_error
    raise LinkedInError(message)
linkedin.exceptions.LinkedInError: 401 Client Error: Unauthorized for url: https://api.linkedin.com/v1/people/~: Unknown Error

详细代码如下 -

import oauth2 as oauth
import urlparse
from linkedin import linkedin

consumer_key           = "{Key}"
consumer_secret        = "{Secret}"
consumer = oauth.Consumer(consumer_key, consumer_secret)
client = oauth.Client(consumer)

request_token_url      = 'https://api.linkedin.com/uas/oauth/requestToken'
resp, content = client.request(request_token_url, "POST")
if resp['status'] != '200':
    raise Exception("Invalid response %s." % resp['status'])

print content

request_token = dict(urlparse.parse_qsl(content))

print "    - oauth_token        = %s" % request_token['oauth_token']
print "    - oauth_token_secret = %s" % request_token['oauth_token_secret']


auth = linkedin.LinkedInDeveloperAuthentication(consumer_key, consumer_secret,
request_token['oauth_token'], request_token['oauth_token_secret'], '',
permissions=linkedin.PERMISSIONS.enums.values())

print linkedin.PERMISSIONS.enums.values()

app = linkedin.LinkedInApplication(auth)

print app.get_profile()
4

1 回答 1

4

大多数旧的linkedin API,包括您尝试使用的人员API,已被贬低并仅限于预先批准的开发人员 - 您现在需要成为他们开发计划的一部分(仅限于非常小的一组与他们积极合作的公司)。

请参阅:https ://developer-programs.linkedin.com/documents/people-search-api

人物搜索 API 是我们经过审查的 API 访问计划的一部分。在使用此 API 之前,您必须在此处申请并获得 LinkedIn 的批准。

另请参阅: https ://developer.linkedin.com/blog/posts/2015/developer-program-changes

从 2015 年 5 月 12 日开始,我们将限制开放 API 仅支持以下用途:

  • 允许会员使用我们的个人资料 API 通过他们的 LinkedIn 个人资料来代表他们的专业身份。
  • 使会员能够使用我们的添加到个人资料工具将认证直接发布到他们的 LinkedIn 个人资料中。
  • 使会员能够利用我们的 Share API 从整个 Web 将专业内容分享到他们的 LinkedIn 网络。
  • 使公司能够使用我们的公司 API 将专业内容分享到 LinkedIn。

这与您收到的错误代码一致401 - Unauthorized: Access is denied due to invalid credentials.- 鉴于您不是他们的开发人员计划的一部分,您没有有效的凭据来访问它。

于 2016-02-23T04:26:04.613 回答