자바 빠른 시작

빠른 시작에서는 Google Workspace API

Google Workspace 빠른 시작에서는 API 클라이언트 라이브러리를 사용하여 인증 및 승인 흐름의 세부 정보를 확인하세요. 따라서 자체 앱에 클라이언트 라이브러리를 사용합니다. 이 빠른 시작에서는 테스트에 적합한 간소화된 인증 접근 방식 환경입니다 프로덕션 환경의 경우 인증 및 승인 이전 액세스 사용자 인증 정보 선택 선택할 수 있습니다.

Google Keep API에 요청하는 Java 명령줄 애플리케이션을 만듭니다.

목표

  • 환경을 설정합니다.
  • 샘플을 설정합니다.
  • 샘플을 실행합니다.

기본 요건

  • Google Keep이 사용 설정된 Google 계정

환경 설정

이 빠른 시작을 완료하려면 환경을 설정하세요.

API 사용 설정

Google API를 사용하려면 먼저 Google Cloud 프로젝트에서 사용 설정해야 합니다. 단일 Google Cloud 프로젝트에서 하나 이상의 API를 사용 설정할 수 있습니다.
  • Google Cloud 콘솔에서 Google Keep API를 사용 설정합니다.

    API 사용 설정

서비스 계정 만들기

서비스 계정은 애플리케이션이 아닌 더 클 수 있습니다. 서비스 계정을 사용하여 데이터에 액세스하거나 작업을 수행할 수 있습니다. Google Workspace를 대신하여 데이터에 액세스하는 행위 액세스할 수 있습니다 자세한 내용은 서비스 계정 이해를 참조하세요.

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 메뉴 로 이동합니다. > IAM 및 관리자 > 서비스 계정으로 이동합니다.

    서비스 계정으로 이동

  2. 서비스 계정 만들기를 클릭합니다.
  3. 서비스 계정 세부정보를 입력한 다음 만들고 계속하기를 클릭합니다.
  4. 선택사항: 서비스 계정에 역할을 할당하여 Google Cloud 프로젝트의 리소스에 대한 액세스 권한을 부여합니다. 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.
  5. 계속을 클릭합니다.
  6. 선택사항: 이 서비스 계정으로 관리하고 작업을 수행할 수 있는 사용자 또는 그룹을 입력합니다. 자세한 내용은 서비스 계정 가장 기능 관리를 참고하세요.
  7. 완료를 클릭합니다. 서비스 계정의 이메일 주소를 기록해 둡니다.

gcloud CLI

  1. 서비스 계정을 만듭니다.
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. 선택사항: 서비스 계정에 역할을 할당하여 Google Cloud 프로젝트의 리소스에 대한 액세스 권한을 부여합니다. 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

서비스 계정의 사용자 인증 정보 만들기

공개 키/비공개 키 쌍 형식의 사용자 인증 정보를 얻어야 합니다. 이러한 사용자 인증 정보는 코드에서 서비스 계정 작업을 승인하는 데 사용됩니다. 있습니다. <ph type="x-smartling-placeholder">
    </ph>
  1. Google Cloud 콘솔에서 메뉴 로 이동합니다. &gt; IAM 및 관리자 &gt; 서비스 계정으로 이동합니다.

    서비스 계정으로 이동

  2. 서비스 계정을 선택합니다.
  3. &gt; 키 추가 &gt; 새 키 만들기를 클릭합니다.
  4. JSON을 선택한 다음 만들기를 클릭합니다.

    새 공개/비공개 키 쌍이 생성되어 머신을 새 파일로 저장합니다. 다운로드한 JSON 파일을 credentials.json로 작업 디렉터리에 있습니다 이 파일은 이 키의 유일한 사본입니다. 스토리지, 앱, 이미지, 데이터 및 안전하게 보관하려면 서비스 계정 키 관리.

  5. 닫기를 클릭합니다.

서비스 계정에 도메인 전체 위임 설정

Google Workspace 조직의 사용자를 대신하여 API를 호출하려면 다음 안내를 따르세요. 서비스 계정에 Google Workspace 관리 콘솔에 액세스할 수 없습니다. 자세한 내용은 자세한 내용은 서비스 계정에 도메인 전체 권한 위임.
  1. Google Cloud 콘솔에서 메뉴 로 이동합니다. &gt; IAM 및 관리자 &gt; 서비스 계정으로 이동합니다.

    서비스 계정으로 이동

  2. 서비스 계정을 선택합니다.
  3. 고급 설정 표시를 클릭합니다.
  4. '도메인 전체 위임' 아래에서 서비스 계정의 '클라이언트 ID'를 찾습니다 복사 를 클릭하여 클라이언트 ID 값을 클립보드에 복사합니다.
  5. 관련 Google Workspace 계정에 대한 최고 관리자 액세스 권한이 있는 경우 Google Workspace 관리 콘솔을 확인한 후 최고 관리자를 사용하여 로그인합니다. 계정에 로그인하고 다음 단계를 계속 진행합니다.

    관련 Google Workspace 계정에 대한 최고 관리자 액세스 권한이 없는 경우 해당 계정의 최고 관리자에게 문의하여 서비스 계정의 클라이언트 ID 전송 및 OAuth 범위 목록을 표시하여 관리 콘솔에서 다음 단계를 완료할 수 있도록 합니다.

    1. Google 관리 콘솔에서 메뉴 로 이동합니다. &gt; 보안 &gt; 액세스 및 데이터 관리 &gt; API 관리로 이동합니다.

      API 컨트롤로 이동

    2. 도메인 전체 위임 관리를 클릭합니다.
    3. 새로 추가를 클릭합니다.
    4. '클라이언트 ID' 입력란에 이전에 복사한 클라이언트 ID를 붙여넣습니다.
    5. 'OAuth 범위'에서 필드에 애플리케이션에 필요한 범위를 쉼표로 구분된 목록으로 입력합니다. 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/ 디렉터리에서 다음과 같은 이름의 새 자바 파일을 만듭니다. build.gradle 파일의 mainClassName 값과 일치합니다.

  2. 새 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.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. 샘플을 처음 실행하면 액세스를 승인하라는 메시지가 표시됩니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 아직 Google 계정에 로그인하지 않은 경우 메시지가 표시되면 로그인합니다. 만약 여러 계정에 로그인한 경우 승인에 사용할 계정 1개를 선택하세요.
    2. 수락을 클릭합니다.

    Java 애플리케이션이 실행되고 Google Keep API를 호출합니다.

    승인 정보는 파일 시스템에 저장되므로 다음에 샘플을 실행할 때 승인하라는 메시지가 표시되지 않습니다.

다음 단계