2012-06-17 162 views
0

我正在使用Python soundcloud API在我的web應用程序中實現經過身份驗證的用戶的soundcloud視頻。我按照這個步驟http://developers.soundcloud.com/docs#authentication,我第一次得到一切工作。我剛剛從第一次嘗試那些東西再一次,現在我得到HTTPError:401客戶端錯誤在這個命令current_user = client.get('/me')HTTPError:401客戶端錯誤

我可以證明我做的步驟。請檢查該https://gist.github.com/2945075

我得到這個錯誤:

Traceback (most recent call last): 
File "<console>", line 1, in <module> 
File "/usr/local/lib/python2.7/dist-packages/soundcloud-0.3-py2.7.egg/soundcloud/client.py", line 129, in _request 
return wrapped_resource(make_request(method, url, kwargs)) 
File "/usr/local/lib/python2.7/dist-packages/soundcloud-0.3-py2.7.egg/soundcloud/request.py", line 180, in make_request 
result.raise_for_status() 
File "/usr/local/lib/python2.7/dist-packages/requests-0.10.1-py2.7.egg/requests/models.py", line 799, in raise_for_status 
raise HTTPError('%s Client Error' % self.status_code) 
HTTPError: 401 Client Error 

我怎樣才能讓這些東西工作?任何人都可以引導我?謝謝!

回答

1

您的代碼看起來正確。只是爲了完整性檢查,這裏是我做了什麼:

import soundcloud 

client = soundcloud.Client(client_id='MY_CLIENT_ID', 
          client_secret='MY_CLIENT_SECRET', 
          redirect_uri='MY_REDIRECT_URI') 
print client.authorize_url() 

# visit authorization code in browser, grant access and copy and paste "code" param 

code = 'MY_CODE' 
access_token = client.exchange_token(code) 

user = client.get('/me') 
print user.username 

# prints 'Paul Osman' 

有幾件事情要注意,可能會絆倒您:

  1. 您不必重新創建客戶端實例調用exchange_token()後。這樣做不應該傷害。 (默認):access_tokenscope

確保當你保存你是從資源對象提取正確的屬性訪問令牌:

access_token = client.exchange_token('YOUR_CODE') 
token = access_token.access_token 

另一件事是嘗試打印出從客戶的充分反應。 exchange_code:

access_token = client.exchange_token('YOUR_CODE') 
print access_token.fields() 

希望有所幫助。如果您仍然遇到問題,請告知我,我會用更多信息編輯我的答案。

+0

謝謝@paul現在正在工作。問題在於access_token字段。我不知道那裏的範圍。 – rnk