【问题标题】:googleapis giving back bad requestgoogleapis 回馈错误请求
【发布时间】:2013-09-13 08:40:01
【问题描述】:

已实现 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构造的

【问题讨论】:

    标签: google-apps google-admin-sdk


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

    至少,您需要包含 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

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

    【讨论】:

    • 内容类型并没有真正改变 :)
    • 然后尝试我脚本中的其余参数。
    • 更新了答案,注意客户属性是必需的,而不是可选的。文档目前对此有误。
    • 我不得不说来自谷歌的文档......至少可以说,大部分信息都是指死链接和其他类似性质的东西。
    • 我试过你的脚本,访问链接时我得到“请求中的重定向 URI:urn:ietf:wg:oauth:2.0:oob 与注册的重定向 URI 不匹配”和应用程序控制台不接受添加 urn:ietf:wg:oauth:2.0:oob
    猜你喜欢
    • 1970-01-01
    • 2019-11-12
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多