0

Python soundcloud API を使用して、認証済みユーザーの soundcloud ビデオを Web アプリケーションに実装しています。この手順http://developers.soundcloud.com/docs#authenticationに従いました。初めてすべてが機能しました。最初からもう一度試してみたところ、このコマンドでHTTPError: 401 Client Errorが発生しましたcurrent_user = client.get('/me')

私が行った手順を示すことができます。これを確認してください 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

これらを機能させるにはどうすればよいですか?誰かが私を導くことができますか?ありがとう!

4

1 に答える 1

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()。しかし、そうすることは害にはならないはずです。
  2. exchange_token()2つのプロパティ(デフォルト)を持つResourceオブジェクトを返します:access_tokenscope

アクセストークンを保存するときは、Resourceオブジェクトから適切なプロパティを抽出していることを確認してください。

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

もう1つ試してみるのは、client.exchange_codeからの完全な応答を出力することです。

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

お役に立てば幸いです。それでも問題が発生する場合はお知らせください。回答を編集して詳細をお知らせします。

于 2012-06-17T22:09:39.557 に答える