شروع سریع جاوا

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

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

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

اهداف اصلی

  • محیط خود را راه‌اندازی کنید.
  • نمونه را راه‌اندازی کنید.
  • نمونه را اجرا کنید.

پیش‌نیازها

  • دامنه Google Workspace با دسترسی API فعال.
  • یک «حساب Google» در آن دامنه با امتیازهای سرپرست.

راه‌اندازی محیط

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

فعال کردن میانای برنامه‌سازی کاربردی

قبل‌از استفاده از «میاناهای برنامه‌سازی کاربردی Google»، باید آن‌ها را در پروژه Google Cloud روشن کنید. می‌توانید یک یا چند میانای برنامه‌سازی کاربردی را در یک پروژه Google Cloud روشن کنید.

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

  1. در «کنسول Google API»، به «منو» > پلاتفرم Google Auth > نمانام‌سازی بروید.

    رفتن به نمانام‌سازی

  2. اگر قبلاً پلاتفرم Google Auth را پیکربندی کرده‌اید، می‌توانید تنظیمات «صفحه رضایت 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»، به «منو» > پلاتفرم Google Auth > کاربران بروید.

    رفتن به «مشتریان»

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

    adminSDK/directory/quickstart/build.gradle
    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'AdminSDKDirectoryQuickstart'
    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-admin-directory:directory_v1-rev20220919-2.0.0'
    }

راه‌اندازی نمونه

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

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

    adminSDK/directory/quickstart/src/main/java/AdminSDKDirectoryQuickstart.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.directory.Directory;
    import com.google.api.services.directory.DirectoryScopes;
    import com.google.api.services.directory.model.User;
    import com.google.api.services.directory.model.Users;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.security.GeneralSecurityException;
    import java.util.Collections;
    import java.util.List;
    
    public class AdminSDKDirectoryQuickstart {
      /**
       * Application name.
       */
      private static final String APPLICATION_NAME = "Google Admin SDK Directory API Java Quickstart";
      /**
       * Global instance of the JSON factory.
       */
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
      /**
       * Directory to store authorization tokens for this application.
       */
      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 =
          Collections.singletonList(DirectoryScopes.ADMIN_DIRECTORY_USER_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 = AdminSDKDirectoryQuickstart.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();
        Directory service =
            new Directory.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        // Print the first 10 users in the domain.
        Users result = service.users().list()
            .setCustomer("my_customer")
            .setMaxResults(10)
            .setOrderBy("email")
            .execute();
        List<User> users = result.getUsers();
        if (users == null || users.size() == 0) {
          System.out.println("No users found.");
        } else {
          System.out.println("Users:");
          for (User user : users) {
            System.out.println(user.getName().getFullName());
          }
        }
      }
    }

اجرای نمونه

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

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

    برنامه Java شما اجرا می‌شود و «میانای برنامه‌سازی کاربردی Directory» را فراخوانی می‌کند.

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

مراحل بعدی