Java'dan Google API'lerine kolayca erişin

Java için Google API İstemci Kitaplığı, tüm Google API'lerinde ortak olan HTTP aktarım, hata işleme, kimlik doğrulama, JSON ayrıştırma, medya indirme/yükleme ve toplu işleme gibi işlevler sağlar. Kitaplık, tutarlı bir arayüze sahip güçlü bir OAuth 2.0 kitaplığı, tüm veri şemalarını destekleyen basit, etkili XML ve JSON veri modelleri ve protokol arabelleği desteği içerir.

Java için Google'ın istemci kitaplıklarını kullanarak bir Google API'yi çağırmak üzere, eriştiğiniz Google API için oluşturulmuş Java kitaplığına ihtiyacınız var. Bu oluşturulan kitaplıklar, kök URL gibi API'ye özgü bilgilerin yanı sıra temel google-api-java-client kitaplığını da içerir. Ayrıca, API bağlamında varlıkları temsil eden ve JSON nesneleri ile Java nesneleri arasında dönüşüm yapmak için yararlı olan sınıfları da içerir.
Sınıf veya yöntem düzeyinde @Beta ile işaretlenen özellikler değiştirilebilir. Bu sürümler, ana sürümlerde değiştirilebilir veya kaldırılabilir. Kodunuzun kendisi bir kitaplıksa (yani kodunuz, denetiminiz dışındaki kullanıcıların Sınıf Yolunda kullanılıyorsa) beta özellikleri kullanmayın.
Kullanımdan kaldırılan beta olmayan özellikler, ilk kullanıma sunuldukları tarihten on sekiz ay sonra kaldırılacaktır. Bu süre zarfında kullanımlarınızı düzeltmeniz gerekir. Bunu yapmazsanız her tür kesinti yaşanabilir ve size bir derleme hatası garanti edilmez.

Java için Google API İstemci Kitaplığı'nın Öne Çıkan Özellikleri

Google API'lerini, Java için Google API İstemci Kitaplığı ile birlikte Google hizmetine özel olarak oluşturulmuş kitaplıkları kullanarak çağırabilirsiniz. (Bir Google API'si için oluşturulan istemci kitaplığını bulmak üzere desteklenen Google API'leri listesini ziyaret edin.) Aşağıda, Google Calendar API'ye çağrıda bulunmak amacıyla Java için Calendar API İstemci Kitaplığı'nın kullanıldığı bir örnek verilmiştir:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

Kitaplık, toplu işleme ve medya yüklemeyi/indirmeyi kolaylaştırır

Kitaplık toplu oluşturma, medya yükleme ve medya indirme konularında yardımcı dersler sunar.
Kitaplık, OAuth 2.0'ı işlemek için ihtiyaç duyduğunuz kod miktarını azaltabilecek güçlü bir kimlik doğrulama kitaplığı içerir. Bazı durumlarda yalnızca birkaç satır yeterlidir. Örnek:
 /** 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");
}
App Engine'e özgü yardımcılar, API'lere yapılan kimliği doğrulanmış çağrıları hızla yapar ve jetonların kodunu alıp alma konusunda endişelenmeniz gerekmez.

Örneğin:
 @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();
   ...
 }
Java'nın Android'e özgü yardımcı sınıfları için Google İstemci Kitaplığı, Android AccountManager ile iyi şekilde entegre edilmiştir. Örnek:
 @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();
 }
Oluşturulan bir kitaplık kullanmıyorsanız Java için Google API İstemci Kitaplığı'nın ikili programını doğrudan indirme sayfasından indirebilir veya Maven ya da Gradle'ı kullanabilirsiniz. Maven'ı kullanmak için aşağıdaki satırları pom.xml dosyanıza ekleyin:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Gradle'ı kullanmak için aşağıdaki satırları build.gradle dosyanıza ekleyin:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Java için Google API İstemci Kitaplığı'nı yükleme ve ayarlama hakkında daha fazla bilgi edinmek isterseniz indirme ve kurulum talimatlarını inceleyin.
Java için Google API İstemci Kitaplığı şu Java ortamlarını destekler:
  • Java 7 veya sonraki sürümler, standart (SE) ve kurumsal (EE).
  • Google App Motoru.
  • Android 4.4 veya sonraki sürümler - ancak ihtiyacınız olan Google hizmeti için Google Play Hizmetleri kitaplığı varsa bu kitaplık yerine bu kitaplığı kullanın. Google Play kitaplığı size mümkün olan en iyi performansı ve deneyimi sağlar.
Desteklenmez: Google Web Araç Seti (GWT), Java mobil (ME) ve Java 6 (veya önceki sürümler).

Bağımlılıklar

Java için Google API İstemci Kitaplığı (google-api-java-client), Google tarafından da geliştirilen iki yaygın kitaplığın üzerine inşa edilmiştir ve web'deki herhangi bir HTTP hizmetiyle çalışacak şekilde tasarlanmıştır: