OAuth2(unsupported_grant_type)grant_type:client_credentials无效

时间:2017-10-15 05:05:35

标签: python-3.x oauth-2.0 google-drive-api

我正在尝试获取Google Drive API的访问令牌,以便将其用于我的Python脚本的后续请求。但是我收到了一个无效的grant_type错误,这有点令人困惑。

我正在使用oauthlibrequests_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")

这是我得到的错误

  

回溯(最近一次调用最后一次):文件“sample.py”,第10行,in          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”)文件   “/Users/kaybus/anaconda/lib/python3.6/site-packages/requests_oauthlib/oauth2_session.py”,

     

第244行,在fetch_token中       self._client.parse_request_body_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_response中       validate_token_parameters(params)文件“/Users/kaybus/anaconda/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/parameters.py”,

     

第386行,在validate_token_parameters中       raise_from_error(params.get('error'),params)file“/Users/kaybus/anaconda/lib/python3.6/site-packages/oauthlib/oauth2/rfc6749/errors.py”,

     

第406行,在raise_from_error中       提升cls(** kwargs)oauthlib.oauth2.rfc6749.errors.UnsupportedGrantTypeError:   (unsupported_grant_type)grant_type:client_credentials

无效

我相信很多人可能会遇到这个问题。我做了一些根本错误的事吗?请让我知道你是如何解决它的。提前谢谢。

0 个答案:

没有答案