0

实现了 oauth2.0 并使用范围进行了握手:

"https://www.googleapis.com/auth/userinfo.email ",
"https://www.googleapis.com/auth/userinfo.profile",
"https://www.googleapis.com/auth/admin.directory.user ",
"https://www.googleapis.com/auth/admin.directory.group ",
"https://www.googleapis.com/auth/admin.directory.orgunit ",

我拿回了一个令牌

请求

$ curl -X GET  https://www.googleapis.com/oauth2/v1/userinfo?access_token=<Token>
{
 "id": "{id}",
 "email": "{email}",
 "verified_email": true,
 "name": "{name}",
 ...
}

正如它应该。

但是对 admin.directory.user 命名空间的请求没有成功:

$ curl -X GET https://www.googleapis.com/admin/directory/v1/users?access_token=<Token>
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badRequest",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}

为什么会这样?

对 admin.directory.users 的请求是从https://developers.google.com/admin-sdk/directory/v1/reference/#Users构造的

4

2 回答 2

1

您需要指定域(仅从一个域中获取字段)或客户(返回客户帐户的所有域)。

我提交了一个错误以更清楚地说明提供两个参数之一所需的内容。

于 2013-09-10T22:06:18.487 回答
1

至少,您需要包含 Content-Type 标头:

curl -X GET -H "Content-Type: application/json" https://www.googleapis.com/admin/directory/v1/users?customer=my_customer&access_token=<Token>

有关使用 CURL 和 BASH 实现此 API 的完整脚本,请参阅此答案

请注意,文档当前不正确,因为它在实际需要时将 customer 列为可选参数。

于 2013-09-09T19:47:16.780 回答