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

Quickstarts نحوه راه‌اندازی و اجرای برنامه‌ای را توضیح می‌دهد که Google Workspace API را فراخوانی می‌کند.

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

یک برنامه خط فرمان جاوا ایجاد کنید که به API Google Keep درخواست می دهد.

اهداف

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

پیش نیازها

  • یک حساب Google با Google Keep فعال است.

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

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

API را فعال کنید

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

یک حساب کاربری ایجاد کنید

حساب سرویس نوع خاصی از حساب است که توسط یک برنامه کاربردی به جای یک شخص استفاده می شود. می‌توانید از یک حساب سرویس برای دسترسی به داده‌ها یا انجام اقدامات توسط حساب ربات یا برای دسترسی به داده‌ها از طرف Google Workspace یا Cloud Identity استفاده کنید. برای اطلاعات بیشتر، به درک حساب های خدمات مراجعه کنید.

کنسول Google Cloud

  1. در کنسول Google Cloud، به منو > IAM & Admin > حساب‌های سرویس بروید.

    به حساب های خدماتی بروید

  2. روی ایجاد حساب سرویس کلیک کنید.
  3. جزئیات حساب سرویس را پر کنید، سپس روی ایجاد و ادامه کلیک کنید.
  4. اختیاری: نقش هایی را به حساب سرویس خود اختصاص دهید تا به منابع پروژه Google Cloud خود دسترسی داشته باشید. برای جزئیات بیشتر، به اعطای، تغییر، و لغو دسترسی به منابع مراجعه کنید.
  5. روی Continue کلیک کنید.
  6. اختیاری: کاربران یا گروه‌هایی را وارد کنید که می‌توانند عملکردها را با این حساب سرویس مدیریت و انجام دهند. برای جزئیات بیشتر، به مدیریت جعل هویت حساب سرویس مراجعه کنید.
  7. روی Done کلیک کنید. آدرس ایمیل حساب سرویس را یادداشت کنید.

gcloud CLI

  1. ایجاد حساب سرویس:
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. اختیاری: نقش هایی را به حساب سرویس خود اختصاص دهید تا به منابع پروژه Google Cloud خود دسترسی داشته باشید. برای جزئیات بیشتر، به اعطای، تغییر، و لغو دسترسی به منابع مراجعه کنید.

اعتبارنامه برای یک حساب سرویس ایجاد کنید

شما باید اعتبارنامه را در قالب یک جفت کلید عمومی/خصوصی دریافت کنید. این اطلاعات کاربری توسط کد شما برای مجاز کردن فعالیت‌های حساب سرویس در برنامه شما استفاده می‌شود.
  1. در کنسول Google Cloud، به منو > IAM & Admin > حساب‌های سرویس بروید.

    به حساب های خدماتی بروید

  2. حساب سرویس خود را انتخاب کنید.
  3. روی کلیدها > افزودن کلید > ایجاد کلید جدید کلیک کنید.
  4. JSON را انتخاب کنید، سپس روی ایجاد کلیک کنید.

    جفت کلید عمومی/خصوصی جدید شما تولید شده و به عنوان یک فایل جدید در دستگاه شما دانلود می شود. فایل JSON دانلود شده را به عنوان credentials.json در فهرست کاری خود ذخیره کنید. این فایل تنها کپی این کلید است. برای اطلاعات در مورد نحوه ذخیره ایمن کلید خود، به مدیریت کلیدهای حساب سرویس مراجعه کنید.

  5. روی Close کلیک کنید.

تفویض اختیار در سطح دامنه را برای یک حساب سرویس تنظیم کنید

برای فراخوانی APIها از طرف کاربران در یک سازمان Google Workspace، حساب سرویس شما باید توسط یک حساب سرپرست فوق‌العاده در کنسول ادمین Google Workspace اختیاری در سراسر دامنه داشته باشد. برای اطلاعات بیشتر، به تفویض اختیارات دامنه به یک حساب سرویس مراجعه کنید.
  1. در کنسول Google Cloud، به منو > IAM & Admin > حساب‌های سرویس بروید.

    به حساب های خدماتی بروید

  2. حساب سرویس خود را انتخاب کنید.
  3. روی نمایش تنظیمات پیشرفته کلیک کنید.
  4. در بخش «تعویض در سطح دامنه»، «شناسه مشتری» حساب سرویس خود را پیدا کنید. برای کپی کردن مقدار شناسه مشتری در کلیپ بورد خود، روی Copy کلیک کنید.
  5. اگر دسترسی فوق‌العاده سرپرست به حساب Google Workspace مربوطه دارید، روی View Google Workspace Admin Console کلیک کنید، سپس با استفاده از یک حساب کاربری super administrator وارد سیستم شوید و این مراحل را دنبال کنید.

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

    1. در کنسول Google Admin، به منو > امنیت > کنترل دسترسی و داده > کنترل‌های API بروید.

      به کنترل های API بروید

    2. روی Manage Domain Wide Delegation کلیک کنید.
    3. روی افزودن جدید کلیک کنید.
    4. در قسمت «شناسه مشتری»، شناسه مشتری را که قبلاً کپی کرده‌اید، قرار دهید.
    5. در قسمت "OAuth Scopes"، فهرستی از محدوده های مورد نیاز برنامه خود را با کاما وارد کنید. این همان مجموعه دامنه‌هایی است که هنگام پیکربندی صفحه رضایت OAuth تعریف کردید.
    6. روی تأیید کلیک کنید.

فضای کار را آماده کنید

  1. در فهرست کاری خود، یک ساختار پروژه جدید ایجاد کنید:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. در دایرکتوری src/main/resources/ فایل credentials.json را که قبلا دانلود کرده اید کپی کنید.

  3. فایل پیش فرض build.gradle را باز کنید و محتوای آن را با کد زیر جایگزین کنید:

      apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'KeepQuickstart'
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    version = '1.0'
    
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'com.google.api-client:google-api-client:1.23.0'
        implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
        implementation 'com.google.apis:google-api-services-keep:v1-rev20210528-1.31.0'
    }
    

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

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

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

    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.keep.v1.Keep;
    import com.google.api.services.keep.v1.model.Note;
    import com.google.api.services.keep.v1.model.Section;
    import com.google.api.services.keep.v1.model.TextContent;
    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 KeepQuickstart {
    
      private static final String APPLICATION_NAME = "Google Keep API Java Quickstart";
      private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
    
      /**
       * Global instance of the scopes required by this quickstart. If modifying these scopes, delete
       * your previously saved tokens/ folder.
       */
      private static final List<String> KEEP_SCOPES =
          Collections.singletonList("https://www.googleapis.com/auth/keep");
    
      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
       */
      private static Credential getOAuthCredentials(final NetHttpTransport HTTP_TRANSPORT)
          throws IOException {
        // Load client secrets.
        InputStream in = KeepQuickstart.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, KEEP_SCOPES)
                .setDataStoreFactory(new FileDataStoreFactory(new java.io.File("tokens")))
                .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();
        Keep service =
            new Keep.Builder(HTTP_TRANSPORT, JSON_FACTORY, getOAuthCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    
        Section noteBody =
            new Section().setText(new TextContent().setText("Finish preparations by tomorrow!"));
        Note newNote = new Note().setTitle("Customer call next week").setBody(noteBody);
    
        // Creates a new text note.
        service.notes().create(newNote).execute();
      }
    }
    
    

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

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

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

    برنامه جاوا شما اجرا می شود و با Google Keep API تماس می گیرد.

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

مراحل بعدی