Dễ dàng truy cập các API của Google từ Java

Thư viện ứng dụng Java cho API của Google cung cấp chức năng phổ biến cho tất cả các API của Google, ví dụ: truyền HTTP, xử lý lỗi, xác thực, phân tích cú pháp JSON, tải xuống/tải lên phương tiện và tạo lô. Thư viện này có thư viện OAuth 2.0 mạnh mẽ với giao diện nhất quán; các mô hình dữ liệu XML và JSON nhẹ, hiệu quả có hỗ trợ mọi giản đồ dữ liệu; và hỗ trợ các vùng đệm giao thức.

Để gọi một API của Google bằng các thư viện ứng dụng của Google dành cho Java, bạn cần có thư viện Java đã tạo cho API Google mà bạn đang truy cập. Các thư viện được tạo này bao gồm thư viện google-api-java-client cốt lõi cùng với thông tin dành riêng cho API, chẳng hạn như URL gốc. Chúng cũng bao gồm các lớp đại diện cho các thực thể trong ngữ cảnh của API và hữu ích để chuyển đổi giữa các đối tượng JSON và đối tượng Java.
Các tính năng được đánh dấu bằng @Beta ở cấp lớp hoặc phương thức có thể thay đổi. Những ứng dụng này có thể được sửa đổi hoặc xoá trong bất kỳ bản phát hành chính nào. Không sử dụng các tính năng thử nghiệm nếu mã của bạn chính là thư viện (nghĩa là nếu mã của bạn được dùng trên CLASSPATH của người dùng nằm ngoài tầm kiểm soát của bạn).
Các tính năng không sử dụng phiên bản beta sẽ bị xoá sau 18 tháng kể từ bản phát hành mà các tính năng này lần đầu không được dùng nữa. Bạn phải sửa các trường hợp sử dụng của mình trước thời điểm này. Nếu không, mọi loại sự cố đều có thể dẫn đến và bạn không đảm bảo sẽ gặp lỗi biên dịch.

Điểm nổi bật của Thư viện ứng dụng API của Google cho Java

Bạn có thể gọi các API của Google bằng cách sử dụng thư viện được tạo dành riêng cho dịch vụ của Google với Thư viện ứng dụng Java cho API của Google. (Để tìm thư viện ứng dụng đã tạo cho một API Google, hãy truy cập vào danh sách API của Google được hỗ trợ.) Sau đây là ví dụ về cách sử dụng Thư viện ứng dụng API Lịch cho Java để gọi đến API Lịch Google:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

Thư viện này giúp việc tạo lô và tải nội dung nghe nhìn lên/tải xuống dễ dàng hơn

Thư viện này cung cấp các lớp trợ giúp để gửi hàng loạt, tải nội dung nghe nhìn lêntải nội dung nghe nhìn xuống.
Thư viện này có thư viện xác thực mạnh mẽ, có thể giúp bạn giảm lượng mã cần thiết để xử lý OAuth 2.0. Đôi khi, bạn chỉ cần viết một vài dòng là đủ. Ví dụ:
 /** 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");
}
Trình trợ giúp dành riêng cho App Engine thực hiện nhanh các lệnh gọi đã xác thực đến API và bạn không cần phải lo lắng về việc trao đổi mã cho mã thông báo.

Ví dụ:
 @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();
   ...
 }
Thư viện ứng dụng Google dành cho các lớp trợ giúp dành riêng cho Android của Java được tích hợp tốt với Android AccountManager. Ví dụ:
 @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();
 }
Nếu không sử dụng thư viện đã tạo, bạn có thể tải tệp nhị phân cho Thư viện ứng dụng Java của Google xuống ngay trên trang tải xuống hoặc bạn có thể sử dụng Maven hoặc Gradle. Để sử dụng Maven, hãy thêm các dòng sau vào tệp pom.xml:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Để sử dụng Gradle, hãy thêm các dòng sau vào tệp build.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Để biết thêm thông tin chi tiết về cách cài đặt và thiết lập Thư viện ứng dụng Java cho API của Google, hãy xem hướng dẫn tải xuống và thiết lập.
Thư viện ứng dụng Java cho API của Google hỗ trợ các môi trường Java sau:
  • Java 7 trở lên, tiêu chuẩn (SE) và doanh nghiệp (EE).
  • Google App Engine
  • Android 4.4 trở lên – nhưng nếu thư viện Dịch vụ Google Play có sẵn cho dịch vụ của Google mà bạn cần, hãy sử dụng thư viện đó thay vì thư viện này. Thư viện Google Play sẽ mang đến cho bạn hiệu suất và trải nghiệm tốt nhất có thể.
Không được hỗ trợ: Bộ công cụ web của Google (GWT), Java dành cho thiết bị di động (ME) và Java 6 (trở xuống).

Phần phụ thuộc

Thư viện ứng dụng Java cho API của Google (google-api-java-client) được xây dựng dựa trên hai thư viện phổ biến cũng do Google xây dựng và được thiết kế để hoạt động với bất kỳ dịch vụ HTTP nào trên web: