บริการ Chat ขั้นสูง

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

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

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

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

รหัสตัวอย่าง

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

โพสต์ข้อความที่มีข้อมูลเข้าสู่ระบบของผู้ใช้

ตัวอย่างต่อไปนี้แสดงวิธีโพสต์ข้อความไปยังพื้นที่ใน Chat ในนามของผู้ใช้

  1. เพิ่มขอบเขตการให้สิทธิ์ chat.messages.create ลงในไฟล์ appsscript.json ของโปรเจ็กต์ Apps Script ดังนี้

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.messages.create"
    ]
    
  2. เพิ่มฟังก์ชันที่คล้ายกับฟังก์ชันนี้ในโค้ดของโปรเจ็กต์ Apps Script:

    advanced/chat.gs
    /**
     * Posts a new message to the specified space on behalf of the user.
     * @param {string} spaceName The resource name of the space.
     */
    function postMessageWithUserCredentials(spaceName) {
      try {
        const message = {'text': 'Hello world!'};
        Chat.Spaces.Messages.create(message, spaceName);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }

โพสต์ข้อความที่มีข้อมูลเข้าสู่ระบบของแอป

ตัวอย่างต่อไปนี้แสดงวิธีโพสต์ข้อความไปยังพื้นที่ใน Chat ในนามของแอป เมื่อใช้บริการ Chat ขั้นสูงด้วยบัญชีบริการคุณไม่จำเป็นต้องระบุขอบเขตการให้สิทธิ์ใน appsscript.json โปรดดูรายละเอียดเกี่ยวกับการตรวจสอบสิทธิ์ด้วยบัญชีบริการที่หัวข้อตรวจสอบสิทธิ์ในฐานะแอป Google Chat

advanced/chat.gs
/**
 * Posts a new message to the specified space on behalf of the app.
 * @param {string} spaceName The resource name of the space.
 */
function postMessageWithAppCredentials(spaceName) {
  try {
    // See https://developers.google.com/chat/api/guides/auth/service-accounts
    // for details on how to obtain a service account OAuth token.
    const appToken = getToken_();
    const message = {'text': 'Hello world!'};
    Chat.Spaces.Messages.create(
        message,
        spaceName,
        {},
        // Authenticate with the service account token.
        {'Authorization': 'Bearer ' + appToken});
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to create message with error %s', err.message);
  }
}

รับพื้นที่ทำงาน

ตัวอย่างต่อไปนี้แสดงวิธีรับข้อมูลเกี่ยวกับพื้นที่ใน Chat

  1. เพิ่มขอบเขตการให้สิทธิ์ chat.spaces.readonly ลงในไฟล์ appsscript.json ของโปรเจ็กต์ Apps Script ดังนี้

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.readonly"
    ]
    
  2. เพิ่มฟังก์ชันที่คล้ายกับฟังก์ชันนี้ในโค้ดของโปรเจ็กต์ Apps Script:

    advanced/chat.gs
    /**
     * Gets information about a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function getSpace(spaceName) {
      try {
        const space = Chat.Spaces.get(spaceName);
        console.log('Space display name: %s', space.displayName);
        console.log('Space type: %s', space.spaceType);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to get space with error %s', err.message);
      }
    }

สร้างพื้นที่ทำงาน

ตัวอย่างต่อไปนี้แสดงวิธีสร้างพื้นที่ใน Chat

  1. เพิ่มขอบเขตการให้สิทธิ์ chat.spaces.create ลงในไฟล์ appsscript.json ของโปรเจ็กต์ Apps Script ดังนี้

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.spaces.create"
    ]
    
  2. เพิ่มฟังก์ชันที่คล้ายกับฟังก์ชันนี้ในโค้ดของโปรเจ็กต์ Apps Script:

    advanced/chat.gs
    /**
     * Creates a new Chat space.
     */
    function createSpace() {
      try {
        const space = {'displayName': 'New Space', 'spaceType': 'SPACE'};
        Chat.Spaces.create(space);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create space with error %s', err.message);
      }
    }

แสดงการเป็นสมาชิก

ตัวอย่างต่อไปนี้แสดงวิธีแสดงสมาชิกทั้งหมดของพื้นที่ใน Chat

  1. เพิ่มขอบเขตการให้สิทธิ์ chat.memberships.readonly ลงในไฟล์ appsscript.json ของโปรเจ็กต์ Apps Script ดังนี้

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships.readonly"
    ]
    
  2. เพิ่มฟังก์ชันที่คล้ายกับฟังก์ชันนี้ในโค้ดของโปรเจ็กต์ Apps Script:

    advanced/chat.gs
    /**
     * Lists all the members of a Chat space.
     * @param {string} spaceName The resource name of the space.
     */
    function listMemberships(spaceName) {
      let response;
      let pageToken = null;
      try {
        do {
          response = Chat.Spaces.Members.list(spaceName, {
            pageSize: 10,
            pageToken: pageToken
          });
          if (!response.memberships || response.memberships.length === 0) {
            pageToken = response.nextPageToken;
            continue;
          }
          response.memberships.forEach((membership) => console.log(
              'Member resource name: %s (type: %s)',
              membership.name,
              membership.member.type));
          pageToken = response.nextPageToken;
        } while (pageToken);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed with error %s', err.message);
      }
    }

แก้ปัญหา

หากคุณเห็น Error 400: invalid_scope ในข้อความแสดงข้อผิดพลาด Some requested scopes cannot be shown หมายความว่าคุณไม่ได้ระบุขอบเขตการให้สิทธิ์ในไฟล์ appsscript.json ของโปรเจ็กต์ Apps Script ในกรณีส่วนใหญ่ Apps Script จะกำหนดขอบเขตที่สคริปต์จำเป็นต้องใช้โดยอัตโนมัติ แต่เมื่อคุณใช้บริการขั้นสูงของ Chat คุณต้องเพิ่มขอบเขตการให้สิทธิ์ที่สคริปต์ใช้ลงในไฟล์ Manifest ของโปรเจ็กต์ Apps Script ด้วยตนเอง ดูการตั้งค่าขอบเขตที่ชัดเจน

หากต้องการแก้ไขข้อผิดพลาด ให้เพิ่มขอบเขตการให้สิทธิ์ที่เหมาะสมลงในไฟล์ appsscript.json ของโปรเจ็กต์ Apps Script เป็นส่วนหนึ่งของอาร์เรย์ oauthScopes เช่น หากต้องการเรียกใช้เมธอด spaces.messages.create ให้เพิ่มคำสั่งต่อไปนี้

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

ข้อจำกัดและข้อควรพิจารณา

บริการ Chat ขั้นสูงไม่รองรับรายการต่อไปนี้

หากต้องการดาวน์โหลดไฟล์แนบข้อความหรือเรียกใช้วิธีการแสดงตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ ให้ใช้ UrlFetchApp แทน