Panduan memulai Java

Panduan memulai menjelaskan cara menyiapkan dan menjalankan aplikasi yang memanggil Google Workspace API.

Panduan memulai Google Workspace menggunakan library klien API untuk menangani beberapa detail tentang alur otentikasi dan otorisasi. Sebaiknya Anda menggunakan library klien untuk aplikasi Anda sendiri. Panduan memulai ini menggunakan pendekatan otentikasi yang disederhanakan yang sesuai untuk pengujian lingkungan fleksibel App Engine. Untuk lingkungan produksi, sebaiknya pelajari tentang autentikasi dan otorisasi sebelum memilih kredensial akses yang sesuai untuk aplikasi Anda.

Membuat aplikasi command line Java yang membuat permintaan ke Google Keep API.

Tujuan

  • Menyiapkan lingkungan Anda.
  • Siapkan contoh.
  • Jalankan contoh.

Prasyarat

  • Akun Google dengan Google Keep yang diaktifkan.

Menyiapkan lingkungan Anda

Untuk menyelesaikan panduan memulai ini, siapkan lingkungan Anda.

Mengaktifkan API

Sebelum menggunakan Google API, Anda harus mengaktifkannya di project Google Cloud. Anda dapat mengaktifkan satu atau beberapa API dalam satu project Google Cloud.

Membuat akun layanan

Akun layanan adalah jenis akun khusus yang digunakan aplikasi, bukan dibandingkan manusia. Anda dapat menggunakan akun layanan untuk mengakses data atau melakukan tindakan oleh akun robot, atau untuk mengakses data atas nama Google Workspace atau Cloud Identity. Untuk informasi selengkapnya, lihat Memahami akun layanan.

Konsol Google Cloud

  1. Di konsol Google Cloud, buka Menu > IAM & Admin > Akun Layanan.

    Buka Akun Layanan

  2. Klik Create service account.
  3. Isi detail akun layanan, lalu klik Buat dan lanjutkan.
  4. Opsional: Tetapkan peran ke akun layanan Anda untuk memberikan akses ke resource project Google Cloud Anda. Untuk detail selengkapnya, lihat Memberikan, mengubah, dan mencabut akses ke resource.
  5. Klik Lanjutkan.
  6. Opsional: Masukkan pengguna atau grup yang dapat mengelola dan melakukan tindakan dengan akun layanan ini. Untuk mengetahui detail selengkapnya, lihat Mengelola peniruan akun layanan.
  7. Klik Selesai. Catat alamat email untuk akun layanan.

gcloud CLI

  1. Buat akun layanan:
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. Opsional: Tetapkan peran ke akun layanan Anda untuk memberikan akses ke resource project Google Cloud Anda. Untuk detail selengkapnya, lihat Memberikan, mengubah, dan mencabut akses ke resource.

Membuat kredensial untuk akun layanan

Anda perlu mendapatkan kredensial dalam bentuk pasangan kunci publik/pribadi. Ini kredensial digunakan oleh kode Anda untuk mengizinkan tindakan akun layanan dalam aplikasi Anda.
  1. Di konsol Google Cloud, buka Menu > IAM & Admin > Akun Layanan.

    Buka Akun Layanan

  2. Pilih akun layanan Anda.
  3. Klik Kunci > Tambahkan kunci > Buat kunci baru.
  4. Pilih JSON, lalu klik Buat.

    Pasangan kunci publik/pribadi baru Anda dibuat dan diunduh ke komputer sebagai file baru. Simpan file JSON yang didownload sebagai credentials.json di direktori kerja. File ini adalah satu-satunya salinan kunci ini. Untuk informasi tentang cara menyimpan kunci Anda dengan aman, lihat Mengelola kunci akun layanan.

  5. Klik Tutup.

Menyiapkan delegasi tingkat domain untuk akun layanan

Untuk memanggil API atas nama pengguna di organisasi Google Workspace, akun layanan Anda perlu diberi delegasi otoritas tingkat domain konsol Admin Google Workspace oleh akun administrator super. Untuk selengkapnya informasi, lihat Mendelegasikan otoritas di seluruh domain ke akun layanan.
  1. Di konsol Google Cloud, buka Menu > IAM & Admin > Akun Layanan.

    Buka Akun Layanan

  2. Pilih akun layanan Anda.
  3. Klik Tampilkan setelan lanjutan.
  4. Di bagian "Delegasi seluruh domain", temukan "Client ID" akun layanan Anda. Klik Salin untuk menyalin nilai client ID ke papan klip.
  5. Jika Anda memiliki akses administrator super ke akun Google Workspace yang relevan, klik Lihat Konsol Admin Google Workspace, lalu login menggunakan pengguna administrator super akun Anda dan lanjutkan dengan mengikuti langkah-langkah ini.

    Jika Anda tidak memiliki akses administrator super ke akun Google Workspace yang relevan, hubungi administrator super untuk akun tersebut dan kirimkan Client ID akun layanan Anda kepada mereka dan daftar Cakupan OAuth sehingga mereka dapat menyelesaikan langkah-langkah berikut di konsol Admin.

    1. Di konsol Google Admin, buka Menu > Keamanan > Kontrol data dan akses > Kontrol API.

      Buka kontrol API

    2. Klik Kelola Delegasi Tingkat Domain.
    3. Klik Tambahkan baru.
    4. Di "Client ID" tempel ID klien yang sebelumnya Anda salin.
    5. Di bagian "OAuth Scopes" , masukkan daftar cakupan yang dipisahkan koma yang diperlukan oleh aplikasi Anda. Cakupan ini adalah kumpulan cakupan yang sama dengan yang Anda tentukan saat mengonfigurasi layar izin OAuth.
    6. Klik Authorize.

Menyiapkan ruang kerja

  1. Dalam direktori kerja Anda, buat struktur project baru:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources 
    
  2. Di direktori src/main/resources/, salin file credentials.json yang telah didownload sebelumnya.

  3. Buka file build.gradle default dan ganti kontennya dengan kode berikut:

      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'
    }
    

Menyiapkan contoh

  1. Di direktori src/main/java/, buat file Java baru dengan nama yang cocok dengan nilai mainClassName di file build.gradle Anda.

  2. Sertakan kode berikut dalam file Java baru Anda:

    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();
      }
    }
    
    

Menjalankan contoh

  1. Jalankan contoh:

    gradle run
    
  1. Saat pertama kali menjalankan contoh, Anda akan diminta untuk mengizinkan akses:
    1. Jika Anda belum login ke Akun Google, login saat diminta. Jika Anda login ke beberapa akun, pilih satu akun yang akan digunakan untuk otorisasi.
    2. Klik Setuju.

    Aplikasi Java Anda menjalankan dan memanggil Google Keep API.

    Informasi otorisasi disimpan di sistem file, jadi saat berikutnya Anda menjalankan sampel kode, Anda tidak akan diminta untuk melakukan otorisasi.

Langkah berikutnya