1

GoogleNetHttpTransport を使用して googleapps でユーザーを作成するクライアントを作成しましたが、スーパー管理者 API を介してユーザーをスーパー管理者として作成すると、socketTimeoutException が発生します。接続中のユーザー自身が superAdmin 権限を持っています。

GoogleNetHttpTransport を使用しているときに ReadTimeOut/SocketTimeout を増やす方法。ターゲットへの接続とクライアントの作成に関する以下のコード スニペントを見つけてください。

httpTransport = GoogleNetHttpTransport.newTrustedTransport() ;
GoogleCredential credential = new GoogleCredential.Builder()
                    .setTransport(httpTransport)
                    .setJsonFactory(JSON_FACTORY)
                    .setServiceAccountId(serviceAccountId)
                    .setServiceAccountScopes(scopes)
                    .setServiceAccountUser(superAdminUserMail)
                    .setServiceAccountPrivateKeyFromP12File(privateKeyFile).build();

client = new Directory.Builder(httpTransport, JSON_FACTORY,credential)
                      .setApplicationName(APPLICATION_NAME).
                      .setHttpRequestInitializer(credential).build();

//Getting the sockt/timeout exception 
client.users().makeAdmin(userID, admin).execute();
4

1 に答える 1

3

独自の HttpRequestInitializer を作成します。

new HttpRequestInitializer() {
   @Override
    public void initialize(HttpRequest request) throws IOException {
      credential.initialize(request);
      request.setConnectTimeout(CONNECT_TIMEOUT);
      request.setReadTimeout(READ_TIMEOUT);
    }
 }
于 2015-01-08T17:08:31.877 に答える