0

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 から作成されます。

4

2 に答える 2

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>

この API を CURL と BASH で実装する完全なスクリプトについては、この回答を参照してください。

実際には必須であるにもかかわらず、customer がオプションのパラメーターとしてリストされているため、ドキュメントは現在正しくないことに注意してください。

于 2013-09-09T19:47:16.780 に答える