Search code examples
google-apigoogle-appsgoogle-admin-sdk

googleapis giving back bad request


Having implemented oauth2.0 and done a handshake using the scopes:

"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 ",

I get back a token

the request

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

as it should.

however a requst to the admin.directory.user namespace does not succeed:

$ 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"
 }
}

Any good ideas to why this is?

The request to admin.directory.users is constructed from https://developers.google.com/admin-sdk/directory/v1/reference/#Users


Solution

  • I had the same problem retrieving all users through https://www.googleapis.com/auth/admin.directory.user endpoint. According to the documentation, you could do that in a specific domain by passing the domain as a parameter or get all existing users by passing the customer=my_customer parameter as follows:

    • Retrieve all users in a domain doc: https://www.googleapis.com/auth/admin.directory.user?domain=example.com

    or

    • Retrieve all account users doc: https://www.googleapis.com/auth/admin.directory.user?customer=my_customer

    In google playground oauth2 also you can test the above stuff by selecting Admin SDK API directory_v1 and auth/admin.directory.user.readonly to authorize the respective scope, then call the above requests.

    Note that, you may need to get access to google playground within your google admin dashboard under the security apps section.