บริการกิจกรรมขั้นสูงของ Google Workspace

บริการ Google Workspace Events ขั้นสูงช่วยให้คุณใช้ Google Workspace Events API ใน Google Apps Script ได้ โดย API นี้จะช่วยให้คุณสมัครรับข้อมูลทรัพยากร Google Workspace เพื่อรับเหตุการณ์ที่เกี่ยวข้องซึ่งคุณสนใจ เหตุการณ์แสดงถึงการเปลี่ยนแปลงทรัพยากร เช่น เมื่อมีการสร้าง อัปเดต หรือลบทรัพยากร

ข้อกำหนดเบื้องต้น

  • โปรเจ็กต์ Apps Script ที่ใช้โปรเจ็กต์ Google Cloud มาตรฐานแทนโปรเจ็กต์เริ่มต้นที่ Apps Script สร้างขึ้นโดยอัตโนมัติ
  • หัวข้อ Pub/Sub ที่สร้างในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google เดียวกันเพื่อรับเหตุการณ์การสมัครใช้บริการ หากต้องการสร้างหัวข้อ Pub/Sub โปรดดู สร้างและสมัครใช้บริการหัวข้อ Pub/Sub
  • หากต้องการสมัครรับข้อมูลเหตุการณ์ Chat คุณต้องกำหนดค่าแอป Google Chat ในหน้าการกำหนดค่า Chat API ในคอนโซล Google Cloud หากต้องการสร้างแอป Google Chat โปรดดู สร้างแอป Google Chat ด้วย Apps Script
  • ขอบเขตการให้สิทธิ์ที่จำเป็นซึ่งเพิ่มลงในไฟล์ appsscript.json ของโปรเจ็กต์ Apps Script ขอบเขตที่จำเป็นจะขึ้นอยู่กับประเภทของทรัพยากรและเหตุการณ์เป้าหมายของการสมัครใช้บริการ โปรดดูรายละเอียดที่ หัวข้อเลือกขอบเขต Google Workspace Events API เช่น

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

นี่คือบริการขั้นสูงที่คุณต้อง เปิดใช้ก่อนใช้งาน

ข้อมูลอ้างอิง

ดูข้อมูลเพิ่มเติมเกี่ยวกับบริการนี้ได้ที่ เอกสารอ้างอิง Google Workspace Events API เช่นเดียวกับบริการขั้นสูงทั้งหมดใน Apps Script บริการ Google Workspace Events จะใช้ออบเจ็กต์ เมธอด และพารามิเตอร์เดียวกันกับ API สาธารณะ

โค้ดตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการทั่วไปของ Google Workspace Events API โดยใช้บริการขั้นสูง

สร้างการสมัครใช้บริการ

หากต้องการสร้างการสมัครใช้บริการทรัพยากร Google Workspace ให้เพิ่มฟังก์ชันต่อไปนี้ลงในโค้ดของโปรเจ็กต์ 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);
  }
}

แสดงรายการการสมัครใช้บริการ

หากต้องการแสดงรายการการสมัครใช้บริการที่กรองตามประเภทเหตุการณ์และทรัพยากรเป้าหมาย ให้เพิ่มฟังก์ชันต่อไปนี้ลงในโค้ดของโปรเจ็กต์ 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);
  }
}

รับการสมัครใช้บริการ

หากต้องการรับข้อมูลเกี่ยวกับการสมัครใช้บริการ ให้เพิ่มฟังก์ชันต่อไปนี้ลงในโค้ดของโปรเจ็กต์ 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);
  }
}

อัปเดตการสมัครใช้บริการ

หากต้องการอัปเดตหรือต่ออายุการสมัครใช้บริการ ให้เพิ่มฟังก์ชันต่อไปนี้ลงในโค้ดของโปรเจ็กต์ 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);
  }
}

เปิดใช้งานการสมัครใช้บริการอีกครั้ง

หากต้องการเปิดใช้งานการสมัครใช้บริการอีกครั้ง ให้เพิ่มฟังก์ชันต่อไปนี้ลงในโค้ดของโปรเจ็กต์ 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);
  }
}

ลบการสมัครใช้บริการ

หากต้องการลบการสมัครใช้บริการ ให้เพิ่มฟังก์ชันต่อไปนี้ลงในโค้ดของโปรเจ็กต์ 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);
  }
}

รับการดำเนินงาน

เมธอดส่วนใหญ่ของ Google Workspace Events API จะแสดงผลการดำเนินการที่ใช้เวลานาน หากต้องการตรวจสอบสถานะของการดำเนินการ คุณสามารถใช้ operations.get() เมธอดได้

หากต้องการรับข้อมูลเกี่ยวกับการดำเนินการ ให้เพิ่มฟังก์ชันต่อไปนี้ลงในโค้ดของโปรเจ็กต์ 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);
  }
}

หากต้องการรับชื่อของการดำเนินการ ให้ใช้ค่าจากช่อง name ที่แสดงผล จากเมธอดใดเมธอดหนึ่งของ Google Workspace Events API เช่น subscriptions.create() หรือ subscriptions.patch()