Layanan Acara Google Workspace Lanjutan

Layanan Peristiwa Google Workspace Lanjutan memungkinkan Anda menggunakan Google Workspace Events API di Apps Script. API ini memungkinkan Anda berlangganan referensi Google Workspace agar akan menerima acara relevan yang Anda minati. Peristiwa merepresentasikan perubahan pada resource, seperti saat resource dibuat, diperbarui, atau dihapus.

Prasyarat

  • Project Apps Script menggunakan project Google Cloud standar, bukan project default yang dibuat otomatis oleh Apps Script.
  • Topik Pub/Sub yang dibuat dalam project Google Cloud yang sama untuk menerima peristiwa langganan. Untuk membuat topik Pub/Sub, lihat Membuat dan berlangganan topik Pub/Sub.
  • Untuk berlangganan peristiwa Chat, Anda harus mengonfigurasi aplikasi Google Chat di halaman konfigurasi Chat API di Konsol Google Cloud. Untuk membuat aplikasi Google Chat, lihat Membuat aplikasi Google Chat dengan Apps Script.
  • Cakupan otorisasi yang diperlukan ditambahkan ke file appsscript.json project Apps Script. Cakupan yang diperlukan bergantung pada jenis resource dan peristiwa target langganan. Untuk mengetahui detailnya, lihat Memilih cakupan Google Workspace Events API. Contoh:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.messages.readonly"
    ]
    

Referensi

Untuk mengetahui informasi selengkapnya tentang layanan ini, lihat dokumentasi referensi Google Workspace Events API. Seperti semua layanan lanjutan di Apps Script, layanan Peristiwa Google Workspace menggunakan objek, metode, dan parameter yang sama dengan API publik.

Kode contoh

Contoh ini menunjukkan cara melakukan tindakan Google Workspace Events API umum menggunakan layanan lanjutan.

Membuat langganan

Untuk membuat langganan ke resource Google Workspace, tambahkan fungsi berikut ke kode project Apps Script:

advanced/events.gs
/**
 * Creates a subscription to receive events about a Google Workspace resource.
 * For a list of supported resources and event types, see the
 * [Google Workspace Events API Overview](https://developers.google.com/workspace/events#supported-events).
 * For additional information, see the
 * [subscriptions.create](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/create)
 * method reference.
 * @param {!string} targetResource The full resource name of the Google Workspace resource to subscribe to.
 * @param {!string|!Array<string>} eventTypes The types of events to receive about the resource.
 * @param {!string} pubsubTopic The resource name of the Pub/Sub topic that receives events from the subscription.
 */
function createSubscription(targetResource, eventTypes, pubsubTopic) {
  try {
    const operation = WorkspaceEvents.Subscriptions.create({
      targetResource: targetResource,
      eventTypes: eventTypes,
      notificationEndpoint: {
        pubsubTopic: pubsubTopic,
      },
    });
    console.log(operation);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to create subscription with error %s', err.message);
  }
}

Mencantumkan langganan

Untuk mencantumkan langganan yang difilter menurut jenis peristiwa dan resource target, tambahkan fungsi berikut ke kode project Apps Script:

advanced/events.gs
/**
 * Lists subscriptions created by the calling app filtered by one or more event types and optionally by a target resource.
 * For additional information, see the
 * [subscriptions.list](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/list)
 * method reference.
 * @param {!string} filter The query filter.
 */
function listSubscriptions(filter) {
  try {
    const response = WorkspaceEvents.Subscriptions.list({ filter });
    console.log(response);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to list subscriptions with error %s', err.message);
  }
}

Mendapatkan langganan

Untuk mendapatkan informasi tentang langganan, tambahkan fungsi berikut ke kode project Apps Script:

advanced/events.gs
/**
 * Gets details about a subscription.
 * For additional information, see the
 * [subscriptions.get](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/get)
 * method reference.
 * @param {!string} name The resource name of the subscription.
 */
function getSubscription(name) {
  try {
    const subscription = WorkspaceEvents.Subscriptions.get(name);
    console.log(subscription);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to get subscription with error %s', err.message);
  }
}

Memperbarui langganan

Untuk mengupdate atau memperpanjang langganan, tambahkan fungsi berikut ke kode project Apps Script:

advanced/events.gs
/**
 * Updates an existing subscription.
 * This can be used to renew a subscription that is about to expire.
 * For additional information, see the
 * [subscriptions.patch](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/patch)
 * method reference.
 * @param {!string} name The resource name of the subscription.
 */
function patchSubscription(name) {
  try {
    const operation = WorkspaceEvents.Subscriptions.patch({
      // Setting the TTL to 0 seconds extends the subscription to its maximum expiration time.
      ttl: '0s',
    }, name);
    console.log(operation);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to update subscription with error %s', err.message);
  }
}

Aktifkan kembali langganan

Untuk mengaktifkan kembali langganan, tambahkan fungsi berikut ke kode project Apps Script:

advanced/events.gs
/**
 * Reactivates a suspended subscription.
 * Before reactivating, you must resolve any errors with the subscription.
 * For additional information, see the
 * [subscriptions.reactivate](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/reactivate)
 * method reference.
 * @param {!string} name The resource name of the subscription.
 */
function reactivateSubscription(name) {
  try {
    const operation = WorkspaceEvents.Subscriptions.reactivate({}, name);
    console.log(operation);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to reactivate subscription with error %s', err.message);
  }
}

Menghapus langganan

Untuk menghapus langganan, tambahkan fungsi berikut ke kode project Apps Script:

advanced/events.gs
/**
 * Deletes a subscription.
 * For additional information, see the
 * [subscriptions.delete](https://developers.google.com/workspace/events/reference/rest/v1/subscriptions/delete)
 * method reference.
 * @param {!string} name The resource name of the subscription.
 */
function deleteSubscription(name) {
  try {
    const operation = WorkspaceEvents.Subscriptions.remove(name);
    console.log(operation);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to delete subscription with error %s', err.message);
  }
}

Mendapatkan operasi

Sebagian besar metode Google Workspace Events API menampilkan operasi yang berjalan lama. Untuk menentukan status operasi, Anda dapat menggunakan metode operations.get().

Untuk mendapatkan informasi tentang operasi, tambahkan fungsi berikut ke kode project Apps Script:

advanced/events.gs
/**
 * Gets details about an operation returned by one of the methods on the subscription
 * resource of the Google Workspace Events API.
 * For additional information, see the
 * [operations.get](https://developers.google.com/workspace/events/reference/rest/v1/operations/get)
 * method reference.
 * @param {!string} name The resource name of the operation.
 */
function getOperation(name) {
  try {
    const operation = WorkspaceEvents.Operations.get(name);
    console.log(operation);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to get operation with error %s', err.message);
  }
}

Untuk mendapatkan nama operasi, gunakan nilai dari kolom name yang ditampilkan dari salah satu metode Google Workspace Events API, seperti subscriptions.create() atau subscriptions.patch().