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şebilir. Herhangi bir ana sürümde değiştirilebilir veya kaldırılabilir. Kodunuz bir kitaplıksa (yani kodunuz sizin kontrolünüz dışındaki kullanıcıların CLASSPATH yolunda kullanılıyorsa) beta özellikleri kullanmayın.
Kullanımdan kaldırılan beta olmayan özellikler, ilk kez kullanımdan kaldırıldıkları sürümden on sekiz ay sonra kaldırılacaktır. Kullanımlarınızı bu tarihten önce düzeltmeniz gerekir. Aksi takdirde, herhangi bir bozulma meydana gelebilir ve bir derleme hatası garanti edilmez.

Java için Google API İstemci Kitaplığı'nda Öne Çıkanlar

Java için Google API İstemci Kitaplığı ile Google hizmetine özel oluşturulan kitaplıkları kullanarak Google API'lerini ç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ı yapmak üzere 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ükleme/indirme işlemlerini kolaylaştırır

Kitaplıkta toplu işlem, medya yükleme ve medya indirme için yardımcı sınıflar sunulmaktadır.
Kitaplık, OAuth 2.0'ı işlemek için ihtiyacınız olan kod miktarını azaltabilecek güçlü bir kimlik doğrulama kitaplığı içerir. Bazen ihtiyacınız olan tek şey birkaç satırdır. Örneğin:
 /** 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 özel yardımcılar, API'lere yapılan kimliği doğrulanmış çağrıları hızlı bir şekilde halleder ve jeton için kod değişimi konusunda endişelenmenize gerek yoktur.

Ö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 entegre edilmiştir. Örneğin:
 @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 kitaplık kullanmıyorsanız Java için Google API İstemci Kitaplığı ikili programını doğrudan indirmeler sayfasından indirebilir veya Maven ya da Gradle'ı kullanabilirsiniz. Maven'i 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 build.gradle dosyanıza aşağıdaki satırları ekleyin:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Google API'yi yükleme ve ayarlama hakkında daha fazla bilgi için Java İçin İstemci Kitaplığı hakkında daha fazla bilgi edinmek için indir 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 Engine.
  • Android 4.4 veya sonraki bir sürüm. Ancak, ihtiyacınız olan Google hizmeti için kullanılabiliyorsa bir Google Play Hizmetleri kitaplığı varsa bu kitaplık yerine o kitaplığı kullanın. Google Play kitaplığı size mümkün olan en iyi performansı ve deneyimi sunar.
Desteklenmez: Google Web Toolkit (GWT), Java mobil (ME) ve Java 6 (veya öncesi).

Bağımlılıklar

Java için Google API İstemci Kitaplığı (google-api-java-client) yine Google tarafından oluşturulan iki yaygın kitaplık üzerine kurulmuştur ve web'deki tüm HTTP hizmetleriyle çalışmak üzere tasarlanmıştır: