به راحتی از جاوا به API های Google دسترسی داشته باشید

Google API Client Library برای جاوا عملکرد مشترک همه APIهای Google را ارائه می دهد، به عنوان مثال انتقال HTTP، مدیریت خطا، احراز هویت، تجزیه JSON، بارگیری/آپلود رسانه، و دسته بندی. این کتابخانه شامل یک کتابخانه قدرتمند OAuth 2.0 با یک رابط سازگار است. مدل‌های داده سبک و کارآمد XML و JSON که از هر طرح داده پشتیبانی می‌کنند. و پشتیبانی از بافرهای پروتکل .

برای فراخوانی Google API با استفاده از کتابخانه های سرویس گیرنده Google برای جاوا، به کتابخانه جاوای تولید شده برای Google API که به آن دسترسی دارید نیاز دارید. این کتابخانه های تولید شده شامل کتابخانه هسته google-api-java-client به همراه اطلاعات خاص API مانند URL root می باشد. آنها همچنین شامل کلاس هایی هستند که موجودیت ها را در زمینه API نشان می دهند و برای تبدیل بین اشیاء JSON و اشیاء جاوا مفید هستند.
ویژگی‌های علامت‌گذاری شده با @Beta در سطح کلاس یا روش ممکن است تغییر کنند. آنها ممکن است در هر نسخه اصلی تغییر یا حذف شوند. اگر کد شما خود یک کتابخانه است (یعنی اگر کد شما در CLASSPATH کاربران خارج از کنترل شما استفاده می شود) از ویژگی های بتا استفاده نکنید.
ویژگی‌های غیربتای منسوخ شده هجده ماه پس از انتشار که در آن برای اولین بار منسوخ شده‌اند، حذف خواهند شد. قبل از این زمان باید موارد استفاده خود را اصلاح کنید. اگر این کار را نکنید، ممکن است هر نوع شکستگی ایجاد شود و خطای کامپایل تضمینی برای شما وجود ندارد.

نکات برجسته Google API Client Library برای جاوا

می‌توانید با استفاده از کتابخانه‌های ایجاد شده مخصوص سرویس Google با Google API Client Library برای جاوا، با Google API تماس بگیرید. (برای یافتن کتابخانه سرویس گیرنده ایجاد شده برای Google API، از لیست APIهای پشتیبانی شده Google دیدن کنید.) در اینجا مثالی آورده شده است که از کتابخانه Calendar API Client برای جاوا برای برقراری تماس با Google Calendar API استفاده می کند:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

این کتابخانه بارگذاری/بارگیری دسته‌ای و رسانه‌ها را آسان‌تر می‌کند

این کتابخانه کلاس های کمکی برای دسته بندی ، آپلود رسانه و دانلود رسانه ارائه می دهد.
این کتابخانه شامل یک کتابخانه احراز هویت قدرتمند است که می تواند مقدار کد مورد نیاز برای مدیریت OAuth 2.0 را کاهش دهد. گاهی اوقات تنها چیزی که نیاز دارید چند خط است. مثلا:
 /** 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 تماس‌های احراز هویت شده با APIها را سریع انجام می‌دهند و نیازی نیست نگران تبادل کد برای توکن‌ها باشید.

مثلا:
 @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();
   ...
 }
Google Client Library برای کلاس‌های کمکی مخصوص اندروید جاوا به خوبی با Android AccountManager ادغام شده است. مثلا:
 @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();
 }
اگر از کتابخانه تولید شده استفاده نمی‌کنید، می‌توانید باینری را برای Google API Client Library برای جاوا مستقیماً از صفحه دانلودها دانلود کنید ، یا می‌توانید از Maven یا Gradle استفاده کنید. برای استفاده از Maven، خطوط زیر را به فایل pom.xml خود اضافه کنید:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

برای استفاده از Gradle، خطوط زیر را به فایل build.gradle خود اضافه کنید:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
برای جزئیات بیشتر درباره نصب و راه‌اندازی Google API Client Library برای جاوا، دستورالعمل‌های دانلود و راه‌اندازی را ببینید.
Google API Client Library برای جاوا از این محیط های جاوا پشتیبانی می کند:
  • جاوا 7 یا بالاتر، استاندارد (SE) و سازمانی (EE).
  • موتور برنامه گوگل
  • Android نسخه 4.4 یا بالاتر — اما اگر یک کتابخانه خدمات Google Play برای سرویس Google مورد نیاز شما در دسترس است، به جای این کتابخانه از آن کتابخانه استفاده کنید. کتابخانه Google Play بهترین عملکرد و تجربه ممکن را در اختیار شما قرار می دهد.
پشتیبانی نمی شود: Google Web Toolkit (GWT)، جاوا موبایل (ME) و Java 6 (یا قبل از آن).

وابستگی ها

Google API Client Library برای جاوا (google-api-java-client) بر روی دو کتابخانه رایج ساخته شده است که توسط Google نیز ساخته شده است و برای کار با هر سرویس HTTP در وب طراحی شده است: