หน้านี้อธิบายวิธีใช้ Google Workspace Events API เพื่อสร้าง การสมัครใช้บริการทรัพยากร Google Workspace การสมัครใช้บริการ Google Workspace ช่วยให้แอปของคุณรับข้อมูลเกี่ยวกับเหตุการณ์ใน Google Workspace ซึ่ง แสดงถึงการเปลี่ยนแปลงทรัพยากรใน Google Workspace ดูข้อมูลเกี่ยวกับทรัพยากรและประเภทเหตุการณ์ที่ Google Workspace Events API รองรับได้ที่ภาพรวมของ Google Workspace Events API
หน้านี้มีขั้นตอนต่อไปนี้สำหรับการสร้างการสมัครใช้บริการ Google Workspace
- ตั้งค่าสภาพแวดล้อม
- สร้างและสมัครใช้บริการหัวข้อ Google Cloud Pub/Sub คุณใช้หัวข้อนี้เป็น ปลายทางเพื่อรับเหตุการณ์ใน Google Workspace
- เรียกใช้เมธอด createของ Google Workspace Events API ในทรัพยากรSubscription
- ทดสอบการสมัครใช้บริการ Google Workspace เพื่อยืนยันว่าหัวข้อ Pub/Sub ได้รับเหตุการณ์ที่คุณสมัครใช้บริการ
- คุณจะกำหนดค่าวิธีพุชเหตุการณ์ไปยังปลายทางสำหรับแอปก็ได้ เพื่อให้แอปประมวลผลเหตุการณ์และดำเนินการหากจำเป็น
ข้อกำหนดเบื้องต้น
Apps Script
- หากต้องการใช้คำสั่ง Google Cloud CLI ในคู่มือนี้ ให้ทำดังนี้
- ติดตั้ง Google Cloud CLI
- หากต้องการ
    เริ่มต้น CLI ของ gcloudให้เรียกใช้โค้ดต่อไปนี้
 gcloud init 
- โปรเจ็กต์ Apps Script- ใช้โปรเจ็กต์ Google Cloud แทนโปรเจ็กต์เริ่มต้นที่ Apps Script สร้างขึ้นโดยอัตโนมัติ
- สำหรับขอบเขตทั้งหมดที่คุณเพิ่มเพื่อกำหนดค่าหน้าจอขอความยินยอม OAuth คุณต้องเพิ่มขอบเขตลงในไฟล์ appsscript.jsonในโปรเจ็กต์ Apps Script ด้วย เช่น หากคุณระบุขอบเขตchat.messagesให้เพิ่มสิ่งต่อไปนี้
- เปิดใช้
      Google Workspace Eventsบริการขั้นสูง
 "oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ] 
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน สำหรับการสมัครใช้บริการ Chat คุณต้อง เปิดใช้ Chat API ในโปรเจ็กต์ Cloud และ กำหนดค่าช่องชื่อแอป, URL รูปโปรไฟล์ และคำอธิบาย ด้วย โปรดดูรายละเอียดที่หัวข้อ สร้างแอป Google Chat
- 
    ต้องมีการตรวจสอบสิทธิ์และขอบเขตการให้สิทธิ์ที่เหมาะสมสำหรับเหตุการณ์แต่ละประเภทในการสมัครใช้บริการ
    - โดยปกติแล้วต้องมีการตรวจสอบสิทธิ์ผู้ใช้ด้วยหน้าจอคำยินยอม OAuth ที่กำหนดค่าไว้สำหรับแอป เมื่อกำหนดค่าหน้าจอคำยินยอม คุณต้องระบุขอบเขตเพื่อรองรับเหตุการณ์แต่ละประเภทสำหรับการสมัครใช้บริการ หากต้องการกำหนดค่าหน้าจอความยินยอม และระบุขอบเขตที่จำเป็น โปรดดูเลือกขอบเขต
- หากต้องการติดตามกิจกรรมใน Chat ในฐานะแอปใน Chat คุณต้องตรวจสอบสิทธิ์แอปด้วยการอนุมัติของผู้ดูแลระบบแบบครั้งเดียว การติดตามกิจกรรม Chat ในฐานะแอป Chat พร้อมใช้งานในเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์
 
Python
- Python 3.6 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ pip
- ไลบรารีของไคลเอ็นต์ Google ล่าสุดสำหรับ Python หากต้องการติดตั้งหรืออัปเดต ให้เรียกใช้คำสั่งต่อไปนี้
    ในอินเทอร์เฟซบรรทัดคำสั่ง
  pip3 install --upgrade google-api-python-client google-auth-oauthlib 
- หากต้องการใช้คำสั่ง Google Cloud CLI ในคู่มือนี้ ให้ทำดังนี้
- ติดตั้ง Google Cloud CLI
- หากต้องการ
    เริ่มต้น CLI ของ gcloudให้เรียกใช้โค้ดต่อไปนี้
 gcloud init 
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน สำหรับการสมัครใช้บริการ Chat คุณต้อง เปิดใช้ Chat API ในโปรเจ็กต์ Cloud และ กำหนดค่าช่องชื่อแอป, URL รูปโปรไฟล์ และคำอธิบาย ด้วย โปรดดูรายละเอียดที่หัวข้อ สร้างแอป Google Chat
- 
    ต้องมีการตรวจสอบสิทธิ์และขอบเขตการให้สิทธิ์ที่เหมาะสมสำหรับเหตุการณ์แต่ละประเภทในการสมัครใช้บริการ
    - โดยปกติแล้วต้องมีการตรวจสอบสิทธิ์ผู้ใช้ด้วยหน้าจอคำยินยอม OAuth ที่กำหนดค่าไว้สำหรับแอป เมื่อกำหนดค่าหน้าจอคำยินยอม คุณต้องระบุขอบเขตเพื่อรองรับเหตุการณ์แต่ละประเภทสำหรับการสมัครใช้บริการ หากต้องการกำหนดค่าหน้าจอความยินยอม และระบุขอบเขตที่จำเป็น โปรดดูเลือกขอบเขต
- หากต้องการติดตามกิจกรรมใน Chat ในฐานะแอปใน Chat คุณต้องตรวจสอบสิทธิ์แอปด้วยการอนุมัติของผู้ดูแลระบบแบบครั้งเดียว การติดตามกิจกรรม Chat ในฐานะแอป Chat พร้อมใช้งานในเวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์
 
ตั้งค่าสภาพแวดล้อม
ส่วนต่อไปนี้จะอธิบายวิธีตั้งค่าสภาพแวดล้อมก่อนสร้างการสมัครใช้บริการ Google Workspace
เปิดใช้ Google Workspace Events API และ Google Cloud Pub/Sub API
ก่อนใช้ Google API คุณต้องเปิดใช้ API ในโปรเจ็กต์ Google Cloud คุณเปิด API อย่างน้อย 1 รายการในโปรเจ็กต์ Google Cloud เดียวได้คอนโซล Google Cloud
ใน Google Cloud Console ให้เปิดโปรเจ็กต์ Google Cloud สำหรับแอป แล้วเปิดใช้ Google Workspace Events API และ Pub/Sub API โดยทำดังนี้
gcloud
- ลงชื่อเข้าใช้บัญชี Google ในไดเรกทอรีการทำงานโดยทำดังนี้ - gcloud auth login
- ตั้งค่าโปรเจ็กต์เป็นโปรเจ็กต์ Cloud สำหรับแอปของคุณ - gcloud config set project PROJECT_ID- แทนที่ - PROJECT_IDด้วย รหัสโปรเจ็กต์สำหรับโปรเจ็กต์ Cloud ของแอป
- เปิดใช้ Google Workspace Events API และ Google Cloud Pub/Sub API โดยทำดังนี้ - gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
สร้างข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ OAuth
เลือกประเภทแอปพลิเคชันเพื่อดูวิธีการสร้างรหัสไคลเอ็นต์ OAuth โดยเฉพาะ
เว็บแอปพลิเคชัน
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > เว็บแอปพลิเคชัน
- ในช่องชื่อ ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
- เพิ่ม URI ที่ได้รับอนุญาตซึ่งเกี่ยวข้องกับแอปของคุณ
  - แอปฝั่งไคลเอ็นต์ (JavaScript) - ในส่วนต้นทาง JavaScript ที่ได้รับอนุญาต ให้คลิกเพิ่ม URI จากนั้นป้อน URI ที่จะใช้สำหรับคำขอของเบราว์เซอร์ ซึ่งจะระบุโดเมนที่แอปพลิเคชันของคุณสามารถส่งคำขอ API ไปยังเซิร์ฟเวอร์ OAuth 2.0 ได้
- แอปฝั่งเซิร์ฟเวอร์ (Java, Python และอื่นๆ) - ในส่วน URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต ให้คลิกเพิ่ม URI จากนั้นป้อน URI ของปลายทางที่เซิร์ฟเวอร์ OAuth 2.0 สามารถส่งการตอบกลับได้
 
- คลิกสร้าง
  ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วนรหัสไคลเอ็นต์ OAuth 2.0 จดรหัสไคลเอ็นต์ ระบบจะไม่ใช้รหัสลับไคลเอ็นต์สำหรับเว็บแอปพลิเคชัน 
Android
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > Android
- ในช่อง "ชื่อ" ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
- ในช่อง "ชื่อแพ็กเกจ" ให้ป้อนชื่อแพ็กเกจจากไฟล์ AndroidManifest.xml
- ในช่อง "ลายนิ้วมือใบรับรอง SHA-1" ให้ป้อนลายนิ้วมือใบรับรอง SHA-1 ที่สร้างขึ้น
- คลิกสร้าง
  ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0" 
iOS
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > iOS
- ในช่อง "ชื่อ" ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
- ในช่อง "รหัสชุด" ให้ป้อนรหัสชุดซอฟต์แวร์ที่แสดงในไฟล์ Info.plistของแอป
- ไม่บังคับ: หากแอปปรากฏใน Apple App Store ให้ป้อนรหัส App Store
- ไม่บังคับ: ในช่อง "รหัสทีม" ให้ป้อนสตริงแบบ 10 อักขระที่ไม่ซ้ำกันซึ่งสร้างโดย Apple และกำหนดให้กับทีมของคุณ
- คลิกสร้าง
  ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0" 
แอป Chrome
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > ส่วนขยาย Chrome
- ในช่อง "ชื่อ" ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
- ในช่อง "รหัสสินค้า" ให้ป้อนสตริงรหัส 32 อักขระที่ไม่ซ้ำกันของแอป คุณดูค่ารหัสนี้ได้ใน URL ของ Chrome เว็บสโตร์ของแอปและในแดชบอร์ดสำหรับนักพัฒนาซอฟต์แวร์ Chrome เว็บสโตร์
- คลิกสร้าง
  ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0" 
แอปบนเดสก์ท็อป
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > แอปเดสก์ท็อป
- ในช่องชื่อ ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
- คลิกสร้าง
  ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0" 
ทีวีและอุปกรณ์อินพุตที่จำกัด
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > ทีวีและอุปกรณ์ที่มีอินพุตจำกัด
- ในช่อง "ชื่อ" ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
- คลิกสร้าง
  ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0" 
Universal Windows Platform (UWP)
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > ไคลเอ็นต์
- คลิกสร้างไคลเอ็นต์
- คลิกประเภทแอปพลิเคชัน > Universal Windows Platform (UWP)
- ในช่อง "ชื่อ" ให้พิมพ์ชื่อของข้อมูลเข้าสู่ระบบ ชื่อนี้จะแสดงในคอนโซล Google Cloud เท่านั้น
- ในช่อง "รหัสร้านค้า" ให้ป้อนค่ารหัส Microsoft Store ที่ไม่ซ้ำกันของแอปซึ่งมี 12 อักขระ คุณดูรหัสนี้ได้ใน URL ของ Microsoft Store ของแอปและใน Partner Center
- คลิกสร้าง
  ข้อมูลเข้าสู่ระบบที่สร้างขึ้นใหม่จะปรากฏในส่วน "รหัสไคลเอ็นต์ OAuth 2.0" 
ดาวน์โหลดไฟล์ JSON ของรหัสลับไคลเอ็นต์
ไฟล์รหัสลับไคลเอ็นต์คือการแสดง JSON ของข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ OAuth ที่แอปของคุณอ้างอิงได้เมื่อระบุข้อมูลเข้าสู่ระบบ
- ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > ข้อมูลเข้าสู่ระบบ 
- ในส่วนรหัสไคลเอ็นต์ OAuth 2.0 ให้คลิกรหัสไคลเอ็นต์ที่สร้างขึ้น 
- คลิกดาวน์โหลด JSON 
- บันทึกไฟล์เป็น - credentials.json
สร้างและสมัครใช้บริการหัวข้อ Pub/Sub
ในส่วนนี้ คุณจะได้สร้างหัวข้อ Pub/Sub และการสมัครรับข้อมูลหัวข้อ หัวข้อ Pub/Sub จะทำหน้าที่เป็นปลายทางการแจ้งเตือนที่การสมัครใช้บริการ Google Workspace จะรับเหตุการณ์
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและจัดการหัวข้อ Pub/Sub ได้ที่เอกสารประกอบของ Pub/Sub
วิธีสร้างและสมัครใช้บริการหัวข้อ Pub/Sub
คอนโซล Google Cloud
- ในคอนโซล Google Cloud ให้ไปที่หน้า Pub/Sub โดยทำดังนี้ - ตรวจสอบว่าได้เลือกโปรเจ็กต์ Cloud สำหรับแอปแล้ว 
- คลิก สร้างหัวข้อ แล้วทำดังนี้ - ป้อนชื่อหัวข้อ เช่น workspace-events-topic
- เลือกเพิ่มการสมัครใช้บริการเริ่มต้นไว้ Pub/Sub จะตั้งชื่อการสมัครใช้บริการเริ่มต้นนี้
คล้ายกับชื่อของหัวข้อ เช่น
workspace-events-topic-sub
- ไม่บังคับ: อัปเดตหรือกําหนดค่าพร็อพเพอร์ตี้เพิ่มเติม สําหรับหัวข้อ
 
- ป้อนชื่อหัวข้อ เช่น 
- คลิกสร้าง ชื่อหัวข้อแบบเต็มจะจัดรูปแบบเป็น - projects/PROJECT_ID/topics/TOPIC_IDคุณจะใช้ชื่อเต็มนี้ในขั้นตอนถัดไป
- ให้สิทธิ์เข้าถึงเพื่อเผยแพร่ข้อความ Pub/Sub ไปยังหัวข้อของคุณ - ในหน้าของหัวข้อ ให้ไปที่แผงด้านข้างแล้วเปิดแท็บสิทธิ์
- คลิกเพิ่มผู้รับมอบสิทธิ์
- ในช่องเพิ่มผู้ใช้หลัก ให้เพิ่มบัญชีบริการสำหรับ
แอปพลิเคชัน Google Workspace ที่ส่งกิจกรรมไปยัง
การสมัครใช้บริการของคุณ
- สำหรับกิจกรรมใน Chat
chat-api-push@system.gserviceaccount.com
- รุ่นตัวอย่างสำหรับนักพัฒนาแอป: สำหรับเหตุการณ์ในไดรฟ์
drive-api-event-push@system.gserviceaccount.com
- สำหรับกิจกรรม Meet
meet-api-event-push@system.gserviceaccount.com
 
- สำหรับกิจกรรมใน Chat
- ในเมนูมอบหมายบทบาท ให้เลือก Pub/Sub Publisher
- คลิกบันทึก การอัปเดตสิทธิ์สำหรับหัวข้ออาจใช้เวลาสักครู่
 
gcloud
- ในโปรเจ็กต์ Cloud ให้สร้างหัวข้อโดยเรียกใช้คำสั่งต่อไปนี้ - gcloud pubsub topics create TOPIC_ID- แทนที่ - TOPIC_IDด้วยรหัสที่ไม่ซ้ำกันสำหรับหัวข้อ เช่น- workspace-events-topic- เอาต์พุตจะแสดงชื่อหัวข้อแบบเต็มในรูปแบบ - projects/PROJECT_ID/topics/TOPIC_IDจดชื่อไว้ และตรวจสอบว่าค่าสำหรับ PROJECT_ID คือรหัสโปรเจ็กต์ Cloud สำหรับแอปของคุณ คุณจะใช้ชื่อหัวข้อในขั้นตอนต่อไป และเพื่อสร้าง การสมัครใช้บริการ Google Workspace ในภายหลัง
- ให้สิทธิ์เข้าถึงเพื่อเผยแพร่ข้อความไปยังหัวข้อของคุณ - 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 ให้ใช้
chat-api-push@system.gserviceaccount.com
- เวอร์ชันตัวอย่างสำหรับนักพัฒนาแอป: หากต้องการรับเหตุการณ์จากไดรฟ์ ให้ใช้
drive-api-event-push@system.gserviceaccount.com
- หากต้องการรับเหตุการณ์จาก Meet ให้ใช้
meet-api-event-push@system.gserviceaccount.com
 
- หากต้องการรับเหตุการณ์จาก Chat ให้ใช้
 - การอัปเดตสิทธิ์สำหรับหัวข้ออาจใช้เวลาสักครู่ 
- สร้างการสมัครใช้บริการ 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
ของการสมัครใช้บริการ โดยจัดรูปแบบโดยใช้ชื่อทรัพยากรแบบเต็ม เช่น สำหรับการสมัครใช้บริการ
ที่ตรวจสอบพื้นที่ใน Google Chat (spaces/AAAABBBBBBB) ค่าของ
targetResource คือ //chat.googleapis.com/spaces/AAAABBBBBBB
ระบุแหล่งข้อมูลเป้าหมายสำหรับ Chat
| ทรัพยากรเป้าหมาย | รูปแบบ | ข้อจำกัด | 
|---|---|---|
| Space | 
 โดย SPACE คือรหัสใน
      
      ชื่อทรัพยากรของทรัพยากร  | ผู้ใช้ Chat หรือแอป Chat ที่ให้สิทธิ์การสมัครใช้บริการต้องเป็นสมาชิกของพื้นที่ทำงานผ่านบัญชี Google Workspace หรือบัญชี Google รองรับ | 
| พื้นที่ทั้งหมดสำหรับผู้ใช้ | 
 | การสมัครใช้บริการจะรับเฉพาะกิจกรรมสำหรับพื้นที่ทำงานที่ผู้ใช้เป็นสมาชิกผ่านบัญชี Google Workspace หรือบัญชี Google เท่านั้น รองรับเฉพาะการตรวจสอบสิทธิ์ของผู้ใช้ | 
| ผู้ใช้ | 
 โดย USER คือรหัสใน
      
      ชื่อทรัพยากรของทรัพยากร  | การสมัครใช้บริการจะได้รับเฉพาะเหตุการณ์เกี่ยวกับผู้ใช้ที่ ให้สิทธิ์การสมัครใช้บริการเท่านั้น ผู้ใช้ไม่สามารถให้สิทธิ์การสมัครใช้บริการในนามของผู้ใช้รายอื่นได้ รองรับเฉพาะการตรวจสอบสิทธิ์ของผู้ใช้ | 
ระบุทรัพยากรเป้าหมายสำหรับไดรฟ์
| ทรัพยากรเป้าหมาย | รูปแบบ | ข้อจำกัด (หากมี) | 
|---|---|---|
| ไฟล์ | //drive.googleapis.com/files/FILE
          โดย FILE คือรหัสใน
          
            ชื่อทรัพยากร
          ของทรัพยากร  | ผู้ใช้ที่ให้สิทธิ์การติดตามต้องมีสิทธิ์ในไฟล์ภายใน การติดตามที่เกี่ยวข้องกับเหตุการณ์การติดตาม | 
| ไดรฟ์ที่แชร์ | //drive.googleapis.com/drives/DRIVE
          โดย DRIVE คือรหัสใน
           ชื่อทรัพยากร
          ของทรัพยากร  | การสมัครใช้บริการจะรับเฉพาะเหตุการณ์สำหรับรายการในไดรฟ์ที่แชร์ซึ่งผู้ใช้เป็นสมาชิกผ่านบัญชี Google Workspace หรือบัญชี Google | 
ระบุแหล่งข้อมูลเป้าหมายสำหรับ Meet
| ทรัพยากรเป้าหมาย | รูปแบบ | ข้อจำกัด (หากมี) | 
|---|---|---|
| สถานที่ประชุม | //meet.googleapis.com/spaces/SPACEโดย SPACE คือรหัสใน
      
      ชื่อทรัพยากรของทรัพยากร  | |
| ผู้ใช้ | //cloudidentity.googleapis.com/users/USERโดย USER คือรหัสในฟิลด์
      
       | การสมัครรับข้อมูลจะได้รับเหตุการณ์เกี่ยวกับพื้นที่การประชุมทั้งหมดที่ผู้ใช้เป็นเจ้าของ พื้นที่การประชุม โดยปกติแล้ว เจ้าของพื้นที่การประชุมจะเป็นผู้จัด กิจกรรมใน Google ปฏิทินที่เชื่อมโยงกับพื้นที่การประชุมด้วย | 
สร้างการสมัครใช้บริการ Google Workspace
หากต้องการสร้างการสมัครใช้บริการ คุณต้องใช้เมธอด subscriptions.create ของ Google Workspace Events API เพื่อสร้างทรัพยากร Subscription
คุณระบุช่องต่อไปนี้
- targetResource: Google Workspace ที่คุณระบุไว้ในส่วนก่อนหน้า ซึ่งจัดรูปแบบโดยใช้ชื่อทรัพยากรแบบเต็ม
- eventTypes: อาร์เรย์ของประเภทเหตุการณ์อย่างน้อย 1 ประเภทที่คุณต้องการรับเกี่ยวกับ ทรัพยากร เช่น หากแอปของคุณต้องการทราบเฉพาะข้อความใหม่ที่โพสต์ในพื้นที่ทำงานของ Chat แอปก็สามารถติดตามเหตุการณ์เกี่ยวกับข้อความที่สร้างขึ้นได้
- notificationEndpoint: ปลายทางการแจ้งเตือนที่การสมัครใช้บริการ Google Workspace จะส่งกิจกรรม คุณใช้หัวข้อ Pub/Sub ที่สร้างไว้ในส่วนก่อนหน้า
- payloadOptions: ตัวเลือกในการระบุปริมาณข้อมูลทรัพยากรที่จะรวมไว้ใน เพย์โหลดเหตุการณ์ การกำหนดค่านี้ส่งผลต่อเวลาหมดอายุของการสมัครใช้บริการ ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลเหตุการณ์
วิธีสร้างการสมัครใช้บริการ Google Workspace
Apps Script
- ในโปรเจ็กต์ 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 ที่คุณสมัครใช้บริการ ซึ่งจัดรูปแบบเป็นชื่อทรัพยากรแบบเต็ม เช่น หากต้องการติดตามพื้นที่ใน Google Chat ที่มีรหัสพื้นที่- AAAABBBBให้ใช้- //chat.googleapis.com/spaces/AAAABBBB
- EVENT_TYPES: ประเภทเหตุการณ์อย่างน้อย 1 รายการ ที่คุณต้องการสมัครรับข้อมูลในแหล่งข้อมูลเป้าหมาย จัดรูปแบบเป็น อาร์เรย์ของสตริง เช่น- 'google.workspace.chat.message.v1.created'
- TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ Cloud โดยมีรูปแบบเป็น- projects/PROJECT_ID/topics/TOPIC_ID
- RESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการมีข้อมูลทรัพยากรในเพย์โหลดหรือไม่- True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดช่องที่จะรวม ให้เพิ่มฟิลด์- fieldMaskและระบุอย่างน้อย 1 ฟิลด์สำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการสมัครใช้บริการทรัพยากรของ Chat เท่านั้นที่รองรับการรวมข้อมูลทรัพยากร
- False: ไม่รวมข้อมูลทรัพยากร
 
 
- หากต้องการสร้างการสมัครใช้บริการ Google Workspace ให้เรียกใช้ฟังก์ชัน - createSubscriptionในโปรเจ็กต์ Apps Script
Python
- สร้างไฟล์ชื่อ - 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 ที่คุณสมัครใช้บริการ ซึ่งจัดรูปแบบเป็นชื่อทรัพยากรแบบเต็ม เช่น หากต้องการติดตามพื้นที่ใน Google Chat ที่มีรหัสพื้นที่- AAAABBBBให้ใช้- //chat.googleapis.com/spaces/AAAABBBB
- EVENT_TYPES: ประเภทเหตุการณ์อย่างน้อย 1 รายการ ที่คุณต้องการสมัครรับข้อมูลในแหล่งข้อมูลเป้าหมาย จัดรูปแบบเป็น อาร์เรย์ของสตริง เช่น- 'google.workspace.chat.message.v1.created'
- TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ Cloud โดยมีรูปแบบเป็น- projects/PROJECT_ID/topics/TOPIC_ID
- RESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการมีข้อมูลทรัพยากรในเพย์โหลดหรือไม่- True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดช่องที่จะรวม ให้เพิ่มฟิลด์- fieldMaskและระบุอย่างน้อย 1 ฟิลด์สำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการสมัครใช้บริการทรัพยากรของ Chat เท่านั้นที่รองรับการรวมข้อมูลทรัพยากร
- False: ไม่รวมข้อมูลทรัพยากร
 
 
- หากต้องการสร้างการสมัครใช้บริการ Google Workspace ให้เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล - python3 create_subscription.py
Google Workspace Events API จะแสดงการดำเนินการที่ใช้เวลานานที่เสร็จสมบูรณ์แล้ว ซึ่งมีการ
อินสแตนซ์ของทรัพยากร Subscription ที่คุณสร้างขึ้น
ทดสอบการสมัครใช้บริการ Google Workspace
หากต้องการทดสอบว่าคุณได้รับเหตุการณ์ Google Workspace หรือไม่ คุณสามารถทริกเกอร์ เหตุการณ์และดึงข้อความไปยังการสมัครใช้บริการ Pub/Sub ได้
วิธีทดสอบการสมัครใช้บริการ Google Workspace
คอนโซล Google Cloud
- ทริกเกอร์เหตุการณ์อย่างน้อย 1 ประเภทในทรัพยากรเป้าหมายของการสมัครใช้บริการ Google Workspace เช่น หากคุณสมัครรับข้อมูลข้อความใหม่ในพื้นที่ใน Chat ให้โพสต์ข้อความในพื้นที่นั้น 
- ในคอนโซล Google Cloud ให้ไปที่หน้า Pub/Sub โดยทำดังนี้ - ตรวจสอบว่าได้เลือกโปรเจ็กต์ Cloud สำหรับแอปแล้ว 
- คลิกการสมัครใช้บริการในเมนู Pub/Sub 
- ในตาราง ให้ค้นหาการสมัครใช้บริการ Pub/Sub สำหรับหัวข้อของคุณ แล้วคลิก ชื่อการสมัครใช้บริการ 
- คลิกแท็บข้อความ 
- คลิกดึง เหตุการณ์อาจใช้เวลา 2-3 นาทีในการสร้างข้อความ Pub/Sub 
gcloud
- ทริกเกอร์เหตุการณ์อย่างน้อย 1 ประเภทในทรัพยากรเป้าหมายของการสมัครใช้บริการ Google Workspace เช่น หากคุณสมัครรับข้อมูลข้อความใหม่ในพื้นที่ใน Chat ให้โพสต์ข้อความในพื้นที่นั้น 
- เรียกใช้คำสั่งต่อไปนี้ - 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 ไม่สามารถสมัครรับข้อมูลเหตุการณ์ของผู้ใช้
สร้างคีย์ API
หากต้องการเรียกเมธอด API ของรุ่นตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ คุณต้องใช้เอกสารการค้นพบ API เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ที่ไม่ใช่แบบสาธารณะ หากต้องการตรวจสอบสิทธิ์คำขอ คุณต้องส่งคีย์ API
หากต้องการสร้างคีย์ API ให้เปิดโปรเจ็กต์ Google Cloud ของแอป แล้วทำดังนี้
- ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > ข้อมูลเข้าสู่ระบบ
- คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API
- ระบบจะแสดงคีย์ API ใหม่
    - คลิกคัดลอก เพื่อคัดลอกคีย์ API สำหรับใช้ ในโค้ดของแอป คุณยังดูคีย์ API ได้ในส่วน "คีย์ API" ของข้อมูลเข้าสู่ระบบของโปรเจ็กต์ ด้วย
- เราขอแนะนำให้จำกัดตำแหน่งและ API ที่ใช้คีย์ API ได้เพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต ดูรายละเอียดเพิ่มเติมได้ที่ เพิ่มการจำกัด API
 
เขียนสคริปต์ที่เรียก Google Workspace Events API
วิธีสร้างการสมัครใช้บริการกิจกรรมในพื้นที่ Chat โดยใช้การตรวจสอบสิทธิ์แอปและการอนุมัติจากผู้ดูแลระบบมีดังนี้
- หากจำเป็น ให้สร้างแอปใน Chat
- 
- แทนที่จะตรวจสอบสิทธิ์ผู้ใช้ ให้ตรวจสอบสิทธิ์ในฐานะแอป Chat ด้วยการอนุมัติของผู้ดูแลระบบแบบครั้งเดียว
- ระบุขอบเขตการให้สิทธิ์ที่อนุญาตให้แอปใน Chat สมัครรับข้อมูลเหตุการณ์ใน Chat ขอบเขตการให้สิทธิ์เหล่านี้จะเริ่มต้นด้วย - chat.appเสมอ และ รวมถึงรายการต่อไปนี้- https://www.googleapis.com/auth/chat.app.memberships: ติดตามกิจกรรมของสมาชิกในพื้นที่ใน Chat
- https://www.googleapis.com/auth/chat.app.messages.readonly: ติดตามข้อความในพื้นที่ทำงานของ Chat และกิจกรรมรีแอ็กชัน
- https://www.googleapis.com/auth/chat.app.spaces: ติดตามกิจกรรมในพื้นที่ 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',
      'v1beta',
      credentials=CREDENTIALS,
      discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
  )
  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 ที่คุณสร้างในโปรเจ็กต์ Cloud โดยมีรูปแบบเป็น- projects/PROJECT_ID/topics/TOPIC_ID
- API_KEY: คีย์ API ที่คุณสร้างขึ้นเพื่อสร้าง ปลายทางของบริการสำหรับ Google Workspace Events API
- RESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการมีข้อมูลทรัพยากรในเพย์โหลดหรือไม่- True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดช่องที่จะรวม ให้เพิ่มฟิลด์- fieldMaskและระบุอย่างน้อย 1 ฟิลด์สำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการสมัครใช้บริการทรัพยากรของ Chat เท่านั้นที่รองรับการรวมข้อมูลทรัพยากร
- False: ไม่รวมข้อมูลทรัพยากร