Panduan memulai Node.js

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 Node.js yang membuat permintaan ke API Google Chat.

Tujuan

  • Menyiapkan lingkungan Anda.
  • Instal library klien
  • Siapkan contoh.
  • Jalankan contoh.

Prasyarat

Untuk menjalankan panduan memulai ini, Anda memerlukan prasyarat berikut:

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.

Jika Anda menggunakan project Google Cloud baru untuk menyelesaikan panduan memulai ini, konfigurasikan layar izin OAuth dan menambahkan diri Anda sebagai pengguna uji coba. Jika Anda sudah menyelesaikan langkah ini untuk project Cloud Anda, lanjutkan ke bagian berikutnya.

  1. Di konsol Google Cloud, buka Menu > API & Layanan > Layar izin OAuth.

    Buka layar izin OAuth

  2. Untuk Jenis pengguna, pilih Internal, lalu klik Buat.
  3. Lengkapi formulir pendaftaran aplikasi, lalu klik Simpan dan Lanjutkan.
  4. Untuk saat ini, Anda dapat melewati penambahan cakupan, lalu mengklik Simpan dan Lanjutkan. Pada masa mendatang, jika Anda membuat aplikasi untuk digunakan di luar organisasi Google Workspace, Anda harus mengubah Jenis pengguna menjadi Eksternal, lalu menambahkan cakupan otorisasi yang dibutuhkan aplikasi Anda.

  5. Tinjau ringkasan pendaftaran aplikasi Anda. Untuk melakukan perubahan, klik Edit. Jika aplikasi pendaftaran tampak tidak bermasalah, klik Kembali ke Dasbor.

Memberi otorisasi kredensial untuk aplikasi desktop

Untuk mengautentikasi pengguna akhir dan mengakses data pengguna di aplikasi, Anda harus buat satu atau beberapa ID Klien OAuth 2.0. Client ID digunakan untuk mengidentifikasi aplikasi tunggal ke server OAuth Google. Jika aplikasi Anda berjalan di beberapa platform, Anda harus membuat ID klien terpisah untuk setiap platform.
  1. Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.

    Buka Kredensial

  2. Klik Create Credentials > OAuth client ID.
  3. Klik Jenis aplikasi > Aplikasi desktop.
  4. Di kolom Name, ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
  5. Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien Anda yang baru.
  6. Klik Oke. Kredensial yang baru dibuat akan muncul di bagian Client ID OAuth 2.0.
  7. Simpan file JSON yang didownload sebagai credentials.json, lalu pindahkan file ke direktori kerja Anda.

Mengonfigurasi aplikasi Google Chat

Untuk memanggil Google Chat API, Anda harus mengonfigurasi Aplikasi Google Chat. Untuk permintaan tulis apa pun, Google Chat mengatribusikan aplikasi Google Chat di UI menggunakan informasi berikut.

  1. Di konsol Google Cloud, buka halaman Configuration Chat API:

    Buka halaman Konfigurasi Chat API

  2. Di bagian Application info, masukkan informasi berikut:

    1. Di kolom App name, masukkan Chat API quickstart app.
    2. Di kolom Avatar URL, masukkan https://developers.google.com/chat/images/quickstart-app-avatar.png.
    3. Di kolom Description, masukkan Quickstart for calling the Chat API.
  3. Di bagian Interactive Features, klik Enable interaktif feature alihkan ke posisi nonaktif untuk menonaktifkan fitur interaktif bagi Aplikasi Chat.

  4. Klik Simpan.

Menginstal library klien

  • Instal library menggunakan npm:

    npm install @google-apps/chat @google-cloud/local-auth@2.1.0 --save
    

Menyiapkan contoh

  1. Di direktori kerja, buat file bernama index.js.

  2. Di file tersebut, tempel kode berikut:

    chat/quickstart/index.js
    const fs = require('fs').promises;
    const path = require('path');
    const process = require('process');
    const {authenticate} = require('@google-cloud/local-auth');
    const {ChatServiceClient} = require('@google-apps/chat');
    const {auth} = require('google-auth-library');
    
    // If modifying these scopes, delete token.json.
    const SCOPES = ['https://www.googleapis.com/auth/chat.spaces.readonly'];
    
    // The file token.json stores the user's access and refresh tokens, and is
    // created automatically when the authorization flow completes for the first
    // time.
    const TOKEN_PATH = path.join(process.cwd(), 'token.json');
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Reads previously authorized credentials from the save file.
     *
     * @return {Promise<OAuth2Client|null>}
     */
    async function loadSavedCredentialsIfExist() {
      try {
        const content = await fs.readFile(TOKEN_PATH);
        const credentials = JSON.parse(content);
        return auth.fromJSON(credentials);
      } catch (err) {
        console.log(err);
        return null;
      }
    }
    
    /**
     * Serializes credentials to a file compatible with GoogleAuth.fromJSON.
     *
     * @param {OAuth2Client} client
     * @return {Promise<void>}
     */
    async function saveCredentials(client) {
      const content = await fs.readFile(CREDENTIALS_PATH);
      const keys = JSON.parse(content);
      const key = keys.installed || keys.web;
      const payload = JSON.stringify({
        type: 'authorized_user',
        client_id: key.client_id,
        client_secret: key.client_secret,
        refresh_token: client.credentials.refresh_token,
      });
      await fs.writeFile(TOKEN_PATH, payload);
    }
    
    /**
     * Load or request or authorization to call APIs.
     *
     * @return {Promise<OAuth2Client>}
     */
    async function authorize() {
      let client = await loadSavedCredentialsIfExist();
      if (client) {
        return client;
      }
      client = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
      if (client.credentials) {
        await saveCredentials(client);
      }
      return client;
    }
    
    /**
     * Lists spaces with user credential.
     * @param {OAuth2Client} authClient An authorized OAuth2 client.
     */
    async function listSpaces(authClient) {
      // Create a client
      const chatClient = new ChatServiceClient({
        authClient: authClient,
        scopes: SCOPES,
      });
    
      // Initialize request argument(s)
      const request = {
        // Filter spaces by space type (SPACE or GROUP_CHAT or DIRECT_MESSAGE)
        filter: 'space_type = "SPACE"'
      };
    
      // Make the request
      const pageResult = chatClient.listSpacesAsync(request);
    
      // Handle the response. Iterating over pageResult will yield results and
      // resolve additional pages automatically.
      for await (const response of pageResult) {
        console.log(response);
      }
    }
    
    authorize().then(listSpaces).catch(console.error);
    

Menjalankan contoh

  1. Dalam direktori kerja Anda, jalankan contoh:

    node .
    
  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 Nodejs Anda berjalan dan memanggil Google Chat API.

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

Langkah berikutnya