2016-11-29 56 views
5

Java GoogleドライブAPIを使用します。 私はこのコードを試してみました:com.google.api.client.auth.oauth2.TokenResponseException:401 Unauthorized

public Drive getDriveService() throws GeneralSecurityException, IOException, URISyntaxException 
    { 
     HttpTransport httpTransport = new NetHttpTransport(); 
     JacksonFactory JSON_FACTORY = new JacksonFactory(); 

     GoogleCredential credential = new GoogleCredential.Builder() 
      .setTransport(httpTransport) 
      .setJsonFactory(JSON_FACTORY) 
      .setServiceAccountId("[email protected]") 
      .setServiceAccountPrivateKeyFromP12File(new java.io.File("C:\\buffer\\sonora project-3256770463ed.p12")) 
      .setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN)) 
      .setServiceAccountUser("[email protected]") 
      .build(); 

     Drive service = new Drive.Builder(httpTransport, JSON_FACTORY, null) 
      .setApplicationName("FileListAccessProject") 
      .setHttpRequestInitializer(credential).build(); 

     return service; 
    } 

をしかし、私はこのエラーを取得する:

An error occurred: com.google.api.client.auth.oauth2.TokenResponseException: 401 Unauthorized 

私はこの設定を使用します。

enter image description here

あなたは、私はこの問題を解決することができますどのようにいくつかのアイデアを与えることができます?

+0

Iドンを理解するのに役立つことができると思い、他のSOの質問をしていますあなたはできると思いますドメイン管理者アカウントで管理者アカウントにサービスアカウントを追加し、そのユーザーが管理者アカウントのユーザーでない限り、setServiceAccountUserを使用してください。 – DaImTo

+0

投げている合計エラーと例外を教えてもらえますか? – Coder

答えて

0

このSO questionに基づいて、エラー401が表示される理由の1つは、使用しているサービスアカウントがGmailアドレスに関連付けられたドライブアカウントにアクセスできないことです。アップロードしたファイルにアクセスできるようにするには、サービスアカウントを使用してアクセスを許可する必要があります。ここで

は、私はあなたがより多くのサービスアカウント

+0

返信いただきありがとうございますが、まだ解決策を見つけることができません。詳細を教えてください。 –

関連する問題