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'lerinin listesini ziyaret edin.) Google Calendar API'ye çağrı yapmak için Java için Calendar API Client Library'nin kullanıldığı bir örneği aşağıda bulabilirsiniz:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

Kitaplık, toplu işlemi ve medya yükleme/indirme işlemlerini kolaylaştırır

Kitaplıkta toplu oluşturma, medya yükleme ve medya indirme için yardımcı sınıflar bulunur.
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 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: