الوصول إلى Google APIs بسهولة من Java

إنّ "مكتبة برامج Google API" للغة Java توفّر وظائف شائعة في جميع Google APIs، مثل نقل HTTP ومعالجة الأخطاء والمصادقة وتحليل JSON وتنزيل الوسائط/تحميلها المجمّع. تتضمّن المكتبة مكتبة OAuth 2.0 فعّالة مع واجهة متسقة، ونماذج بيانات XML وJSON خفيفة وفعّالة تتوافق مع أي مخطط بيانات، وتوفر مخازن البروتوكولات المؤقتة.

لاستدعاء واجهة برمجة تطبيقات Google باستخدام مكتبات عملاء Google's للغة Java، تحتاج إلى مكتبة Java التي تم إنشاؤها لواجهة برمجة تطبيقات Google التي تصل إليها. وتتضمن هذه المكتبات التي تم إنشاؤها مكتبة google-api-java-client الأساسية إلى جانب معلومات خاصة بواجهة برمجة التطبيقات، مثل عنوان URL الجذر. كما تتضمّن أيضًا الفئات التي تمثّل الكيانات في سياق واجهة برمجة التطبيقات، والتي تكون مفيدة لإجراء الإحالات الناجحة بين كائنات JSON وكائنات Java.
إنّ الميزات التي تحمل علامة @إصدار تجريبي على مستوى الفئة أو الطريقة عرضة للتغيير. قد يتم تعديلها أو إزالتها في أي إصدار رئيسي. يجب عدم استخدام الميزات التجريبية إذا كان الرمز البرمجي عبارة عن مكتبة نفسها (أي إذا تم استخدام الرمز في ClassPATH للمستخدمين خارج نطاق سيطرتك).
وستتم إزالة الميزات غير التجريبية التي تم إيقافها نهائيًا بعد ثمانية عشر شهرًا من تاريخ الإصدار الذي تم إيقافها فيه لأول مرة. عليك إصلاح حالات الاستخدام قبل هذا الوقت. وإذا لم تفعل ذلك، قد ينتج أي نوع من الأعطال، ولا يمكنك ضمان حدوث خطأ في التحويل البرمجي.

أبرز النقاط في مكتبة برامج Google API للغة Java

يمكنك استدعاء واجهات Google APIs باستخدام المكتبات التي تم إنشاؤها خصيصًا لخدمة Google باستخدام مكتبة برامج Google API للغة Java. (للعثور على مكتبة العميل التي تم إنشاؤها لواجهة برمجة تطبيقات Google، انتقِل إلى قائمة واجهات برمجة تطبيقات Google المتوافقة). في ما يلي مثال يستخدم مكتبة برامج واجهة برمجة تطبيقات التقويم للغة Java لإجراء اتصال بواجهة برمجة تطبيقات "تقويم Google":
 // 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 على تنفيذ الطلبات التي تمت المصادقة عليها إلى واجهات برمجة التطبيقات، ولا داعي للقلق بشأن تبادل الرموز المميزة مع الرموز المميزة.

على سبيل المثال:
 @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();
   ...
 }
إنّ فئات المساعدة الخاصة بنظام التشغيل Android في "مكتبة برامج Google للعملاء" من Java مدمجة بشكل جيد مع 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 للغة Java مباشرةً من صفحة عمليات التنزيل، أو يمكنك استخدام 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، أضِف الأسطر التالية إلى ملف create.gradle:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
لمزيد من التفاصيل حول تثبيت واجهة Google API وإعدادها مكتبة العملاء لـ Java، راجع تنزيل وتعليمات الإعداد.
تتوافق مكتبة برامج Google API للغة Java مع بيئات جافا التالية:
  • الإصدار 7 أو أعلى من الإصدار العادي (SE) والإصدار Enterprise (EE).
  • Google App Engine
  • الإصدار 4.4 من نظام Android أو الإصدارات الأحدث، ولكن في حال توفّر مكتبة خدمات Google Play لخدمة Google التي تحتاجها، يمكنك استخدام تلك المكتبة بدلاً من هذه المكتبة. تقدم لك مكتبة Google Play أفضل أداء وأفضل تجربة ممكنة.
غير متوافق: مجموعة أدوات الويب من Google (GWT) وJava mobile (ME) وJava 6 (أو الإصدارات الأقدم).

التبعيات

تمّ إنشاء مكتبة برامج Google API للغة Java (google-api-java-client) فوق مكتبتين شائعتين، أنشأتهما Google أيضًا، وهي مصممة للعمل مع أي خدمة من خدمات HTTP على الويب: