透過 Java 輕鬆存取 Google API
Java 適用的 Google API 用戶端程式庫提供所有 Google API 通用的功能,例如 HTTP 傳輸、錯誤處理、驗證、JSON 剖析、媒體下載/上傳以及批次處理。這個程式庫具有強大的 OAuth 2.0 程式庫,內含一致的介面、支援各種資料架構的輕量高效率 XML 和 JSON 資料模型,以及通訊協定緩衝區的支援。
如要使用 Google 的 Java 用戶端程式庫,呼叫 Google API,您必須針對存取的 Google API 產生 Java 程式庫。這些產生的程式庫包含核心 google-api-java-client 程式庫,以及根網址等 API 專屬資訊。這些類別也會包含在 API 中代表實體的類別,用於在 JSON 物件和 Java 物件之間進行轉換。
如要使用 Google 的 Java 用戶端程式庫,呼叫 Google API,您必須針對存取的 Google API 產生 Java 程式庫。這些產生的程式庫包含核心 google-api-java-client 程式庫,以及根網址等 API 專屬資訊。這些類別也會包含在 API 中代表實體的類別,用於在 JSON 物件和 Java 物件之間進行轉換。
Java 適用的 Google API 用戶端程式庫重點
呼叫 Google API 非常簡單
您可以搭配 Java 適用的 Google API 用戶端程式庫,使用 Google 服務專用產生程式庫呼叫 Google API。(如要尋找為 Google API 產生的用戶端程式庫,請參閱支援的 Google API 清單)。以下範例說明如何使用適用於 Java 的 Calendar API 用戶端程式庫呼叫 Google Calendar API:
// Show events on user's calendar. View.header("Show Calendars"); CalendarList feed = client.calendarList().list().execute(); View.display(feed);
這個程式庫可讓你更輕鬆地批次處理和媒體上傳/下載
這個程式庫提供批次處理、媒體上傳和媒體下載的輔助類別。這個程式庫讓驗證變得更簡單
該程式庫包含強大的驗證程式庫,可減少處理 OAuth 2.0 所需的程式碼量。有時只要幾行就夠了。例如:
/** Authorizes the installed application to access user's protected data. */ private static Credential authorize() throws Exception { // load client secrets GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(CalendarSample.class.getResourceAsStream("/client_secrets.json"))); // set up authorization code flow GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( httpTransport, JSON_FACTORY, clientSecrets, Collections.singleton(CalendarScopes.CALENDAR)).setDataStoreFactory(dataStoreFactory) .build(); // authorize return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); }
此程式庫會在 Google App Engine 上執行
App Engine 專屬輔助程式可讓您快速進行已驗證的 API 呼叫,而且您不必擔心更換代碼的程式碼。
例如:
例如:
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { AppIdentityCredential credential = new AppIdentityCredential(Arrays.asList(UrlshortenerScopes.URLSHORTENER)); Urlshortener shortener = new Urlshortener.Builder(new UrlFetchTransport(), new JacksonFactory(), credential) .build(); UrlHistory history = shortener.URL().list().execute(); ... }
此程式庫可在 Android 4.4 以上版本中執行。
Java 專用 Google 用戶端程式庫的 Android 專屬輔助類別可與 Android AccountManager 完美整合。例如:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Google Accounts credential = GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS)); SharedPreferences settings = getPreferences(Context.MODE_PRIVATE); credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null)); // Tasks client service = new com.google.api.services.tasks.Tasks.Builder(httpTransport, jsonFactory, credential) .setApplicationName("Google-TasksAndroidSample/1.0").build(); }
安裝十分簡單
如果您使用的不是產生的程式庫,可以直接從下載頁面下載適用於 Java 的 Google API 用戶端程式庫二進位檔,或者使用 Maven 或 Gradle。如要使用 Maven,請在 pom.xml 檔案中新增以下幾行程式碼:
如要使用 Gradle,請在 build.gradle 檔案中新增以下幾行程式碼:
敬上
進一步瞭解如何安裝及設定 Google API
適用於 Java 的用戶端程式庫,請參閱
下載
以及設定操作說明。
<project> <dependencies> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> <version>1.32.1</version> </dependency> </dependencies> </project>
repositories { mavenCentral() } dependencies { compile 'com.google.api-client:google-api-client:1.32.1' }
支援的環境
Java 的 Google API 用戶端程式庫支援以下 Java 環境:
- Java 7 以上版本、標準 (SE) 和企業版 (EE)。
- Google App Engine。
- Android 4.4 以上版本 - 如果您需要的 Google 服務有可用的 Google Play 服務程式庫,請使用該程式庫取代這個程式庫。Google Play 媒體庫可為你提供最佳效能和體驗。