Soundcloud API在服务器端Python身份验证上返回401错误

时间:2012-12-18 17:23:11

标签: python linux oauth soundcloud

尝试在Python中进行身份验证以测试已注册的应用程序,按照"在没有SoundCloud Connect屏幕的情况下进行身份验证": http://developers.soundcloud.com/docs/api/guide#user-credentials

import soundcloud

# create client object with app and user credentials
client = soundcloud.Client(client_id='YOUR_CLIENT_ID',
                           client_secret='YOUR_CLIENT_SECRET',
                           username='YOUR_USERNAME',
                           password='YOUR_PASSWORD')

password='YOUR_PASSWORD'行会抛出错误:

File "/usr/local/lib/python2.7/dist-packages/soundcloud/client.py", line 41, in __init__
    self._credentials_flow()
File "/usr/local/lib/python2.7/dist-packages/soundcloud/client.py", line 112, in _credentials_flow
    make_request('post', url, options))
File "/usr/local/lib/python2.7/dist-packages/soundcloud/resource.py", line 62, in wrapped_resource
    setattr(result, attr, getattr(response, attr))
AttributeError: 'Response' object has no attribute 'error'

如果我将其包裹在try:中,我会得到:

Error: 401 Client Error: None, Status Code: 401

我已经对client_id和client_secret进行了三重检查,我可以使用网站上相同的凭据登录,并且我已经尝试了两个用户名'和' username@email.com'代码中的格式。有什么想法吗?

[编辑:]为了记录,用户名'和' username@email.com'格式化工作。

1 个答案:

答案 0 :(得分:3)

您必须将requests库降级到版本0.14.2。

soundcloud API python库包装requests.models.Response对象,并且对于版本1.0.0的重构,删除了.error属性。 soundcloud但仍然希望它在那里。

我建议您使用virtualenv来安装库。您可以从该virtualenv手动删除requests库,或使用pip降级它:

pip install -I requests==0.14.2

您可能希望将此问题报告给soundcloud-python code project,以便他们可以修复其setup.py依赖项或修复库以使用requests 1.0.0或更高版本。

相关问题