0
Googleサービスアカウントを使用して、サービス側から以下のコードを使用してアクセストークンを取得しています。しかし、私はNullとしてアクセストークンを取得しています。同じ返されたトークンを使用して、同じuserEmailIdに対してクライアント側のGoogleファイルピッカーを開きます。私のコードで間違っていることを提案してください。GoogleサービスアカウントでNullとしてアクセストークンを取得する
private static final List SCOPE = Arrays.asList("https://www.googleapis.com/auth/drive");
public String getAccessToken(String SERVICE_ACCOUNT_EMAIL, String SERVICE_ACCOUNT_PKCS12_FILE_PATH,String userEmailId){
try {
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(SCOPE)
.setServiceAccountUser(userEmailId)
.setServiceAccountPrivateKeyFromP12File(new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))
.build();
credential.getRefreshToken();
return credential.getAccessToken();
} catch (Exception e) {
// TODO: handle exception
log.severe("Error while getting Drive credentilas. 5.0"+ e.getMessage());
return null;
}
}
がわからない問題を解決する必要がありますが、私は非常にhttps://developers.google.comを使用することをお勧めしたいだけで
credential.refreshToken()
に
credential.getRefreshToken()
から変更することのようです/ identity/protocols/application-default-credentialsと入力します。それが失敗した場合は、cliet libに問題を提出してみてください。 https://github.com/google/google-api-java-client –@BillPrin:ご意見ありがとうございます。実際にはドメインワイド委任も使用していますが、サーバーからユーザーを偽装している間に上記のコードでNullとしてアクセストークンを取得しています側。 –