0

我正在尝试通过使用 Firefox 28.0 和REST Client v2.0.3进行 Google API 调用来学习 OAuth 2.0 。

  1. 我去了 Google Developer OAuth 2.0 Playground网站。
  2. 我使用我的 Google 凭据登录
  3. 选择“日历 API v3”.readonly
  4. 单击“授权 API”按钮
  5. 然后我点击“交换令牌授权码”并获得访问令牌ab31.4.CDEfG_HI1JkKMNoPQR5S9tuvW_x2yzabcDEFGhiJklMnOpqRs-T6uvwXyza5BcdEFGHiJK3L
  6. Calendar API中,我使用 URL https://www.googleapis.com/calendar/v3/users/me/calendarList和 GET HTTP 操作
  7. 在 RESTClient 中,我创建了一个名为“Authorization”的标头,并将值设置为ab31.4.CDEfG_HI1JkKMNoPQR5S9tuvW_x2yzabcDEFGhiJklMnOpqRs-T6uvwXyza5BcdEFGHiJK3L来自 OAuth 2.0 Playground 的“Access token:”框。
  8. 空白时,Body我单击SEND并收到授权错误(操场上说我的令牌在另外 30 分钟内仍然有效)

错误的标题是:

Status Code: 401 Unauthorized
Alternate-Protocol: 443:quic
Cache-Control: private, max-age=0
Content-Encoding: gzip
Content-Length: 162
Content-Type: application/json; charset=UTF-8
Date: Tue, 18 Mar 2014 19:17:35 GMT
Expires: Tue, 18 Mar 2014 19:17:35 GMT
Server: GSE
WWW-Authenticate: Bearer realm="https://www.google.com/accounts/AuthSubRequest"
X-Content-Type-Options: nosniff
X-Firefox-Spdy: 3.1
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block

身体是:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "authError",
    "message": "Invalid Credentials",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Invalid Credentials"
 }
}
4

1 回答 1

0

标题需要设置为Authorization: Bearer ab31.4.CDEfG_HI1JkKMNoPQR5S9tuvW_x2yzabcDEFGhiJklMnOpqRs-T6uvwXyza5BcdEFGHiJK3L. 您需要在令牌前加上“Bearer”一词。

于 2014-03-18T19:36:48.763 回答