4
개발중인 애플리케이션을 통해 Google 드라이브의 일부 파일에 액세스하려고합니다. 불행히도 나는 자격증을 얻는데 어려움을 겪고있다. Google 서비스 계정을 만들고 제공 한 전자 메일 주소 및 개인 키를 확인해야합니다. 아래 방법 getDriveService()
를 호출 그러나 때, 나는 Google 드라이브 API 용 OAuth 자격증 명 취득
java.lang.NullPointerException
at java.util.Collections$UnmodifiableCollection.<init>(Unknown Source)
at java.util.Collections.unmodifiableCollection(Unknown Source)
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.<init>(GoogleCredential.java:321)
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential$Builder.build(GoogleCredential.java:515)
내가 여기서 뭔가 분명히 잘못된 일을하고있는 오류가 발생입니까? 지금까지
내 코드 :
는import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import java.security.GeneralSecurityException;
import java.io.IOException;
import java.net.URISyntaxException;
private static final String SERVICE_ACCOUNT_EMAIL = "[email protected]";
private static final String SERVICE_ACCOUNT_PKCS12_FILE_PATH = "/home/user/googledriveKey.p12";
public static Drive getDriveService() throws GeneralSecurityException, IOException, URISyntaxException {
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountPrivateKeyFromP12File(
new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))
.build();
Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
.setHttpRequestInitializer(credential).build();
return service;
}
맞아. 그 문서 페이지는 내가보고있는 것과 정확히 같았고 (embarassingly) 처음에는'setServiceAccountScopes' 메서드 호출을 놓친 것 같습니다. 나는 내 대답을 지우고 이것을 받아 들일 것이다. 고맙습니다 – karlson