Google Search Console 401错误请求问题,而不使用客户端库

时间:2016-06-01 16:34:31

标签: json oauth-2.0 google-oauth google-client google-api-webmasters

所以,这里有3个步骤。

我用以下网址调用了oAuth2:

https://accounts.google.com/o/oauth2/v2/auth
?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fwebmasters%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fwebmasters.readonly
&client_id=___.apps.googleusercontent.com
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
&response_type=code
&approval_prompt=force
&access_type=offline

我得到了代码,假设:4/QVgPaCMqp94____qBC4NY_d54IcRj7U9mJc

然后我通过https://accounts.google.com/o/oauth2/tokenclient_idclient_secretredirect_urigrant_type发出POST请求来发出access_token请求,我得到一个JSON,如:

'access_token' => ya29.CjHzAgC4js6Guv-1pt_rE____q8XIxiXOXOaSZW9NLRjKCTI3izBi,
'expires_in' => 3600,
'refresh_token' => 1/dL3ENA-EVI0rEb6D-OGqw_____iFe2ZNdEq4,

现在,我正在使用access_token发出请求,或者在过期的情况下向Google Search Console重新发送access_token,我已在范围内添加了该请求。

我的请求与此类似:https://developers.google.com/webmaster-tools/v3/urlcrawlerrorssamples/list#try-it

但是我得到了一个401未经授权的错误,json就像下面这样:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

考虑到我已经正确完成了这个过程,我想我错过了一些参数或提供了一些错误的值。

我没有使用过Google Client Library,而是直接使用了REST API框架。

有人可以提供一些线索吗?谢谢。

1 个答案:

答案 0 :(得分:0)

原因是,网址查询参数必须为?access_token=而不是?key=后者只能在直接API访问的情况下使用,而不能用于oAuth。