实施了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
构建的答案 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)
您需要指定域(仅从一个域获取字段)或客户(以返回客户帐户的所有域)。
我提交了一个错误,以便更明确地提供这两个参数中的一个。