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ığı'nı kullanarak Google hizmetlerine özel oluşturulmuş 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.) Google Calendar API'ye çağrı yapmak üzere Java için Calendar API İstemci Kitaplığı'nın 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şlemleri 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'u yönetmek için ihtiyaç duyduğunuz kod miktarını azaltabilecek güçlü bir kimlik doğrulama kitaplığı içerir. Bazen birkaç satıra ihtiyacınız vardı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 için Google İstemci Kitaplığı'nın Android'e özel yardımcı sınıfları, 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 kullanmak için pom.xml dosyanıza aşağıdaki satırları 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'
  }
Java için Google API istemci kitaplığını yükleme ve ayarlama hakkında daha fazla bilgi için indirme ve kurulum talimatlarına bakın.
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: