2016-11-29 2 views
5

자바 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; 
    } 

을하지만이 오류 얻을 :

enter image description here

당신은 내가이 문제를 해결할 수있는 방법을 몇 가지 아이디어를 줄 수 :이 구성을 사용

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

을 ?

+0

내가 돈을 이해하는 데 도움이 될 수 있습니다 생각하는 다른 SO 질문입니다 네가 할 수 있다고 생각하지 않아. 도메인 관리 계정 및 관리자 계정에 서비스 계정을 추가하지 않은 경우 setServiceAccountUser를 사용하십시오. 해당 사용자는 관리자 계정의 사용자이기도합니다. – DaImTo

+0

던지고있는 총 오류 및 예외를 제공 할 수 있습니까? – Coder

답변

0

SO question을 기반으로하면 오류 401이 발생하는 이유 중 하나는 사용중인 서비스 계정이 Gmail 주소와 연결된 드라이브 계정에 액세스 할 수 없다는 것입니다. 따라서 업로드하는 파일에 액세스하려면 서비스 계정을 통해 액세스 권한을 부여해야합니다. 여기

난 당신이 더 많은 서비스 계정

+0

답장을 보내 주셔서 감사합니다. 그러나 해결책을 찾을 수 없습니다. 좀 더 자세한 정보를 주시겠습니까? –

관련 문제