透過 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 檔案中新增下列幾行內容:
<project> <dependencies> <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> <version>1.32.1</version> </dependency> </dependencies> </project>
如要使用 Gradle,請在 build.gradle 檔案中新增下列幾行內容:
repositories { mavenCentral() } dependencies { compile 'com.google.api-client:google-api-client:1.32.1' }如要進一步瞭解如何安裝及設定 Java 適用的 Google API 用戶端程式庫,請參閱下載及設定操作說明。
支援的環境
Java 的 Google API 用戶端程式庫支援以下 Java 環境:
- Java 7 以上版本、標準 (SE) 和企業版 (EE)。
- Google App Engine。
- Android 4.4 以上版本 - 如果您需要的 Google 服務有可用的 Google Play 服務程式庫,請使用該程式庫取代這個程式庫。Google Play 媒體庫可為你提供最佳效能和體驗。