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

标签 python linux oauth soundcloud

按照“在没有 SoundCloud Connect 屏幕的情况下进行身份验证”,尝试在 Python 中进行身份验证以测试已注册的应用程序: 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”和“username@email.com”两种格式。有什么想法吗?

[编辑:] 郑重声明,“用户名”和“username@email.com”格式均有效。

最佳答案

您必须将您的 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 或更新版本。

关于python - Soundcloud API 在服务器端 Python 身份验证上返回 401 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938275/

相关文章:

linux - shell 'SED' - 使用变量

c - 将多个 C 库链接到 C 创建可执行文件

authentication - (GitHub)非网站应用程序的 API OAuth 身份验证?

python - 使用 SVM 预测概率

Python Jython 全局变量使用

php - 为两台远程机器同步两个 mysql 数据库

ios - TWTRLogInButton 不提供 OAuth 流程

oauth - 使用OAuth的Vkontakte API不适用于验证码

Python计数器不识别字典

python - 相当于 python 的 [ :] in c++