googleapis回馈了糟糕的请求

时间:2013-09-09 19:15:41

标签: google-apps google-admin-sdk

实施了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

构建的

2 个答案:

答案 0 :(得分: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的完整脚本,请参阅this answer

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

答案 1 :(得分:1)

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

我提交了一个错误,以便更明确地提供这两个参数中的一个。