【问题标题】:HTTPError: 401 Client ErrorHTTPError:401 客户端错误
【发布时间】:2012-06-17 17:17:42
【问题描述】:

我正在使用 Python soundcloud API 在我的 Web 应用程序中实现经过身份验证的用户的 soundcloud 视频。我遵循了这些步骤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

我怎样才能让这些东西发挥作用?谁能指导我?谢谢!

【问题讨论】:

  • 我遇到了同样的问题,就我而言,我通过从配置文件中读取数据解决了这个问题。从 Python 3.8 为 Python 2.6+ 安装 configparser:pip install configparser。请参阅伟大的documentation 了解更多详情。

标签: python oauth soundcloud


【解决方案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() 返回一个具有两个属性的 Resource 对象(默认情况下):access_token 和 scope。

确保在保存访问令牌时从 Resource 对象中提取正确的属性:

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

要尝试的另一件事是打印出来自 client.exchange_code 的完整响应:

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

希望对您有所帮助。如果您仍然遇到问题,请告诉我,我将使用更多信息编辑我的答案。

【讨论】:

  • 谢谢@paul 现在正在工作。问题在于 access_token 字段。我不知道那里的范围。
猜你喜欢
  • 2022-10-05
  • 2022-10-25
  • 1970-01-01
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2018-07-07
相关资源
最近更新 更多