Python 3.x OAuth2(不支持的授予类型)无效的授予类型:客户端凭据

Python 3.x OAuth2(不支持的授予类型)无效的授予类型:客户端凭据,python-3.x,oauth-2.0,google-drive-api,Python 3.x,Oauth 2.0,Google Drive Api,我正在尝试获取GoogleDriveAPI的访问令牌,以便将其用于Python脚本中的后续请求。然而,我得到了一个无效的grant_类型错误,这有点令人困惑 我正在使用oauthlib和requests\u oauthlib,因为oauth2client已被正式弃用 from oauthlib.oauth2 import BackendApplicationClient from requests_oauthlib import OAuth2Session client = BackendAp

我正在尝试获取GoogleDriveAPI的访问令牌,以便将其用于Python脚本中的后续请求。然而,我得到了一个无效的grant_类型错误,这有点令人困惑

我正在使用
oauthlib
requests\u oauthlib
,因为
oauth2client
已被正式弃用

from oauthlib.oauth2 import BackendApplicationClient
from requests_oauthlib import OAuth2Session

client = BackendApplicationClient(client_id=client_id)
oauth = OAuth2Session(client=client)

token = oauth.fetch_token(token_url='https://accounts.google.com/o/oauth2/token', client_id=client_id, client_secret=client_secret, scope="https://www.googleapis.com/auth/drive.readonly")
这就是我得到的错误

回溯(最近一次调用last):文件“sample.py”,第10行,在 token=oauth.fetch\u token(token\u url='', 客户号=客户号,客户号=客户号, 范围=”https://www.googleapis.com/auth/drive.readonly)文件 “/Users/kaybus/anaconda/lib/python3.6/site packages/requests\u oauthlib/oauth2\u session.py”

第244行,在fetch_令牌中 self.\u client.parse\u request\u body\u response(r.text,scope=self.scope)文件 “/Users/kaybus/anaconda/lib/python3.6/site packages/oauthlib/oauth2/rfc6749/clients/base.py”

第408行,在parse_request_body_response中 self.token=parse_token_response(body,scope=scope)文件“/Users/kaybus/anaconda/lib/python3.6/site packages/oauthlib/oauth2/rfc6749/parameters.py”

第379行,在parse_token_响应中 验证令牌参数(params)文件“/Users/kaybus/anaconda/lib/python3.6/site packages/oauthlib/oauth2/rfc6749/parameters.py”

第386行,在validate_token_参数中 从_error(params.get('error'),params)文件“/Users/kaybus/anaconda/lib/python3.6/site packages/oauthlib/oauth2/rfc6749/errors.py”引发_“

第406行,从\u升起\u错误 raise cls(**kwargs)oauthlib.oauth2.rfc6749.errors.UnsupportedGrantTypeError: (不支持的授予类型)无效的授予类型:客户端凭据


我相信很多人都会遇到这个问题。我是不是做错了什么?请告诉我你是怎么解决的。提前感谢。

从我在本文中看到的内容来看,Google API似乎不支持
客户端凭据
授权类型。此外,您还收到了这些错误,因为您可能将url数据(用户名、密码、授权类型)添加到标题中,而不是添加到body元素中。检查一下。你也可以参考这篇文章。从我在这篇文章中看到的内容来看,谷歌API似乎不支持
client\u凭证
grant\u类型。除此之外,你还收到了这些错误,因为你可能将url数据(用户名、密码、grant\u类型)添加到标题中,而不是添加到body元素中。检查一下。你也可以参考这个。