package com.azimo.tool.publisher; import com.azimo.tool.config.AppConfig; import com.azimo.tool.config.AppConfigKey; import com.azimo.tool.utils.file.FilePathParser; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.services.androidpublisher.AndroidPublisher; /** * Created by F1sherKK on 14/12/16. */ public class AndroidPublisherAuth { private static JsonFactory JSON_FACTORY; private static HttpTransport HTTP_TRANSPORT; private AppConfig appConfig; private FilePathParser filePathParser; private AndroidPublisherBuilder androidPublisherBuilder; public AndroidPublisherAuth(AndroidPublisherBuilder credentials, AppConfig appConfig, FilePathParser filePathParser) { this.appConfig = appConfig; this.filePathParser = filePathParser; this.androidPublisherBuilder = credentials; } public AndroidPublisher init() { String applicationName = appConfig.get(AppConfigKey.APPLICATION_NAME); String serviceAccountEmail = appConfig.get(AppConfigKey.GOOGLE_PLAY_SERVICE_ACCOUNT_EMAIL); String googlePlayCredentialsFilePath = filePathParser.parsePath(appConfig.get(AppConfigKey.GOOGLE_PLAY_SERVICE_CREDENTIALS_PATH)); Credential credential = null; try { if (HTTP_TRANSPORT == null) { HTTP_TRANSPORT = androidPublisherBuilder.newTrustedTransport(); } if (JSON_FACTORY == null) { JSON_FACTORY = androidPublisherBuilder.newJacksonFactory(); } credential = androidPublisherBuilder.authorizeWithServiceAccount( serviceAccountEmail, googlePlayCredentialsFilePath, HTTP_TRANSPORT, JSON_FACTORY); } catch (Exception e) { e.printStackTrace(); } return androidPublisherBuilder.build(HTTP_TRANSPORT, JSON_FACTORY, credential, applicationName); } }