1

setServiceAccountUser()を使用して Google ドライブ APIを認証するためにGoogle Apps ドメインでユーザーになりすまそうとすると、次のような応答が返されます

com.google.api.client.auth.oauth2.TokenResponseException: 403 OK { "error": "access_denied", "error_description": "リクエストされたクライアントは承認されていません。" }

以下は私のコードです:

GoogleCredential credential = new GoogleCredential.Builder()
                            .setTransport(httpTransport)
                            .setJsonFactory(jsonFactory)
                            .setServiceAccountId(SERVICE_ACCOUNT_ID)
                            .setServiceAccountUser("user@domain.com")
                            .setServiceAccountScopes(scope)
                            .setServiceAccountPrivateKey(privateKey)
                            .build(); 
Drive service = new Drive.Builder(httpTransport, jsonFactory,null).setHttpRequestInitializer(credential).setApplicationName(AppName).build();
File body = new File();
body.setTitle("Export");
body.setMimeType("application/vnd.google-apps.spreadsheet");
service.files().insert(body).execute();

前もって感謝します !

ラム・バラジ・スバイヤン。

4

1 に答える 1

0

サービス アカウント ユーザーが正しくないため、エラーがスローされる

 setServiceAccountUser("user@domain.com")

ここに記載されているユーザー アカウントには、ドメイン レベルのアクセス権が必要です。また、サービス アカウントのドメイン レベルの委任を有効にしてみてください

于 2017-02-13T11:35:24.373 に答える