الوصول إلى 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 API، انتقِل إلى قائمة واجهات Google APIs المتوافقة.) في ما يلي مثال يستخدم مكتبة برامج واجهة برمجة تطبيقات التقويم للغة 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();
   ...
 }
تندمج مكتبة برامج Google لفئات المساعدة الخاصة بنظام Android في Java بشكلٍ جيد مع مدير حساب Android. مثال:
 @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 للغة 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، أضِف الأسطر التالية إلى ملفbuild.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 على الويب: