Dễ dàng truy cập vào 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 cấp phương thức có thể thay đổi. Bạn có thể sửa đổi hoặc xoá các mã này trong mọi bản phát hành chính. Không sử dụng các tính năng thử nghiệm nếu mã của bạn là một thư viện (nghĩa là nếu mã được sử dụng trên CLASSPATH của những người dùng không thuộc quyền kiểm soát của bạn).
Những tính năng không còn được dùng nữa sẽ ngừng hoạt động sau 18 tháng kể từ khi phát hành những tính năng đầu tiên. Bạn phải khắc phục việc sử dụng trước thời điểm này. Nếu không, bất kỳ loại lỗi nào cũng có thể dẫn đến lỗi đó và bạn không đảm bảo được lỗi biên dịch.

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

Bạn có thể gọi API của Google bằng cách sử dụng thư viện tạo riêng cho từng dịch vụ của Google bằng Thư viện ứng dụng Java cho API của Google. (Để tìm thư viện ứng dụng được tạo cho API Google, hãy truy cập danh sách API 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 lệnh truy cập 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 bạn tải lên/tải xuống phương tiện theo lô và tải xuống dễ dàng hơn

Thư viện này cung cấp các lớp trợ giúp để tạo lô, tải lên phương tiệntải xuống phương tiện.
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ợ những môi trường Java sau:
  • Java 7 trở lên, 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), thiết bị di động Java (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: