راه اندازی سریع جاوا

یک برنامه خط فرمان جاوا ایجاد کنید که درخواست‌هایی را به API گوگل والت ارسال کند.

آموزش‌های سریع، نحوه راه‌اندازی و اجرای برنامه‌ای که API گوگل ورک‌اسپیس را فراخوانی می‌کند، توضیح می‌دهند. این آموزش سریع از یک رویکرد احراز هویت ساده‌شده استفاده می‌کند که برای محیط آزمایشی مناسب است. برای محیط عملیاتی، توصیه می‌کنیم قبل از انتخاب اعتبارنامه‌های دسترسی مناسب برای برنامه خود، در مورد احراز هویت و مجوزدهی اطلاعات کسب کنید.

این راهنمای سریع از کتابخانه‌های کلاینت API پیشنهادی Google Workspace برای مدیریت برخی از جزئیات جریان احراز هویت و مجوز استفاده می‌کند.

اهداف

  • محیط خود را تنظیم کنید.
  • نمونه را تنظیم کنید.
  • نمونه را اجرا کنید.

پیش‌نیازها

  • یک حساب گوگل.

محیط خود را تنظیم کنید

برای تکمیل این شروع سریع، محیط خود را راه‌اندازی کنید.

فعال کردن API

قبل از استفاده از APIهای گوگل، باید آنها را در یک پروژه گوگل کلود فعال کنید. می‌توانید یک یا چند API را در یک پروژه گوگل کلود فعال کنید.
  • در کنسول گوگل کلود، رابط برنامه‌نویسی کاربردی گوگل والت (Google Vault API) را فعال کنید.

    فعال کردن API

اگر از یک پروژه جدید Google Cloud برای تکمیل این راهنمای سریع استفاده می‌کنید، صفحه رضایت OAuth را پیکربندی کنید. اگر قبلاً این مرحله را برای پروژه Cloud خود انجام داده‌اید، به بخش بعدی بروید.

  1. در کنسول گوگل کلود، به Menu > برویدGoogle Auth platform > برندسازی .

    به بخش برندسازی بروید

  2. اگر قبلاً تنظیمات را انجام داده‌اید Google Auth platformمی‌توانید تنظیمات صفحه رضایت OAuth زیر را در Branding ، Audience و Data Access پیکربندی کنید. اگر پیامی با این مضمون مشاهده کردید Google Auth platform هنوز پیکربندی نشده است ، روی شروع کار کلیک کنید:
    1. در قسمت اطلاعات برنامه ، در قسمت نام برنامه ، نامی برای برنامه وارد کنید.
    2. در ایمیل پشتیبانی کاربر ، یک آدرس ایمیل پشتیبانی انتخاب کنید که کاربران در صورت داشتن هرگونه سوال در مورد رضایت خود بتوانند با شما تماس بگیرند.
    3. روی بعدی کلیک کنید.
    4. در قسمت مخاطبان ، داخلی (Internal) را انتخاب کنید.
    5. روی بعدی کلیک کنید.
    6. در قسمت اطلاعات تماس ، یک آدرس ایمیل وارد کنید که از طریق آن بتوانید از هرگونه تغییر در پروژه خود مطلع شوید.
    7. روی بعدی کلیک کنید.
    8. در قسمت Finish ، سیاست داده‌های کاربر سرویس‌های API گوگل را مرور کنید و در صورت موافقت، گزینه «من با سیاست‌های داده‌های کاربر سرویس‌های API گوگل موافقم» را انتخاب کنید.
    9. روی ادامه کلیک کنید.
    10. روی ایجاد کلیک کنید.
  3. فعلاً می‌توانید از اضافه کردن محدوده‌ها صرف نظر کنید. در آینده، وقتی برنامه‌ای برای استفاده در خارج از سازمان Google Workspace خود ایجاد می‌کنید، باید نوع کاربر (User type) را به خارجی (External) تغییر دهید. سپس محدوده‌های مجوز مورد نیاز برنامه خود را اضافه کنید. برای کسب اطلاعات بیشتر، به راهنمای کامل پیکربندی رضایت OAuth مراجعه کنید.

اعتبارنامه‌ها را برای یک برنامه دسکتاپ تأیید کنید

برای احراز هویت کاربران نهایی و دسترسی به داده‌های کاربر در برنامه خود، باید یک یا چند شناسه کلاینت OAuth 2.0 ایجاد کنید. شناسه کلاینت برای شناسایی یک برنامه واحد به سرورهای OAuth گوگل استفاده می‌شود. اگر برنامه شما روی چندین پلتفرم اجرا می‌شود، باید برای هر پلتفرم یک شناسه کلاینت جداگانه ایجاد کنید.
  1. در کنسول گوگل کلود، به Menu > برویدGoogle Auth platform > مشتریان .

    به بخش مشتریان بروید

  2. روی ایجاد کلاینت کلیک کنید.
  3. روی نوع برنامه > برنامه دسکتاپ کلیک کنید.
  4. در فیلد نام ، نامی برای اعتبارنامه تایپ کنید. این نام فقط در کنسول Google Cloud نمایش داده می‌شود.
  5. روی ایجاد کلیک کنید.

    اعتبارنامه‌ی تازه ایجاد شده در زیر «OAuth 2.0 Client IDs» ظاهر می‌شود.

  6. فایل 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 را باز کنید و محتویات آن را با کد زیر جایگزین کنید:

    vault/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'Quickstart'
    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-vault:v1-rev20220423-2.0.0'
    }

نمونه را تنظیم کنید

  1. در پوشه src/main/java/ ، یک فایل جاوا جدید با نامی مطابق با مقدار mainClassName در فایل build.gradle خود ایجاد کنید.

  2. کد زیر را در فایل جاوای جدید خود قرار دهید:

    vault/quickstart/src/main/java/Quickstart.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.HttpTransport;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.client.json.JsonFactory;
    import com.google.api.client.util.store.FileDataStoreFactory;
    import com.google.api.services.vault.v1.VaultScopes;
    import com.google.api.services.vault.v1.model.*;
    import com.google.api.services.vault.v1.Vault;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    import java.util.List;
    
    public class Quickstart {
      /**
       * Application name.
       */
      private static final String APPLICATION_NAME =
          "Google Vault API Java Quickstart";
    
      /**
       * Directory to store authorization tokens for this application.
       */
      private static final java.io.File DATA_STORE_DIR = new java.io.File("tokens");
      /**
       * Global instance of the JSON factory.
       */
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
      private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
      /**
       * Global instance of the scopes required by this quickstart.
       * <p>
       * If modifying these scopes, delete your previously saved credentials
       * at ~/.credentials/vault.googleapis.com-java-quickstart
       */
      private static final List<String> SCOPES =
          Arrays.asList(VaultScopes.EDISCOVERY_READONLY);
      /**
       * Global instance of the {@link FileDataStoreFactory}.
       */
      private static FileDataStoreFactory DATA_STORE_FACTORY;
      /**
       * Global instance of the HTTP transport.
       */
      private static HttpTransport HTTP_TRANSPORT;
    
      static {
        try {
          HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
          DATA_STORE_FACTORY = new FileDataStoreFactory(DATA_STORE_DIR);
        } catch (Throwable t) {
          t.printStackTrace();
          System.exit(1);
        }
      }
    
      /**
       * Creates an authorized Credential object.
       *
       * @return an authorized Credential object.
       * @throws IOException
       */
      public static Credential authorize() throws IOException {
        // Load client secrets.
        InputStream in =
            Quickstart.class.getResourceAsStream("/credentials.json");
        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(DATA_STORE_FACTORY)
                .setAccessType("offline")
                .build();
        Credential credential = new AuthorizationCodeInstalledApp(
            flow, new LocalServerReceiver()).authorize("user");
        System.out.println(
            "Credentials saved to " + DATA_STORE_DIR.getAbsolutePath());
        return credential;
      }
    
      /**
       * Build and return an authorized Vault client service.
       *
       * @return an authorized Vault client service
       * @throws IOException
       */
      public static Vault getVaultService() throws IOException {
        Credential credential = authorize();
        return new Vault.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
            .setApplicationName(APPLICATION_NAME)
            .build();
      }
    
      public static void main(String[] args) throws IOException {
        // Build a new authorized API client service.
        Vault service = getVaultService();
    
        // List the first 10 matters.
        ListMattersResponse response = service.matters().list()
            .setPageSize(10)
            .execute();
        List<Matter> matters = response.getMatters();
        if (matters == null || matters.size() == 0) {
          System.out.println("No matters found.");
          return;
        }
        System.out.println("Matters:");
        for (Matter matter : matters) {
          System.out.printf("%s (%s)\n", matter.getName(),
              matter.getMatterId());
        }
      }
    }

نمونه را اجرا کنید

  1. نمونه را اجرا کنید:

    gradle run
    
  1. اولین باری که نمونه را اجرا می‌کنید، از شما اجازه دسترسی می‌خواهد:
    1. اگر قبلاً وارد حساب گوگل خود نشده‌اید، در صورت درخواست وارد شوید. اگر با چندین حساب وارد شده‌اید، یک حساب را برای استفاده جهت مجوز انتخاب کنید.
    2. روی پذیرش کلیک کنید.

    برنامه جاوا شما اجرا می‌شود و API گوگل والت را فراخوانی می‌کند.

    اطلاعات مجوز در سیستم فایل ذخیره می‌شود، بنابراین دفعه بعد که کد نمونه را اجرا می‌کنید، از شما درخواست مجوز نمی‌شود.

مراحل بعدی