Membangun Add-on Google Workspace dengan Node.js

Membuat Add-on Google Workspace di Cloud Functions menggunakan runtime Node.js.

Tujuan

  • Menyiapkan lingkungan Anda.
  • Membuat dan men-deploy Cloud Function.
  • Buat dan deploy add-on.
  • Instal add-on.

Prasyarat

Menyiapkan lingkungan Anda

Buka project Cloud Anda di konsol Google Cloud

  1. Di konsol Google Cloud, buka halaman Select a project.

    Pilih project Cloud

  2. Pilih project Google Cloud yang ingin Anda gunakan. Atau, klik Buat project dan ikuti petunjuk di layar. Jika membuat project Google Cloud, Anda mungkin perlu mengaktifkan penagihan untuk project tersebut.

Mengonfigurasi layar izin OAuth

Add-on Google Workspace memerlukan konfigurasi layar izin. Mengonfigurasi layar izin OAuth add-on Anda menentukan apa yang kepada pengguna.

  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.

Membuat dan men-deploy Cloud Function

  1. Di terminal lokal, aktifkan Cloud Functions, Cloud Build, dan Google Workspace Add-ons API:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. Dalam direktori kosong, buat file function.js dengan kode berikut kode contoh:

    /**
     * Cloud Function that loads the homepage for a
     * Google Workspace Add-on.
     *
     * @param {Object} req Request sent from Google
     * @param {Object} res Response to send back
     */
    exports.loadHomePage = function addonsHomePage (req, res) {
      res.send(createAction());
    };
    
    /** Creates a card with two widgets. */
    function createAction() {
      return {
        "action": {
          "navigations": [
            {
              "pushCard": {
                "header": {
                  "title": "Cats!"
                },
                "sections": [
                  {
                    "widgets": [
                      {
                        "textParagraph": {
                          "text": "Your random cat:"
                        }
                      },
                      {
                        "image": {
                          "imageUrl": "https://cataas.com/cat"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. Deploy fungsi tersebut:

    gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
    

    Jika diminta, tentukan bahwa Anda tidak mengizinkan pemanggilan yang tidak diautentikasi fungsi tersebut. Diperlukan waktu beberapa menit untuk men-deploy fungsi.

Membuat deployment add-on

  1. Temukan email akun layanan untuk add-on tersebut:

    gcloud workspace-add-ons get-authorization
    
  2. Beri akun layanan peran cloudfunctions.invoker:

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Dapatkan URL fungsi yang di-deploy. Untuk mendapatkan URL, jalankan perintah berikut dan cari kolom url di bawah bagian httpsTrigger:

    gcloud functions describe loadHomePage
    
  4. Buat file deployment.json dengan kode contoh berikut. Ganti URL dengan URL fungsi yang di-deploy dari langkah sebelumnya.

    {
      "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"],
      "addOns": {
        "common": {
          "name": "My HTTP Add-on",
          "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png",
          "homepageTrigger": {
            "runFunction": "URL"
          }
        },
        "gmail": {},
        "drive": {},
        "calendar": {},
        "docs": {},
        "sheets": {},
        "slides": {}
      }
    }
    
  5. Buat deployment:

    gcloud workspace-add-ons deployments create quickstart \
        --deployment-file=deployment.json
    

Menginstal add-on

  1. Instal deployment dalam mode pengembangan:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Buka atau muat ulang Gmail untuk melihat add-on. Di beberapa {i>toolbar<i} di sebelah kanan, cari ikon gelas kimia.

  3. Klik ikon untuk membuka add-on. Jika diminta, mengizinkan add-on.

Opsional: Pembersihan

Untuk menghindari timbulnya biaya pada akun Anda, hapus sumber daya yang dibuat:

  1. Uninstal add-on dari Akun Google Anda:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Agar tidak menimbulkan biaya untuk resource yang digunakan dalam panduan memulai ini, hapus project Cloud:

    gcloud projects delete PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Cloud yang yang digunakan sebagai panduan memulai. Anda dapat menemukan ID project Cloud di konsol Google Cloud di Halaman dasbor.

Langkah berikutnya

Untuk menambahkan lebih banyak fungsi ke Add-on Google Workspace Anda, lihat panduan berikut: