서버 응용 프로그램을 실행하는 경우 OAuth2 및 드라이브 API가있는 서비스 계정을 사용해보십시오. 이렇게하면 사용자가 콘솔이나 UI를 통해 OAuth2 자격 증명을 제공 할 필요없이 서버에서 앱을 실행할 수 있습니다. 특정 계정의 문서에 앱을 적용하려는 경우 가장 (impersonation)을 수행 할 수도 있습니다.
GoogleCredentials credentials = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[[SERVICE_ACCOUNT_EMAIL]]")
.setServiceAccountScopes(DriveScopes.DRIVE, DriveScopes.DRIVE_FILE,
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile")
.setServiceAccountPrivateKeyFromP12File(Auth.keyFile)
.setServiceAccountUser("[[[email protected]]]")
.build();
credentials.refreshToken();
예, 응용 프로그램이 명령 줄이고 그래픽 인터페이스가없는 Linux 서버에서 실행되기 때문에 OAuth를 사용할 수 없습니다. – Evgenii
장치 자체에는 그래픽 인터페이스가 필요하지 않습니다. [기본 애플리케이션 흐름] (https://developers.google.com/accounts/docs/OAuth2InstalledApp)을 사용하여 다른 컴퓨터 (예 : SSH)에 인증을 설정할 수 있습니다. 앱에서 방문해야 할 URL을 생성합니다 인증 된 상태에서 코드를 다시 앱에 복사합니다. – Alain
감사합니다. 알랭. GUI가있는 다른 컴퓨터를 사용하여 서버 응용 프로그램을 인증하는 것은 워크 플로를 복잡하게하므로 선택의 여지가 없습니다. 선택의 여지가 없지만 지금은 '문서 목록 API'를 계속 사용하고있는 것으로 보입니다. – Evgenii