2

Java ライブラリ「google-api-services-admin-directory_v1-rev14-java-1.17.0-rc」を介して新しい Directory API を使用して、Google のドメインからユーザーのリストを取得しようとしています。認証が成功し、(管理者アカウントを使用して) トークンを取得した後、(ユーザー リストを取得して) クエリを実行しようとしましたが、エラー 400: Bad request が表示されます。

私が使用しているコードは次のとおりです。

GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
    .setAccessType("offline").setApprovalPrompt("force").setDataStoreFactory(oData).addRefreshListener(credentialRefreshListener).build();
String url = flow.newAuthorizationUrl().setRedirectUri(redirectURL).build();
System.out.println(url);
System.out.println("Enter Responsse Url");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
AuthorizationCodeResponseUrl authResponse = new AuthorizationCodeResponseUrl(br.readLine());

if (authResponse.getError() != null) {
    System.out.println("authorization denied...");// authorization denied...
} else {
    GoogleTokenResponse response = flow.newTokenRequest(authResponse.getCode()).setRedirectUri(redirectURL).execute();
    System.out.println("Access token: " + response.getAccessToken() + " Expire: " +
            response.getExpiresInSeconds());
    Credential credential = flow.createAndStoreCredential(response,"user");
    Credential credential1 = flow.loadCredential("user");
    Directory directory = new Directory.Builder(TRANSPORT, JSON_FACTORY, credential).setApplicationName("TestAPP/1.0").build();
    Directory.Users.List list = directory.users().list();
    Users users = list.execute();
    System.out.println(users.size());
}

次に、この問題のログを見つけます。

com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Bad Request",
    "reason" : "badRequest"
  } ],
  "message" : "Bad Request"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
at net.easysol.google.CreateUser.main(CreateUser.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

誰でもこの問題を解決する方法はありますか?   

4

1 に答える 1

4

リストを使用する場合、ドメインまたは顧客のいずれかを指定する必要があります。Google Admin Directory APIのコード例が400 の不正なリクエストを返す

于 2013-09-20T19:53:27.923 に答える