0

所以,这里有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/token然后我通过向with client_id, client_secret, redirect_uri,发出 POST 请求来请求 access_token ,grant_type我得到一个 JSON 如下:

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

现在,我正在使用该 access_token 发出请求,或者在我已在范围中添加的更新 access_token 到 Google Search Console 的情况下发出请求。

我的请求与此类似: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 框架。

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

4

1 回答 1

0

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

于 2016-06-09T15:01:02.180 回答