【问题标题】:Soundcloud API returns 401 error on server-side Python authenticationSoundcloud API 在服务器端 Python 身份验证中返回 401 错误
【发布时间】:2012-12-18 17:23:11
【问题描述】:

尝试在 Python 中进行身份验证以测试已注册的应用程序,按照“在没有 SoundCloud 连接屏幕的情况下进行身份验证”: 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,我可以在网站上使用相同的凭据登录,并且我在代码中尝试了“用户名”和“用户名@email.com”格式。有什么想法吗?

[编辑:] 作为记录,“用户名”和“用户名@email.com”格式都有效。

【问题讨论】:

  • 尝试将requests 降级到版本0.14.2。我怀疑soundcloud if b0rken for requests 1.0.0 及更高版本。

标签: python linux oauth soundcloud


【解决方案1】:

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

【讨论】:

  • 立即取得全面成功。惊人的。太棒了!
猜你喜欢
  • 1970-01-01
  • 2020-11-26
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
相关资源
最近更新 更多