بدء استخدام Java

إنشاء تطبيق يستند إلى أسطر الأوامر بلغة Java ويرسل طلبات إلى People API

توضّح أدلة التشغيل السريع كيفية إعداد تطبيق وتشغيله لاستدعاء Google Workspace API. يستخدم دليل التشغيل السريع هذا طريقة مصادقة مبسطة مناسبة لبيئة الاختبار. بالنسبة إلى بيئة الإنتاج، ننصحك بالتعرّف على المصادقة والتفويض قبل اختيار بيانات الاعتماد المناسبة لتطبيقك.

يستخدم دليل التشغيل السريع هذا مكتبات عملاء واجهة برمجة التطبيقات المقترَحة من Google Workspace للتعامل مع بعض تفاصيل عملية المصادقة والتفويض.

الأهداف

  • إعداد البيئة
  • إعداد العيّنة
  • تشغيل العيّنة

المتطلبات الأساسية

إعداد البيئة

لإكمال دليل التشغيل السريع هذا، عليك إعداد البيئة.

تفعيل واجهة برمجة التطبيقات

قبل استخدام Google APIs، عليك تفعيلها في مشروع على Google Cloud. يمكنك تفعيل واجهة برمجة تطبيقات واحدة أو أكثر في مشروع واحد على Google Cloud.

إذا كنت تستخدم مشروعًا جديدًا على Google Cloud لإكمال دليل التشغيل السريع هذا، عليك ضبط شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth. إذا سبق لك إكمال هذه الخطوة لمشروعك على السحابة الإلكترونية، فانتقل إلى القسم التالي.

  1. في Google API Console، انتقِل إلى "القائمة" > منصة Google للمصادقة > العلامة التجارية.

    الانتقال إلى العلامة التجارية

  2. إذا سبق لك ضبط "منصة Google للمصادقة"، يمكنك ضبط إعدادات شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth التالية في العلامة التجارية والجمهور والوصول إلى البيانات. إذا ظهرت لك رسالة لم يتم ضبط "منصة Google للمصادقة" بعد، انقر على البدء:
    1. ضمن معلومات التطبيق، في اسم التطبيق، أدخِل اسمًا للتطبيق.
    2. في البريد الإلكتروني لدعم المستخدمين، اختَر عنوان بريد إلكتروني للدعم يمكن للمستخدمين التواصل معك من خلاله إذا كانت لديهم أسئلة حول موافقتهم.
    3. انقر على التالي.
    4. ضمن الجمهور، اختَر داخلي.
    5. انقر على التالي.
    6. ضمن معلومات الاتصال ، أدخِل عنوان بريد إلكتروني يمكن إعلامك من خلاله بأي تغييرات تطرأ على مشروعك.
    7. انقر على التالي.
    8. ضمن إنهاء، راجِع سياسة بيانات المستخدمين في خدمات Google API، وإذا كنت موافقًا عليها، ضَع علامة في المربّع أوافق على سياسة بيانات المستخدمين في خدمات Google API.
    9. انقر على متابعة.
    10. انقر على إنشاء.
  3. يمكنك في الوقت الحالي تخطّي إضافة النطاقات. في المستقبل، عند إنشاء تطبيق لاستخدامه خارج مؤسسة Google Workspace، عليك تغيير نوع المستخدم إلى خارجي. بعد ذلك، أضِف نطاقات التفويض التي يتطلبها تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على دليل ضبط الموافقة على OAuth الكامل .

السماح ببيانات اعتماد لتطبيق على الكمبيوتر

لمصادقة المستخدمين النهائيين والوصول إلى بيانات المستخدمين في تطبيقك، عليك إنشاء معرّف عميل واحد أو أكثر لبروتوكول OAuth 2.0. يُستخدم معرّف العميل لتعريف تطبيق واحد على خوادم OAuth من Google. إذا كان تطبيقك يعمل على منصات متعددة، عليك إنشاء معرّف عميل منفصل لكل منصة.
  1. في Google Cloud Console، انتقِل إلى "القائمة" > منصة Google للمصادقة > العملاء.

    الانتقال إلى العملاء

  2. انقر على إنشاء عميل.
  3. انقر على نوع التطبيق > تطبيق متوافق مع الكمبيوتر المكتبي.
  4. في حقل الاسم ، اكتب اسمًا لبيانات الاعتماد. لا يظهر هذا الاسم إلا في Google Cloud Console.
  5. اختياري: إذا كان تطبيقك وكيل ذكاء اصطناعي يتّخذ إجراءات نيابةً عن المستخدمين، اختَر استخدام هذا العميل لوكيل يستند إلى الذكاء الاصطناعي. إذا كان تطبيقك يتيح سير عمل وكيل الذكاء الاصطناعي وميزات المستخدم العادية، أنشِئ عملاء منفصلين لبروتوكول OAuth لكل منهما. لا يمكنك تغيير هذا الإعداد بعد إنشاء العميل.
  6. انقر على إنشاء.

    تظهر بيانات الاعتماد التي تم إنشاؤها حديثًا ضمن "معرّفات عملاء OAuth 2.0".

  7. احفظ ملف JSON الذي تم تنزيله باسم credentials.json وانقِل الملف إلى دليل العمل.

إعداد مساحة العمل

  1. في دليل العمل، أنشِئ بنية مشروع جديدة:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. في الدليل src/main/resources/، انسخ ملف credentials.json الذي سبق لك تنزيله.

  3. افتح ملف build.gradle التلقائي واستبدِل محتوياته بالرمز التالي:

    people/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'PeopleQuickstart'
    sourceCompatibility = 11
    targetCompatibility = 11
    
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'com.google.api-client:google-api-client:2.0.0'
        implementation 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
        implementation 'com.google.apis:google-api-services-people:v1-rev20220531-2.0.0'
    }

إعداد العيّنة

  1. في الدليل src/main/java/، أنشِئ ملف Java جديدًا باسم يطابق قيمة mainClassName في ملف build.gradle.

  2. أدرِج الرمز التالي في ملف Java الجديد:

    people/quickstart/src/main/java/PeopleQuickstart.java
    import com.google.api.client.auth.oauth2.Credential;
    import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
    import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
    import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
    import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
    import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    import com.google.api.client.http.javanet.NetHttpTransport;
    import com.google.api.client.json.JsonFactory;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    import com.google.api.services.people.v1.PeopleService;
    import com.google.api.services.people.v1.PeopleServiceScopes;
    import com.google.api.services.people.v1.model.ListConnectionsResponse;
    import com.google.api.services.people.v1.model.Name;
    import com.google.api.services.people.v1.model.Person;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.security.GeneralSecurityException;
    import java.util.Arrays;
    import java.util.List;
    
    public class PeopleQuickstart {
      private static final String APPLICATION_NAME = "Google People API Java Quickstart";
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
      private static final String TOKENS_DIRECTORY_PATH = "tokens";
    
      /**
       * Global instance of the scopes required by this quickstart.
       * If modifying these scopes, delete your previously saved tokens/ folder.
       */
      private static final List<String> SCOPES = Arrays.asList(PeopleServiceScopes.CONTACTS_READONLY);
      private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
    
      /**
       * Creates an authorized Credential object.
       *
       * @param HTTP_TRANSPORT The network HTTP Transport.
       * @return An authorized Credential object.
       * @throws IOException If the credentials.json file cannot be found.
       */
      private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT)
          throws IOException {
        // Load client secrets.
        InputStream in = PeopleQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
        if (in == null) {
          throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
        }
        GoogleClientSecrets clientSecrets =
            GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
    
        // Build flow and trigger user authorization request.
        GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
            .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
            .setAccessType("offline")
            .build();
        LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
        return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
      }
    
      public static void main(String... args) throws IOException, GeneralSecurityException {
        // Build a new authorized API client service.
        final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
        PeopleService service =
            new PeopleService.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        // Request 10 connections.
        ListConnectionsResponse response = service.people().connections()
            .list("people/me")
            .setPageSize(10)
            .setPersonFields("names,emailAddresses")
            .execute();
    
        // Print display name of connections if available.
        List<Person> connections = response.getConnections();
        if (connections != null && connections.size() > 0) {
          for (Person person : connections) {
            List<Name> names = person.getNames();
            if (names != null && names.size() > 0) {
              System.out.println("Name: " + person.getNames().get(0)
                  .getDisplayName());
            } else {
              System.out.println("No names available for connection.");
            }
          }
        } else {
          System.out.println("No connections found.");
        }
      }
    }

تشغيل العيّنة

  1. شغِّل العيّنة:

    gradle run
    
  1. في المرة الأولى التي تشغِّل فيها العيّنة، سيُطلب منك السماح بالوصول:
    1. إذا لم تكن مسجِّلاً الدخول إلى حسابك على Google، سجِّل الدخول عندما يُطلب منك ذلك. إذا كنت مسجِّلاً الدخول إلى حسابات متعددة، اختَر حسابًا واحدًا لاستخدامه في التفويض.
    2. انقر على حسنًا.

    يتم تشغيل تطبيق Java ويستدعي People API.

    يتم تخزين معلومات التفويض في نظام الملفات، لذا لن يُطلب منك التفويض في المرة التالية التي تشغِّل فيها رمز العيّنة.

الخطوات التالية