尝试使用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()
答案 0 :(得分:3)
大多数旧的linkedin API,包括您尝试使用的人员API,已被折旧并仅限于预先批准的开发人员 - 您现在需要成为其开发计划的一部分(仅限于他们积极合作的一小部分公司。)
请参阅:https://developer-programs.linkedin.com/documents/people-search-api
People Search API是我们的Vetted API访问计划的一部分。在使用此API之前,您必须在此处申请并获得LinkedIn的批准。
另请参阅:https://developer.linkedin.com/blog/posts/2015/developer-program-changes
从2015年5月12日开始,我们将仅限制开放API 支持以下用途:
- 允许会员通过他们的代表来表示他们的职业身份 LinkedIn个人资料使用我们的个人资料API。
- 允许会员发帖 使用我们的添加到。直接通过他们的LinkedIn个人资料认证 个人资料工具。
- 允许会员分享专业内容 来自整个网络的LinkedIn网络利用我们的Share API。
- 让我们的公司能够与LinkedIn分享专业内容 公司API。
这与您收到的错误代码一致 - 401 - Unauthorized: Access is denied due to invalid credentials.
- 如果您不属于他们的开发者计划,则您没有有效的凭据来访问它。