401客户端错误:未经授权的URL

11

最近我开始使用soundcloud (0.5.0) Python库。

出现了requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.soundcloud.com/oauth2/token

这个问题发生在......

client = soundcloud.Client(client_id='id',
                           client_secret='secret',
                           username='user@mail.com',
                           password='passwd')

我仔细检查了我的凭据,以确保它们不是原因。我试图从不同的IP和不同的机器上获取客户端实例。在一天的某些随机时刻,我可以获得客户端实例,但99.99%的时间我会收到错误。

这个错误意味着我因为某种原因被禁止了吗?


1
一般来说,401表示您未被授权访问特定资源。 - kvk30
1
我明白,但我想不出为什么。 - Alex
1
这意味着您正在发送错误的凭据,请验证您的凭据。 - kvk30
2
在过去的几天里,我已经验证了至少10次。我可以使用相同的凭据通过Web浏览器登录,但无法通过API登录。 - Alex
1
你知道客户端ID和客户端密钥吗?一般来说,客户端密钥就是密码,而客户端ID则是你的本地账户名。 - kvk30
显示剩余5条评论
2个回答

1
这可能会有所帮助,我曾通过从配置文件中读取用户名和密码来解决类似的问题。
尝试:
# config.ini

[my_app]
CLIENT_ID     = enter_your_id
CLIENT_SECRET = enter_your_secret
USERNAME      = enter_username
PASSWORD      = enter_password

安装 Python 3.8 中的 configparser,适用于 Python 2.6+:pip install configparser。 更多详细信息请参见 文档

import configparser

config = configparser.RawConfigParser()
config.read('config.ini')


my_id = config.get('my_app', 'CLIENT_ID')
my_secret = config.get('my_app', 'CLIENT_SECRET')
my_user = config.get('my_app', 'USERNAME')
my_pass = config.get('my_app', 'PASSWORD')


client = soundcloud.Client(client_id=my_id,
                           client_secret=my_secret,
                           username=my_user,
                           password=my_pass)

1
Configparser是标准库的一部分,不需要安装它。 - snakecharmerb
1
是的。此外,这个包是从后来的Python版本中刷新和增强的ConfigParser的回溯版本。要使用回溯版本而不是内置版本,只需将其显式地导入为回溯版本: from backports import configparser - Milovan Tomašević

-1

可能您正在使用第三方应用程序访问您的帐户,如果您正在使用Gmail服务,请考虑允许第三方应用程序访问您的Gmail帐户,您将如何做到这一点:

  • 转到 https://myaccount.google.com/security
  • 使用双步验证并启用它。
  • 创建应用程序密码,选择应用程序>邮件| 选择设备>Windows计算机。
  • 然后使用给定的密码

那应该解决您的问题。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接