อัปเดตพื้นที่ทํางาน

คู่มือนี้จะอธิบายถึงวิธีใช้ patch() ในทรัพยากร Space ของ Google Chat API เพื่ออัปเดตพื้นที่ทำงาน อัปเดตพื้นที่ทำงานเพื่อเปลี่ยนแอตทริบิวต์เกี่ยวกับพื้นที่ทำงาน เช่น ชื่อที่แสดง คำอธิบาย และหลักเกณฑ์ที่ผู้ใช้มองเห็น

หากคุณเป็นผู้ดูแลระบบ Google Workspace คุณสามารถเรียกใช้เมธอด patch() เพื่ออัปเดตพื้นที่ทำงานที่มีอยู่ภายในองค์กร Google Workspace

Space ทรัพยากรแสดงถึงสถานที่ที่ผู้ใช้และแอป Chat สามารถส่งข้อความ แชร์ไฟล์ และทำงานร่วมกันได้ พื้นที่ทำงานมีด้วยกันหลายประเภท ดังนี้

  • ข้อความส่วนตัว (DM) คือการสนทนาระหว่างผู้ใช้ 2 คนหรือผู้ใช้ 1 ราย แอปใน Chat
  • แชทกลุ่มเป็นการสนทนาระหว่างผู้ใช้ตั้งแต่ 3 คนขึ้นไปกับแอป Chat
  • พื้นที่ทำงานที่มีชื่อเป็นพื้นที่ทำงานถาวรที่ผู้ใช้สามารถส่งข้อความ แชร์ไฟล์ และทำงานร่วมกันได้

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

Node.js

  • ธุรกิจหรือองค์กร บัญชี Google Workspace ที่มีสิทธิ์เข้าถึง Google Chat

Python

  • ธุรกิจหรือองค์กร บัญชี Google Workspace ที่มีสิทธิ์เข้าถึง Google Chat

Java

  • ธุรกิจหรือองค์กร บัญชี Google Workspace ที่มีสิทธิ์เข้าถึง Google Chat

Apps Script

  • บัญชี Google Workspace รุ่น Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat

อัปเดตพื้นที่ทำงานในฐานะผู้ใช้

หากต้องการอัปเดตพื้นที่ทำงานที่มีอยู่ใน Google Chat ด้วยการตรวจสอบสิทธิ์ผู้ใช้ ให้ส่งข้อมูลต่อไปนี้ในคำขอ

  • ระบุขอบเขตการให้สิทธิ์ chat.spaces
  • เรียกใช้ UpdateSpace() ในคำขอ คุณต้องระบุฟิลด์ name ของพื้นที่ทำงาน ฟิลด์ updateMask ที่มีฟิลด์อย่างน้อย 1 ช่องที่จะอัปเดต และ body ที่มีข้อมูลพื้นที่ทำงานที่อัปเดตแล้ว

คุณสามารถอัปเดตข้อมูลต่างๆ เช่น ชื่อที่แสดง ประเภทพื้นที่ทำงาน สถานะประวัติ และอื่นๆ หากต้องการดูฟิลด์ทั้งหมดที่คุณสามารถอัปเดตได้ โปรดดูที่ เอกสารอ้างอิง

วิธีอัปเดตช่อง displayName ของพื้นที่ทำงานที่มีอยู่มีดังนี้

Node.js

chat/client-libraries/cloud/update-space-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.spaces'];

// This sample shows how to update a space with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    space: {
      // Replace SPACE_NAME here
      name: 'spaces/SPACE_NAME',
      displayName: 'New space display name'
    },
    // The field paths to update. Separate multiple values with commas or use
    // `*` to update all field paths.
    updateMask: {
      // The field paths to update.
      paths: ['display_name']
    }
  };

  // Make the request
  const response = await chatClient.updateSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/update_space_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.spaces"]

# This sample shows how to update a space with user credential
def update_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.UpdateSpaceRequest(
        space = {
            # Replace SPACE_NAME here
            'name': 'spaces/SPACE_NAME',
            'display_name': 'New space display name'
        },
        # The field paths to update. Separate multiple values with commas.
        update_mask = 'displayName'
    )

    # Make the request
    response = client.update_space(request)

    # Handle the response
    print(response)

update_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/UpdateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.UpdateSpaceRequest;
import com.google.chat.v1.Space;
import com.google.protobuf.FieldMask;

// This sample shows how to update space with user credential.
public class UpdateSpaceUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.spaces";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      UpdateSpaceRequest.Builder request = UpdateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          // Replace SPACE_NAME here.
          .setName("spaces/SPACE_NAME")
          .setDisplayName("New space display name"))
        .setUpdateMask(FieldMask.newBuilder()
          // The field paths to update.
          .addPaths("display_name"));
      Space response = chatServiceClient.updateSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to update a space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces'
 * referenced in the manifest file (appsscript.json).
 */
function updateSpaceUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here
  const name = 'spaces/SPACE_NAME';
  const space = {
    displayName: 'New space display name'
  };
  // The field paths to update. Separate multiple values with commas or use
  // `*` to update all field paths.
  const updateMask = 'displayName';

  // Make the request
  const response = Chat.Spaces.patch(space, name, {
    updateMask: updateMask
  });

  // Handle the response
  console.log(response);
}

หากต้องการเรียกใช้ตัวอย่างนี้ ให้แทนที่ SPACE_NAME ด้วยรหัสจากช่องnameของพื้นที่ทำงาน คุณสามารถรับรหัสโดยโทรไปที่ ListSpaces() หรือจาก URL ของพื้นที่ทำงาน

Google Chat API จะแสดงผลอินสแตนซ์ของ Space ซึ่งสะท้อนให้เห็นถึง อัปเดต

อัปเดตพื้นที่ทำงานในฐานะผู้ดูแลระบบ Google Workspace

หากคุณเป็นผู้ดูแลระบบ Google Workspace คุณสามารถเรียกใช้เมธอด UpdateSpace() เพื่ออัปเดตพื้นที่ทำงานในองค์กร Google Workspace

หากต้องการเรียกใช้เมธอดนี้ในฐานะผู้ดูแลระบบ Google Workspace ให้ทำดังนี้

สำหรับข้อมูลเพิ่มเติมและตัวอย่าง โปรดดูที่ จัดการพื้นที่ใน Google Chat ในฐานะผู้ดูแลระบบ Google Workspace

อัปเดตพื้นที่ทำงานเป็นแอป Chat

การตรวจสอบสิทธิ์แอปต้องการอนุมัติจากผู้ดูแลระบบแบบครั้งเดียว

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

  • ระบุchat.app.spacesขอบเขตการให้สิทธิ์ เมื่อใช้การตรวจสอบสิทธิ์แอป คุณจะอัปเดตได้เฉพาะพื้นที่ทำงานที่สร้างขึ้นเท่านั้น ตามแอปใน Chat
  • เรียกใช้เมธอด patch ในทรัพยากร Space ใน คำขอของคุณ คุณสามารถระบุฟิลด์ name ฟิลด์ updateMask ซึ่งมีฟิลด์ให้อัปเดตอย่างน้อย 1 ฟิลด์ และ body ด้วยข้อมูลพื้นที่ทำงานที่อัปเดตแล้ว

คุณสามารถอัปเดตข้อมูลต่างๆ เช่น ชื่อที่แสดง ประเภทพื้นที่ทำงาน สถานะประวัติ การตั้งค่าสิทธิ์ และอื่นๆ หากต้องการดูช่องทั้งหมดที่อัปเดตได้ โปรดดูเอกสารอ้างอิง

สร้างคีย์ API

หากต้องการเรียกใช้เมธอด Developer Preview API คุณต้องใช้เอกสารการค้นพบ API เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ที่ไม่ได้เผยแพร่แบบสาธารณะ หากต้องการตรวจสอบสิทธิ์คำขอ คุณต้องส่งคีย์ API

หากต้องการสร้างคีย์ API ให้เปิดโปรเจ็กต์ Google Cloud ของแอปแล้วทําดังนี้

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > API และ บริการ > ข้อมูลเข้าสู่ระบบ

    ไปที่ข้อมูลเข้าสู่ระบบ

  2. คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API
  3. คีย์ API ใหม่จะปรากฏขึ้น
    • คลิกคัดลอก เพื่อคัดลอกคีย์ API ไปใช้ในโค้ดของแอป นอกจากนี้ คุณยังดูคีย์ API ในส่วน "คีย์ API" ของข้อมูลเข้าสู่ระบบของโปรเจ็กต์ได้ด้วย
    • คลิกจำกัดคีย์เพื่ออัปเดตการตั้งค่าขั้นสูงและจำกัดการใช้งาน ของคีย์ API ดูรายละเอียดเพิ่มเติมได้ที่การใช้ข้อจำกัดของคีย์ API

เขียนสคริปต์ที่เรียกใช้ Chat API

วิธีอัปเดตช่อง spaceDetails ของพื้นที่ทำงานที่มีอยู่มีดังนี้

Python

  1. สร้างไฟล์ชื่อ chat_space_update_app.py ในไดเรกทอรีการทำงาน
  2. ใส่รหัสต่อไปนี้ใน chat_space_update_app.py

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then updates the specified space description and guidelines.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().patch(
    
          # The space to update, and the updated space details.
          #
          # Replace {space} with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          name='spaces/SPACE',
          updateMask='spaceDetails',
          body={
    
            'spaceDetails': {
              'description': 'This description was updated with Chat API!',
              'guidelines': 'These guidelines were updated with Chat API!'
            }
    
          }
    
        ).execute()
    
        # Prints details about the updated space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. ในโค้ด ให้แทนที่

    • API_KEY: คีย์ API ที่คุณสร้างเพื่อสร้าง ปลายทางบริการสำหรับ Chat API
    • SPACE ที่มีชื่อพื้นที่ทำงาน ซึ่ง ที่คุณจะได้รับจาก spaces.list วิธี ใน Chat API หรือจาก URL ของพื้นที่ทำงาน
  4. ในไดเรกทอรีการทำงาน ให้สร้างและเรียกใช้ตัวอย่างด้วยคำสั่งต่อไปนี้

    python3 chat_space_update_app.py

Google Chat API จะแสดงผลอินสแตนซ์ของ แหล่งข้อมูล Space รายการที่แสดง อัปเดต