البدء السريع بلغة Java

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

توضح Quickstarts كيفية إعداد وتشغيل تطبيق يستدعي واجهة برمجة تطبيقات Google Workspace.

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

يمكنك إنشاء تطبيق سطر أوامر جافا الذي يقدم طلبات إلى واجهة برمجة التطبيقات لبرمجة Google Apps.

الأهداف

  • إعداد البيئة.
  • إعداد النموذج.
  • شغّل النموذج.

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

  • حساب Google تم تمكين Google Drive به.

إعداد البيئة

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

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

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

تفويض بيانات الاعتماد لتطبيق سطح المكتب

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

    الانتقال إلى بيانات الاعتماد

  2. انقر على إنشاء بيانات اعتماد > معرِّف عميل OAuth.
  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 التلقائي واستبدل محتوياته بالرمز التالي:

    appsScript/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'AppsScriptQuickstart'
    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-script:v1-rev20220323-2.0.0'
    }
    

إعداد النموذج

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

  2. أدرج الشفرة التالية في ملف جافا الجديد:

    appsScript/quickstart/src/main/java/AppsScriptQuickstart.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.script.Script;
    import com.google.api.services.script.model.Content;
    import com.google.api.services.script.model.CreateProjectRequest;
    import com.google.api.services.script.model.File;
    import com.google.api.services.script.model.Project;
    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.Collections;
    import java.util.List;
    
    public class AppsScriptQuickstart {
      private static final String APPLICATION_NAME = "Apps Script 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 credentials folder at /secret.
       */
      private static final List<String> SCOPES =
          Collections.singletonList("https://www.googleapis.com/auth/script.projects");
      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 = AppsScriptQuickstart.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();
        Script service =
            new Script.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
        Script.Projects projects = service.projects();
    
        // Creates a new script project.
        Project createOp = projects.create(new CreateProjectRequest().setTitle("My Script")).execute();
    
        // Uploads two files to the project.
        File file1 = new File()
            .setName("hello")
            .setType("SERVER_JS")
            .setSource("function helloWorld() {\n  console.log(\"Hello, world!\");\n}");
        File file2 = new File()
            .setName("appsscript")
            .setType("JSON")
            .setSource("{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}");
        Content content = new Content().setFiles(Arrays.asList(file1, file2));
        Content updatedContent = projects.updateContent(createOp.getScriptId(), content).execute();
    
        // Logs the project URL.
        System.out.printf("https://script.google.com/d/%s/edit\n", updatedContent.getScriptId());
      }
    }

تشغيل النموذج

  1. شغّل النموذج:

    gradle run
    
  2. عند تشغيل النموذج لأول مرة، سيطلب منك تفويض الوصول:

    1. إذا لم تكن قد سجلت الدخول إلى حسابك في Google من قبل، فسيُطلب منك تسجيل الدخول. إذا كنت قد سجلت الدخول إلى حسابات متعددة، فحدد حسابًا واحدًا لاستخدامه للتفويض.
    2. انقر على قبول.

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

لقد أنشأت بنجاح أول تطبيق جافا لديك يقدم طلبات إلى Google Apps Script API.

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