Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python HTTPError:401客户端错误_Python_Oauth_Soundcloud - Fatal编程技术网

Python HTTPError:401客户端错误

Python HTTPError:401客户端错误,python,oauth,soundcloud,Python,Oauth,Soundcloud,我正在使用Python soundcloud API在我的web应用程序中实现经过身份验证的用户的soundcloud视频。我按照这个步骤,第一次让一切正常工作。我刚从第一次尝试了这些东西,现在我在这个命令上得到了HTTPError:401 Client Errorcurrent\u user=Client.get('/me') 我可以展示我所做的步骤。请检查这个 我得到了这个错误: Traceback (most recent call last): File "<console>

我正在使用Python soundcloud API在我的web应用程序中实现经过身份验证的用户的soundcloud视频。我按照这个步骤,第一次让一切正常工作。我刚从第一次尝试了这些东西,现在我在这个命令上得到了HTTPError:401 Client Error
current\u user=Client.get('/me')

我可以展示我所做的步骤。请检查这个

我得到了这个错误:

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
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/dist-packages/soundcloud-0.3-py2.7.egg/soundcloud/client.py”,请求中第129行
返回包装的资源(发出请求(方法、url、kwargs))
文件“/usr/local/lib/python2.7/dist packages/soundcloud-0.3-py2.7.egg/soundcloud/request.py”,make_request中的第180行
结果。为_状态()提高_
文件“/usr/local/lib/python2.7/dist packages/requests-0.10.1-py2.7.egg/requests/models.py”,第799行,处于raise_for_状态
引发HTTPError(“%s”客户端错误“%self.status\u代码)
HTTPError:401客户端错误

我怎样才能使这些东西发挥作用?有人能指引我吗?谢谢

您的代码看起来是正确的。为了检查我的精神是否正常,以下是我所做的:

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'
需要注意的几件事可能会让你绊倒:

  • 调用
    exchange\u token()
    后,不必重新创建客户端实例。不过这样做应该不会有什么坏处
  • exchange\u-token()
    返回具有两个属性的资源对象(默认情况下):
    access\u-token
    scope
  • 在保存访问令牌时,请确保正在从资源对象提取正确的属性:

    access_token = client.exchange_token('YOUR_CODE')
    token = access_token.access_token
    
    另一种尝试是打印client.exchange\u代码的完整响应:

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

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

    谢谢@paul,现在开始工作了。问题在于访问令牌字段。我不知道那里的范围。我有同样的问题,在我的例子中,我通过读取配置文件中的数据来解决它。从Python3.8安装Python2.6+:
    pip安装configparser
    。有关更多详细信息,请参阅great。