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

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

หน้านี้มีขั้นตอนต่อไปนี้สำหรับการสร้างการสมัครใช้บริการ Google Workspace

  1. ตั้งค่าสภาพแวดล้อม
  2. สร้างและสมัครใช้บริการหัวข้อ Google Cloud Pub/Sub ใช้เอกสารนี้เป็น ปลายทางเพื่อรับกิจกรรมใน Google Workspace
  3. เรียกใช้เมธอด create ของ Google Workspace Events API ในทรัพยากร Subscription
  4. ทดสอบการสมัครใช้บริการ Google Workspace เพื่อยืนยันว่าหัวข้อ Pub/Sub ได้รับเหตุการณ์ที่คุณสมัครรับข้อมูล
  5. ไม่บังคับ: กำหนดค่าวิธีพุชเหตุการณ์ไปยังปลายทางสำหรับแอป เพื่อให้แอปประมวลผลเหตุการณ์และดำเนินการหากจำเป็น

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

Apps Script

  • หากต้องการใช้คำสั่ง Google Cloud CLI ในคู่มือนี้ ให้ทำดังนี้
    1. ติดตั้ง Google Cloud CLI
    2. หากต้องการ เริ่มต้น gcloud CLI ให้เรียกใช้โค้ดต่อไปนี้
    3.   gcloud init
        
  • โปรเจ็กต์ Apps Script
    • ใช้โปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google แทนโปรเจ็กต์เริ่มต้นที่ Apps Script สร้างขึ้นโดยอัตโนมัติ
    • สำหรับขอบเขตทั้งหมดที่คุณเพิ่มเพื่อกำหนดค่าหน้าจอขอความยินยอม OAuth คุณต้องเพิ่มขอบเขตลงในไฟล์ appsscript.json ในโปรเจ็กต์ Apps Script ด้วย เช่น หากคุณระบุขอบเขต chat.messages ให้เพิ่มข้อมูลต่อไปนี้
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • เปิดใช้ Google Workspace Eventsบริการขั้นสูง

Python

  • Python 3.6 ขึ้นไป
  • เครื่องมือการจัดการแพ็กเกจ pip
  • ไลบรารีของไคลเอ็นต์ Google สำหรับ Python เวอร์ชันล่าสุด หากต้องการติดตั้งหรืออัปเดต ให้เรียกใช้คำสั่งต่อไปนี้ ในอินเทอร์เฟซบรรทัดคำสั่ง
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • หากต้องการใช้คำสั่ง Google Cloud CLI ในคู่มือนี้ ให้ทำดังนี้
    1. ติดตั้ง Google Cloud CLI
    2. หากต้องการ เริ่มต้น gcloud CLI ให้เรียกใช้โค้ดต่อไปนี้
    3.   gcloud init
        

ตั้งค่าสภาพแวดล้อม

ส่วนต่อไปนี้จะอธิบายวิธีกำหนดค่าสภาพแวดล้อมก่อนสร้างการสมัครใช้บริการ Google Workspace

เปิดใช้ Google Workspace Events API และ Google Cloud Pub/Sub API

ก่อนใช้ Google API คุณต้องเปิดใช้ API ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google คุณเปิด API อย่างน้อย 1 รายการในโปรเจ็กต์ Google Cloud เดียวได้

คอนโซล Google Cloud

ใน Google Cloud Console ให้เปิดโปรเจ็กต์ Google Cloud สำหรับแอป แล้วเปิดใช้ Google Workspace Events API และ Pub/Sub API โดยทำดังนี้

เปิดใช้ API

gcloud

  1. ลงชื่อเข้าใช้บัญชี Google ในไดเรกทอรีการทำงานโดยทำดังนี้

    gcloud auth login
  2. ตั้งค่าโปรเจ็กต์เป็นโปรเจ็กต์ที่อยู่ในระบบคลาวด์สำหรับแอป

    gcloud config set project PROJECT_ID

    แทนที่ PROJECT_ID ด้วย รหัสโปรเจ็กต์ สำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของแอป

  3. เปิดใช้ Google Workspace Events API และ Google Cloud Pub/Sub API โดยทำดังนี้

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

สร้างข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ OAuth

เลือกประเภทแอปพลิเคชันเพื่อดู วิธีการสร้างรหัสไคลเอ็นต์ OAuth โดยเฉพาะ

เว็บแอปพลิเคชัน

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > แพลตฟอร์ม Google Auth > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > เว็บแอปพลิเคชัน
  4. ในช่องชื่อ ให้พิมพ์ชื่อสำหรับข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
  5. เพิ่ม URI ที่ได้รับอนุญาตซึ่งเกี่ยวข้องกับแอปของคุณ
    • แอปฝั่งไคลเอ็นต์ (JavaScript) - ในส่วนต้นทาง JavaScript ที่ได้รับอนุญาต ให้คลิกเพิ่ม URI จากนั้นป้อน URI ที่จะใช้สำหรับคำขอของเบราว์เซอร์ ซึ่งระบุโดเมนที่แอปพลิเคชันของคุณสามารถส่งคำขอ API ไปยังเซิร์ฟเวอร์ OAuth 2.0 ได้
    • แอปฝั่งเซิร์ฟเวอร์ (Java, Python และอื่นๆ) - ในส่วน URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต ให้คลิกเพิ่ม URI จากนั้นป้อน URI ของปลายทางที่เซิร์ฟเวอร์ OAuth 2.0 สามารถส่งการตอบกลับได้
  6. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วนรหัสไคลเอ็นต์ OAuth 2.0

    โปรดทราบว่าระบบจะไม่ใช้รหัสลับไคลเอ็นต์สำหรับเว็บแอปพลิเคชัน

Android

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > แพลตฟอร์ม Google Auth > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > Android
  4. ในช่องชื่อ ให้พิมพ์ชื่อสำหรับข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
  5. ในช่องชื่อแพ็กเกจ ให้ป้อนชื่อแพ็กเกจจากไฟล์ AndroidManifest.xml
  6. ในช่องลายนิ้วมือของใบรับรอง SHA-1 ให้ป้อนลายนิ้วมือของใบรับรอง SHA-1 ที่สร้างขึ้น
  7. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"

iOS

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > แพลตฟอร์ม Google Auth > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > iOS
  4. ในช่องชื่อ ให้พิมพ์ชื่อสำหรับข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
  5. ในช่องรหัสชุด ให้ป้อนรหัสชุดซอฟต์แวร์ตามที่แสดงในไฟล์ Info.plist ของแอป
  6. ไม่บังคับ: หากแอปปรากฏใน Apple App Store ให้ป้อนรหัส App Store
  7. ไม่บังคับ: ในช่องรหัสทีม ให้ป้อนสตริง 10 อักขระที่ไม่ซ้ำกันซึ่ง Apple สร้างขึ้นและกำหนดให้กับทีมของคุณ
  8. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"

แอป Chrome

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > แพลตฟอร์ม Google Auth > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > ส่วนขยาย Chrome
  4. ในช่องชื่อ ให้พิมพ์ชื่อสำหรับข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
  5. ในช่องรหัสสินค้า ให้ป้อนสตริงรหัสที่ไม่ซ้ำกันของแอปซึ่งมี 32 อักขระ คุณดูค่ารหัสนี้ได้ใน URL ของ Chrome เว็บสโตร์ของแอปและในแดชบอร์ดสำหรับนักพัฒนาซอฟต์แวร์ Chrome เว็บสโตร์
  6. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"

แอปบนเดสก์ท็อป

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > แพลตฟอร์ม Google Auth > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > แอปบนเดสก์ท็อป
  4. ในช่องชื่อ ให้พิมพ์ชื่อสำหรับข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
  5. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"

ทีวีและอุปกรณ์อินพุตแบบจำกัด

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > แพลตฟอร์ม Google Auth > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > ทีวีและอุปกรณ์อินพุตแบบจำกัด
  4. ในช่องชื่อ ให้พิมพ์ชื่อสำหรับข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
  5. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"

Universal Windows Platform (UWP)

  1. ในคอนโซล Google API ให้ไปที่เมนู > > ไคลเอ็นต์

    ไปที่ไคลเอ็นต์

  2. คลิกสร้างไคลเอ็นต์
  3. คลิกประเภทแอปพลิเคชัน > Universal Windows Platform (UWP)
  4. ในช่อง "ชื่อ" ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google API เท่านั้น
  5. ในช่อง "รหัส Store" ให้ป้อนค่ารหัส Microsoft Store ที่ไม่ซ้ำกันของแอปซึ่งมี 12 อักขระ คุณดูรหัสนี้ได้ใน URL ของแอปใน Microsoft Store และใน Partner Center
  6. คลิกสร้าง

    ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0"

ดาวน์โหลดไฟล์ JSON ของรหัสลับไคลเอ็นต์

ไฟล์รหัสลับไคลเอ็นต์คือการแสดง JSON ของข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ OAuth ที่แอปใช้อ้างอิงได้เมื่อระบุข้อมูลเข้าสู่ระบบ

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

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

  2. ในส่วนรหัสไคลเอ็นต์ OAuth 2.0 ให้คลิกรหัสไคลเอ็นต์ที่สร้างขึ้น

  3. คลิกดาวน์โหลด JSON

  4. บันทึกไฟล์เป็น credentials.json

สร้างและสมัครใช้บริการหัวข้อ Pub/Sub

ในส่วนนี้ คุณจะสร้างหัวข้อ Pub/Sub และการสมัครใช้บริการหัวข้อ หัวข้อ Pub/Sub จะทำหน้าที่เป็นปลายทางการแจ้งเตือนที่การสมัครใช้บริการ Google Workspace จะรับเหตุการณ์

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและจัดการหัวข้อ Pub/Sub ได้ที่เอกสารประกอบของ Pub/Sub

วิธีสร้างและสมัครใช้บริการหัวข้อ Pub/Sub

คอนโซล Google API

  1. ในคอนโซล Google API ให้ไปที่หน้า Pub/Sub โดยทำดังนี้

    ไปที่ Google Cloud Pub/Sub

    ตรวจสอบว่าได้เลือกโปรเจ็กต์ที่อยู่ในระบบคลาวด์สำหรับแอปแล้ว

  2. คลิก สร้างหัวข้อ แล้วทำดังนี้

    1. ป้อนชื่อหัวข้อ เช่น workspace-events-topic
    2. เลือกเพิ่มการสมัครใช้บริการเริ่มต้นไว้ Pub/Sub จะตั้งชื่อการสมัครใช้บริการเริ่มต้นนี้ให้คล้ายกับชื่อของหัวข้อ เช่น workspace-events-topic-sub
    3. ไม่บังคับ: อัปเดตหรือกําหนดค่าพร็อพเพอร์ตี้เพิ่มเติม สําหรับหัวข้อ
  3. คลิกสร้าง ชื่อหัวข้อแบบเต็มจะมีรูปแบบเป็น projects/PROJECT_ID/topics/TOPIC_ID ใช้ชื่อและนามสกุลนี้ในขั้นตอนถัดไป

  4. ให้สิทธิ์ในการเผยแพร่ข้อความ Pub/Sub ไปยังหัวข้อของคุณโดยทำดังนี้

    1. ในหน้าของหัวข้อ ให้ไปที่แผงด้านข้างแล้วเปิดแท็บสิทธิ์
    2. คลิกเพิ่มหลัก
    3. ในช่องเพิ่มผู้ใช้หลัก ให้เพิ่มบัญชีบริการสำหรับแอปพลิเคชัน Google Workspace ที่ส่งกิจกรรมไปยังการสมัครใช้บริการของคุณ ดังนี้
      1. สำหรับกิจกรรมในแชท ให้ทำดังนี้
      2. สำหรับเหตุการณ์ในไดรฟ์ drive-api-event-push@system.gserviceaccount.com
      3. สำหรับกิจกรรมใน Meet meet-api-event-push@system.gserviceaccount.com
    4. ในเมนูมอบหมายบทบาท ให้เลือก Pub/Sub Publisher
    5. คลิกบันทึก การอัปเดตสิทธิ์สำหรับหัวข้ออาจใช้เวลาสักครู่

gcloud

  1. ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ ให้สร้างหัวข้อโดยเรียกใช้คำสั่งต่อไปนี้

    gcloud pubsub topics create TOPIC_ID

    แทนที่ TOPIC_ID ด้วยรหัสที่ไม่ซ้ำกันสำหรับหัวข้อ เช่น workspace-events-topic

    เอาต์พุตจะแสดงชื่อหัวข้อแบบเต็มในรูปแบบ projects/PROJECT_ID/topics/TOPIC_ID จดชื่อไว้ และตรวจสอบว่าค่าสำหรับ PROJECT_ID คือรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ สำหรับแอปของคุณ ใช้ชื่อหัวข้อในขั้นตอนต่อไป และเพื่อสร้าง การสมัครใช้บริการ Google Workspace ในภายหลัง

  2. ให้สิทธิ์เข้าถึงเพื่อเผยแพร่ข้อความไปยังหัวข้อของคุณ

    gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'

    แทนที่ค่าต่อไปนี้

    • TOPIC_NAME: ชื่อหัวข้อแบบเต็ม ซึ่งเป็น เอาต์พุตจากขั้นตอนก่อนหน้า จัดรูปแบบเป็น projects/PROJECT_ID/topics/TOPIC_ID
    • GOOGLE_WORKSPACE_APPLICATION: แอปพลิเคชัน Google Workspace ที่ต้องส่งเหตุการณ์ไปยังการสมัครใช้บริการของคุณ

      • หากต้องการรับเหตุการณ์จาก Chat ให้ใช้บัญชีบริการต่อไปนี้
      • หากต้องการรับเหตุการณ์จาก ไดรฟ์ ให้ใช้ drive-api-event-push@system.gserviceaccount.com
      • หากต้องการรับกิจกรรมจาก Meet ให้ใช้ meet-api-event-push@system.gserviceaccount.com

    การอัปเดตสิทธิ์สำหรับหัวข้ออาจใช้เวลา 2-3 นาที

  3. สร้างการสมัครใช้บริการ Pub/Sub สำหรับหัวข้อ

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    แทนที่ค่าต่อไปนี้

    • SUBSCRIPTION_NAME: ชื่อสำหรับการสมัครใช้บริการ เช่น workspace-events-subscription
    • TOPIC_NAME: ชื่อหัวข้อที่คุณสร้าง ในขั้นตอนก่อนหน้า

ติดตามแหล่งข้อมูลของ Google Workspace

ในส่วนนี้ คุณจะติดตามทรัพยากร Google Workspace ที่ต้องการ ตรวจสอบเหตุการณ์

เลือกและระบุแหล่งข้อมูลเป้าหมาย

ในการสมัครใช้บริการ Google Workspace ทรัพยากรเป้าหมายคือ ทรัพยากร Google Workspace ที่คุณตรวจสอบหาเหตุการณ์ เป้าหมาย ทรัพยากรจะแสดงในฟิลด์targetResource ของการสมัครใช้บริการ โดยจัดรูปแบบโดยใช้ชื่อทรัพยากรแบบเต็ม ตัวอย่างเช่น สำหรับการสมัครใช้บริการ ที่ตรวจสอบพื้นที่ใน Chat (spaces/AAAABBBBBBB) ค่าของ targetResource คือ //chat.googleapis.com/spaces/AAAABBBBBBB

ระบุแหล่งข้อมูลเป้าหมายสำหรับ Chat

ทรัพยากรเป้าหมาย รูปแบบ ข้อจำกัด
Space

//chat.googleapis.com/spaces/SPACE

โดย SPACE คือรหัสใน ชื่อทรัพยากรของทรัพยากร space ใน Chat API คุณดูรหัสได้จาก URL ของพื้นที่ทำงานหรือใช้เมธอด spaces.list()

ผู้ใช้ Chat หรือแอปใน Chat ที่ให้สิทธิ์การสมัครใช้บริการต้อง เป็นสมาชิกของพื้นที่ทำงานผ่านบัญชี Google Workspace หรือบัญชี Google รองรับ
พื้นที่ทั้งหมดสำหรับผู้ใช้

//chat.googleapis.com/spaces/-

การสมัครใช้บริการจะรับเฉพาะกิจกรรมสำหรับพื้นที่ทำงานที่ผู้ใช้เป็นสมาชิกผ่านบัญชี Google Workspace หรือบัญชี Google เท่านั้น รองรับเฉพาะการตรวจสอบสิทธิ์ของผู้ใช้
ผู้ใช้

//cloudidentity.googleapis.com/users/USER

โดย USER คือรหัสใน ชื่อทรัพยากรของทรัพยากร user ใน Chat API โปรดดูรายละเอียดที่หัวข้อ ระบุและกำหนด ผู้ใช้ Google Chat

การสมัครใช้บริการจะได้รับเฉพาะเหตุการณ์เกี่ยวกับผู้ใช้ที่ ให้สิทธิ์การสมัครใช้บริการเท่านั้น ผู้ใช้ไม่สามารถให้สิทธิ์การสมัครใช้บริการในนามของผู้ใช้รายอื่นได้ รองรับเฉพาะการตรวจสอบสิทธิ์ของผู้ใช้

ลูกค้า ( เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์)

//admin.googleapis.com/customers/CUSTOMER

โดย CUSTOMER คือรหัสลูกค้า นอกจากนี้ คุณยังใช้my_customerนามแฝงสำหรับโดเมนที่กำหนดเองของแอป Chat ได้ด้วย

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

ระบุทรัพยากรเป้าหมายสำหรับไดรฟ์

ทรัพยากรเป้าหมาย รูปแบบ ข้อจำกัด (หากมี)
ไฟล์ //drive.googleapis.com/files/FILE

โดย FILE คือรหัสใน ชื่อทรัพยากร ของทรัพยากร Drive API files คุณดูรหัสได้จาก URL ของไฟล์หรือโดยใช้เมธอด files.list

ผู้ใช้ที่ให้สิทธิ์การสมัครใช้บริการต้องมีสิทธิ์ในไฟล์ภายใน การสมัครใช้บริการที่เกี่ยวข้องกับการสมัครรับข้อมูลเหตุการณ์
ไดรฟ์ที่แชร์ //drive.googleapis.com/drives/DRIVE

โดย DRIVE คือรหัสใน ชื่อทรัพยากร ของทรัพยากร Drive API drives คุณดูรหัสได้จาก URL ของไดรฟ์หรือโดยใช้เมธอด drives.list

การสมัครใช้บริการจะรับเฉพาะเหตุการณ์สำหรับรายการในไดรฟ์ที่แชร์ซึ่งผู้ใช้เป็น สมาชิกผ่านบัญชี Google Workspace หรือบัญชี Google

ระบุทรัพยากรเป้าหมายสำหรับ Meet

ทรัพยากรเป้าหมาย รูปแบบ ข้อจำกัด (หากมี)
พื้นที่การประชุม //meet.googleapis.com/spaces/SPACE

โดย SPACE คือรหัสใน ชื่อทรัพยากรของทรัพยากร Meet REST API spaces โปรดดูรายละเอียดที่หัวข้อ วิธีที่ Meet ระบุพื้นที่การประชุม

ผู้ใช้ //cloudidentity.googleapis.com/users/USER

โดย USER คือรหัสในฟิลด์ signedinUser.user ของแหล่งข้อมูล participants ใน Meet REST API โปรดดูรายละเอียดที่หัวข้อ ทำงานร่วมกับผู้เข้าร่วม

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

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

หากต้องการสร้างการสมัครใช้บริการ ให้ใช้วิธีการของ Google Workspace Events API subscriptions.create เพื่อสร้างแหล่งข้อมูล Subscription ระบุช่องต่อไปนี้

  • targetResource: Google Workspace ที่คุณระบุไว้ในส่วนก่อนหน้า โดยจัดรูปแบบโดยใช้ชื่อทรัพยากรแบบเต็ม
  • eventTypes: อาร์เรย์ของประเภทเหตุการณ์อย่างน้อย 1 ประเภทที่คุณต้องการรับเกี่ยวกับ ทรัพยากร เช่น หากแอปของคุณต้องการทราบเฉพาะข้อความใหม่ที่โพสต์ในพื้นที่ทำงานของ Chat แอปก็สามารถติดตามกิจกรรมเกี่ยวกับข้อความที่สร้างขึ้นได้
  • notificationEndpoint: ปลายทางการแจ้งเตือนที่การสมัครใช้บริการ Google Workspace จะส่งกิจกรรม ใช้หัวข้อ Pub/Sub ที่คุณสร้างในส่วนก่อนหน้า
  • payloadOptions: ตัวเลือกในการระบุปริมาณข้อมูลทรัพยากรที่จะรวมไว้ใน เพย์โหลดของเหตุการณ์ การกำหนดค่านี้มีผลต่อเวลาหมดอายุของการสมัครใช้บริการ ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลเหตุการณ์

วิธีสร้างการสมัครใช้บริการ Google Workspace

Apps Script

  1. ในโปรเจ็กต์ Apps Script ให้สร้างไฟล์สคริปต์ใหม่ ชื่อ createSubscription แล้วเพิ่มโค้ดต่อไปนี้

    function createSubscription() {
      // The Google Workspace resource to monitor for events.
      const targetResource = 'TARGET_RESOURCE';
    
      // The types of events to receive.
      const eventTypes = [EVENT_TYPES];
    
      // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
      const pubsubTopic = 'TOPIC_NAME';
    
      // Whether to include resource data or not.
      const resourceData = RESOURCE_DATA;
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.create({
        targetResource: targetResource,
        eventTypes: eventTypes,
        notificationEndpoint: {
          pubsubTopic: pubsubTopic,
        },
        payloadOptions: {
          includeResource: resourceData
        }
      });
      console.log(response);
    }
    

    แทนที่ค่าต่อไปนี้

    • TARGET_RESOURCE: ทรัพยากร Google Workspace ที่คุณสมัครใช้บริการ ซึ่งจัดรูปแบบเป็นชื่อทรัพยากรแบบเต็ม เช่น หากต้องการติดตามพื้นที่ใน Chat ที่มีรหัสพื้นที่ AAAABBBB ให้ใช้ //chat.googleapis.com/spaces/AAAABBBB
    • EVENT_TYPES: ประเภทเหตุการณ์อย่างน้อย 1 รายการ ที่คุณต้องการติดตามในทรัพยากรเป้าหมาย จัดรูปแบบเป็น อาร์เรย์ของสตริง เช่น 'google.workspace.chat.message.v1.created'
    • TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ จัดรูปแบบเป็น projects/PROJECT_ID/topics/TOPIC_ID
    • RESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการมีข้อมูลทรัพยากรในเพย์โหลดหรือไม่

      • True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดช่องที่จะรวม ให้เพิ่มฟิลด์ fieldMask และระบุฟิลด์อย่างน้อย 1 รายการสำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการสมัครใช้บริการแหล่งข้อมูล Chat เท่านั้นที่รองรับการรวมข้อมูลแหล่งข้อมูล
      • False: ไม่รวมข้อมูลทรัพยากร
  2. หากต้องการสร้างการสมัครใช้บริการ Google Workspace ให้เรียกใช้ฟังก์ชัน createSubscription ในโปรเจ็กต์ Apps Script

Python

  1. สร้างไฟล์ชื่อ create_subscription.py ในไดเรกทอรีที่ทำงานอยู่ แล้วเพิ่มโค้ดต่อไปนี้

    """Create subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # The Google Workspace resource to monitor for events.
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    # The types of events to receive.
    EVENT_TYPES = [EVENT_TYPES]
    
    # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
    TOPIC = 'TOPIC_NAME'
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    BODY = {
        'target_resource': TARGET_RESOURCE,
        'event_types': EVENT_TYPES,
        'notification_endpoint': {'pubsub_topic': TOPIC},
        'payload_options': {'include_resource': RESOURCE_DATA},
    }
    response = service.subscriptions().create(body=BODY).execute()
    print(response)
    

    แทนที่ค่าต่อไปนี้

    • SCOPES: ขอบเขต OAuth อย่างน้อย 1 รายการที่รองรับแต่ละประเภทเหตุการณ์ สำหรับการสมัครใช้บริการ จัดรูปแบบเป็นอาร์เรย์ของสตริง หากต้องการแสดงขอบเขตหลายรายการ ให้คั่นด้วยคอมมา เช่น 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
    • TARGET_RESOURCE: ทรัพยากร Google Workspace ที่คุณสมัครใช้บริการ ซึ่งจัดรูปแบบเป็นชื่อทรัพยากรแบบเต็ม เช่น หากต้องการติดตามพื้นที่ใน Chat ที่มีรหัสพื้นที่ AAAABBBB ให้ใช้ //chat.googleapis.com/spaces/AAAABBBB
    • EVENT_TYPES: ประเภทเหตุการณ์อย่างน้อย 1 รายการ ที่คุณต้องการติดตามในทรัพยากรเป้าหมาย จัดรูปแบบเป็น อาร์เรย์ของสตริง เช่น 'google.workspace.chat.message.v1.created'
    • TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ จัดรูปแบบเป็น projects/PROJECT_ID/topics/TOPIC_ID
    • RESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการมีข้อมูลทรัพยากรในเพย์โหลดหรือไม่

      • True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดช่องที่จะรวม ให้เพิ่มฟิลด์ fieldMask และระบุฟิลด์อย่างน้อย 1 รายการสำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการสมัครใช้บริการแหล่งข้อมูล Chat เท่านั้นที่รองรับการรวมข้อมูลแหล่งข้อมูล
      • False: ไม่รวมข้อมูลทรัพยากร
  2. หากต้องการสร้างการสมัครใช้บริการ Google Workspace ให้เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล

    python3 create_subscription.py

Google Workspace Events API จะแสดงการดำเนินการที่ใช้เวลานานที่เสร็จสมบูรณ์แล้ว ซึ่งมีอินสแตนซ์ของSubscriptionทรัพยากรที่คุณสร้างขึ้น

ทดสอบการสมัครใช้บริการ Google Workspace

หากต้องการทดสอบว่าคุณได้รับเหตุการณ์ Google Workspace หรือไม่ คุณสามารถทริกเกอร์ เหตุการณ์และดึงข้อความไปยังการสมัครใช้บริการ Pub/Sub ได้

วิธีทดสอบการสมัครใช้บริการ Google Workspace

คอนโซล Google API

  1. ทริกเกอร์เหตุการณ์อย่างน้อย 1 ประเภทในทรัพยากรเป้าหมายของการสมัครใช้บริการ Google Workspace เช่น หากคุณติดตาม ข้อความใหม่ในพื้นที่ใน Chat ให้โพสต์ข้อความในพื้นที่ ดังกล่าว

  2. ในคอนโซล Google API ให้ไปที่หน้า Pub/Sub โดยทำดังนี้

    ไปที่ Pub/Sub

    ตรวจสอบว่าได้เลือกโปรเจ็กต์ที่อยู่ในระบบคลาวด์สำหรับแอปแล้ว

  3. ในเมนู Pub/Sub ให้คลิกการสมัครใช้บริการ

  4. ในตาราง ให้ค้นหาการสมัครใช้บริการ Pub/Sub สำหรับหัวข้อของคุณ แล้วคลิก ชื่อการสมัครใช้บริการ

  5. คลิกแท็บข้อความ

  6. คลิกดึง เหตุการณ์อาจใช้เวลา 2-3 นาทีในการสร้างข้อความ Pub/Sub

gcloud

  1. ทริกเกอร์เหตุการณ์อย่างน้อย 1 ประเภทในทรัพยากรเป้าหมายของการสมัครใช้บริการ Google Workspace เช่น หากคุณสมัครรับข้อมูล ข้อความใหม่ในพื้นที่ใน Chat ให้โพสต์ข้อความในพื้นที่

  2. เรียกใช้คำสั่งต่อไปนี้

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    แทนที่ค่าต่อไปนี้

    • PUBSUB_SUBSCRIPTION_NAME: ชื่อเต็มของ การสมัครใช้บริการ Pub/Sub ที่จัดรูปแบบเป็น projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID
    • MESSAGE_COUNT: จำนวนข้อความ Pub/Sub สูงสุดที่ต้องการดึง

    เหตุการณ์อาจใช้เวลา 2-3 นาทีในการสร้างข้อความ Pub/Sub

สำหรับเหตุการณ์ Google Workspace แต่ละรายการที่คุณทริกเกอร์ ระบบจะส่งข้อความไปยังการสมัครใช้บริการ Pub/Sub ที่มีเหตุการณ์นั้น โปรดดูรายละเอียดที่หัวข้อรับเหตุการณ์เป็นข้อความ Google Cloud Pub/Sub

กำหนดค่าวิธีที่แอปรับเหตุการณ์

การสมัครใช้บริการ Pub/Sub ที่คุณสร้างขึ้นเป็นแบบดึง หลังจากทดสอบการสมัครใช้บริการ Pub/Sub แล้ว คุณสามารถอัปเดตประเภทการนำส่งเพื่อเปลี่ยนวิธีที่แอปรับเหตุการณ์ได้ เช่น คุณสามารถกำหนดค่าการสมัครใช้บริการ Pub/Sub เป็น ประเภทการนำส่งแบบพุช เพื่อให้แอปรับเหตุการณ์ไปยังปลายทางของแอปได้โดยตรง

ดูข้อมูลเกี่ยวกับการกำหนดค่าการสมัครใช้บริการ Pub/Sub ได้ที่เอกสารประกอบของ Pub/Sub

ติดตามกิจกรรมในพื้นที่ทำงานของ Chat ในฐานะแอป Google Chat

คุณสามารถติดตามกิจกรรมใน Chat ในฐานะ แอป Chat จากพื้นที่ทำงานที่ แอป Chat เป็นสมาชิกได้ แอปใน Chat ไม่สามารถติดตามเหตุการณ์ของผู้ใช้ได้

เขียนสคริปต์ที่เรียก Google Workspace Events API

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

  1. หากจำเป็น ให้สร้างแอปใน Chat
  2. สมัครใช้ทรัพยากร Chat แต่

    1. ตรวจสอบสิทธิ์ในฐานะแอป Chat โดยรับการอนุมัติจากผู้ดูแลระบบแบบครั้งเดียวแทนการตรวจสอบสิทธิ์ของผู้ใช้
    2. ระบุขอบเขตการให้สิทธิ์ที่อนุญาตให้แอปใน Chat สมัครรับข้อมูลเหตุการณ์ใน Chat ขอบเขตการให้สิทธิ์เหล่านี้จะเริ่มต้นด้วย chat.app เสมอ และ รวมถึงรายการต่อไปนี้

      • https://www.googleapis.com/auth/chat.app.memberships: ติดตามกิจกรรมของสมาชิกในพื้นที่ใน Chat
      • https://www.googleapis.com/auth/chat.app.memberships.readonly: ติดตามกิจกรรมของสมาชิกในพื้นที่ใน Chat
      • https://www.googleapis.com/auth/chat.app.messages.readonly: ติดตามข้อความในพื้นที่ Chat และกิจกรรมรีแอ็กชัน
      • https://www.googleapis.com/auth/chat.app.spaces: ติดตามกิจกรรมในพื้นที่ Chat
      • https://www.googleapis.com/auth/chat.app.spaces.readonly: ติดตามกิจกรรมในพื้นที่ Chat

ตัวอย่างโค้ดต่อไปนี้จะติดตามเหตุการณ์ข้อความในพื้นที่ทำงาน Chat ที่ระบุ

Python

  """Create subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # The Google Workspace resource to monitor for events.
  TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'

  # The types of events to receive.
  EVENT_TYPES = [
                  'google.workspace.chat.message.v1.created',
                  'google.workspace.chat.message.v1.updated',
                  'google.workspace.chat.message.v1.deleted',
                ]

  # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
  TOPIC = 'TOPIC_NAME'

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1',
      credentials=CREDENTIALS,
  )

  BODY = {
      'target_resource': TARGET_RESOURCE,
      'event_types': EVENT_TYPES,
      'notification_endpoint': {'pubsub_topic': TOPIC},
      'payload_options': {'include_resource': RESOURCE_DATA},
  }
  response = service.subscriptions().create(body=BODY).execute()
  print(response)

แทนที่ค่าต่อไปนี้

  • SPACE_ID: ชื่อพื้นที่ ซึ่งคุณดูได้จากเมธอด spaces.list ใน Chat API หรือจาก URL ของพื้นที่
  • TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ จัดรูปแบบเป็น projects/PROJECT_ID/topics/TOPIC_ID
  • RESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการมีข้อมูลทรัพยากรในเพย์โหลดหรือไม่

    • True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดช่องที่จะรวม ให้เพิ่มฟิลด์ fieldMask และระบุฟิลด์อย่างน้อย 1 รายการสำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการสมัครใช้บริการแหล่งข้อมูล Chat เท่านั้นที่รองรับการรวมข้อมูลแหล่งข้อมูล
    • False: ไม่รวมข้อมูลทรัพยากร

สมัครรับข้อมูลกิจกรรม Chat ทั้งหมดในองค์กร Google Workspace ในฐานะแอป Google Chat

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

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

ข้อกำหนดและข้อจำกัด

  • การตรวจสอบสิทธิ์: ตรวจสอบสิทธิ์ในฐานะแอป Chat ด้วยการอนุมัติจากผู้ดูแลระบบแบบครั้งเดียว
  • SKU: องค์กร Google Workspace ต้องมีใบอนุญาต SKU ของ Enterprise อย่างน้อย 1 ใบ โปรดทราบว่าข้อกำหนดนี้จะไม่มีการบังคับใช้อย่างเคร่งครัดในระยะโปรแกรมเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ แต่จะมีการบังคับใช้ในอนาคต (จะมีการประกาศแยกต่างหาก)
  • ความไม่ซ้ำกัน: แอป Chat จะสร้างการสมัครใช้บริการของลูกค้าได้เพียง 1 รายการสำหรับองค์กร Google Workspace ที่กำหนด องค์กร Google Workspace สามารถมีการสมัครใช้บริการของลูกค้าได้สูงสุด 5 รายการ (สร้างโดยแอป Chat ต่างๆ)
  • ขอบเขต: ต้องมีขอบเขตต่อไปนี้อย่างน้อย 1 รายการ ทั้งนี้ขึ้นอยู่กับประเภทเหตุการณ์ที่คุณต้องการรับ
    • https://www.googleapis.com/auth/chat.app.all.spaces.readonly: หากต้องการรับกิจกรรมเกี่ยวกับพื้นที่
    • https://www.googleapis.com/auth/chat.app.all.memberships.readonly: เพื่อรับกิจกรรมเกี่ยวกับการเป็นสมาชิก
    • https://www.googleapis.com/auth/chat.app.all.messages.readonly: เพื่อรับเหตุการณ์เกี่ยวกับข้อความและรีแอ็กชัน
    • https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly ( เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์): เพื่อรับเหตุการณ์เกี่ยวกับสถานะการอ่านของผู้ใช้

สร้างการสมัครใช้บริการของลูกค้า

หากต้องการสร้างการสมัครใช้บริการของลูกค้า ให้เรียกใช้เมธอด subscriptions.create

ตัวอย่างโค้ด Python ต่อไปนี้จะสร้างการสมัครใช้บริการของลูกค้า

Python

"""Create a customer subscription."""

from google.oauth2 import service_account
from apiclient.discovery import build

# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']

# Specify service account details.
CREDENTIALS = (
    service_account.Credentials.from_service_account_file('credentials.json')
    .with_scopes(SCOPES)
)

# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_ID'

# The types of events to receive.
EVENT_TYPES = [
    'google.workspace.chat.message.v1.created',
    'google.workspace.chat.message.v1.updated',
    'google.workspace.chat.message.v1.deleted',
]

# The endpoint to deliver events to.
TOPIC = 'TOPIC_NAME'

# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
service = build(
    'workspaceevents',
    'v1beta',
    credentials=CREDENTIALS,
)

BODY = {
    'target_resource': TARGET_RESOURCE,
    'event_types': EVENT_TYPES,
    'notification_endpoint': {'pubsub_topic': TOPIC},
    'payload_options': {'include_resource': RESOURCE_DATA},
}

response = service.subscriptions().create(body=BODY).execute()
print(response)

แทนที่ค่าต่อไปนี้

  • CUSTOMER_ID: รหัสลูกค้า นอกจากนี้ คุณยังใช้my_customerนามแฝงสำหรับองค์กร Google Workspace ของแอป Chat ได้ด้วย
  • TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ จัดรูปแบบเป็น projects/PROJECT_ID/topics/TOPIC_ID
  • RESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการมีข้อมูลทรัพยากรในเพย์โหลดหรือไม่
    • True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดฟิลด์ที่จะรวม ให้เพิ่มฟิลด์ fieldMask และระบุฟิลด์อย่างน้อย 1 รายการสำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการติดตามแหล่งข้อมูล Chat เท่านั้นที่รองรับการรวมข้อมูลแหล่งข้อมูล
    • False: ไม่รวมข้อมูลทรัพยากร