已经实现了 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 ",
我拿回了一个 token
请求
$ 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 构造而成
最佳答案
我在通过 https://www.googleapis.com/auth/admin.directory.user
端点检索所有用户时遇到了同样的问题。根据文档,您可以通过将域作为参数传递来在特定域中执行此操作,或者通过传递 customer=my_customer
参数来获取所有现有用户,如下所示:
- 检索域中的所有用户 doc :
https://www.googleapis.com/auth/admin.directory.user?domain=example.com
或
- 检索所有帐户用户 doc :
https://www.googleapis.com/auth/admin.directory.user?customer=my_customer
在谷歌中playground oauth2您还可以通过选择 Admin SDK API directory_v1
和 auth/admin.directory.user.readonly
来测试上述内容以授权各自的范围,然后调用上述请求。
请注意,您可能需要在 Google 管理仪表板的安全应用部分下访问 Google Playground。
关于google-api - googleapis 返回错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18705332/