2016-02-23 101 views
2

嘗試使用Python訪問LinkedIn Developer API,但在調用linkedin API時出現401錯誤。能否請您協助 -Linkedin 401 Python錯誤

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() 

回答

3

大多數老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只 支持以下用途:

  • 允許成員代表他們的專業身份通過他們的 LinkedIn個人資料使用我們的個人資料API。
  • 允許成員將 認證直接發佈到他們的LinkedIn個人資料上,使用我們的添加到 個人資料工具。
  • 支持成員利用我們的共享API在整個Web上共享專業內容到他們的 LinkedIn網絡。
  • 通過我們的 公司API,使公司能夠將LinkedIn專業內容分享給LinkedIn。

這與您收到的錯誤代碼相一致 - 401 - Unauthorized: Access is denied due to invalid credentials. - 給你不屬於他們的開發計劃,你沒有有效的憑據來訪問它。