หน้านี้อธิบายวิธีใช้ 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 โดยทำดังนี้
ตรวจสอบว่าได้เลือกโปรเจ็กต์ระบบคลาวด์สำหรับแอปแล้ว
คลิก สร้างหัวข้อ แล้วทำดังนี้
- ป้อนชื่อหัวข้อ เช่น
workspace-events-topic - เลือกเพิ่มการสมัครใช้บริการเริ่มต้นไว้ Pub/Sub จะตั้งชื่อการสมัครใช้บริการเริ่มต้นนี้
ให้คล้ายกับชื่อหัวข้อ เช่น
workspace-events-topic-sub - ไม่บังคับ: อัปเดตหรือกําหนดค่าพร็อพเพอร์ตี้เพิ่มเติม สําหรับหัวข้อ
- ป้อนชื่อหัวข้อ เช่น
คลิกสร้าง ชื่อหัวข้อแบบเต็มจะจัดรูปแบบเป็น
projects/PROJECT_ID/topics/TOPIC_IDใช้ชื่อและนามสกุลนี้ในขั้นตอนถัดไปให้สิทธิ์เข้าถึงเพื่อเผยแพร่ข้อความ Pub/Sub ไปยังหัวข้อของคุณ
- ในหน้าของหัวข้อ ให้ไปที่แผงด้านข้างแล้วเปิดแท็บสิทธิ์
- คลิกเพิ่มผู้รับมอบสิทธิ์
- ในช่องเพิ่มผู้ใช้หลัก ให้เพิ่มบัญชีบริการสำหรับ
แอปพลิเคชัน Google Workspace ที่ส่งเหตุการณ์ไปยัง
การสมัครใช้บริการของคุณ
- สำหรับกิจกรรมในแชท ให้ทำดังนี้
- หากแอป Chat เป็นส่วนเสริม Google Workspace ที่ขยาย Chat ให้ใช้อีเมลบัญชีบริการใน หน้าการกำหนดค่า Chat API ดูข้อมูลเพิ่มเติมได้ที่สร้างแอป Google Chat ที่ใช้ Pub/Sub
- หากแอป Chat ใช้เหตุการณ์การโต้ตอบของ Chat API ให้ใช้
chat-api-push@system.gserviceaccount.com
- รุ่นตัวอย่างสำหรับนักพัฒนาแอป: สำหรับเหตุการณ์ในไดรฟ์
drive-api-event-push@system.gserviceaccount.com - สำหรับกิจกรรม Meet
meet-api-event-push@system.gserviceaccount.com
- สำหรับกิจกรรมในแชท ให้ทำดังนี้
- ในเมนูมอบหมายบทบาท ให้เลือก
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_IDGOOGLE_WORKSPACE_APPLICATION: แอปพลิเคชัน Google Workspace ที่ต้องส่งเหตุการณ์ไปยังการสมัครใช้บริการของคุณ- หากต้องการรับเหตุการณ์จาก Chat ให้ใช้บัญชีบริการใดบัญชีหนึ่งต่อไปนี้
- หากแอป Chat เป็นส่วนเสริม Google Workspace ที่ขยาย Chat ให้ใช้อีเมลบัญชีบริการใน หน้าการกำหนดค่า Chat API ดูข้อมูลเพิ่มเติมได้ที่ สร้างแอป Google Chat ที่ใช้ Pub/Sub
- หากแอป Chat ใช้เหตุการณ์การโต้ตอบของ Chat API ให้ใช้
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-subscriptionTOPIC_NAME: ชื่อหัวข้อที่คุณสร้าง ในขั้นตอนก่อนหน้า
ติดตามทรัพยากรของ Google Workspace
ในส่วนนี้ คุณจะติดตามทรัพยากร Google Workspace ที่ต้องการ ตรวจสอบเหตุการณ์
เลือกและระบุทรัพยากรเป้าหมาย
ในการสมัครใช้บริการ Google Workspace ทรัพยากรเป้าหมายคือทรัพยากร Google Workspace ที่คุณตรวจสอบหาเหตุการณ์ เป้าหมาย
ทรัพยากรจะแสดงในฟิลด์targetResource
ของการสมัครใช้บริการ โดยจัดรูปแบบโดยใช้ชื่อทรัพยากรแบบเต็ม เช่น สำหรับการสมัครใช้บริการ
ที่ตรวจสอบพื้นที่ใน 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 คือรหัสใน
ชื่อทรัพยากรของทรัพยากร Meet REST API |
|
| ผู้ใช้ | //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 ที่คุณสมัครใช้บริการ ซึ่งจัดรูปแบบเป็นชื่อทรัพยากรแบบเต็ม เช่น หากต้องการติดตามพื้นที่ใน Chat ที่มีรหัสพื้นที่AAAABBBBให้ใช้//chat.googleapis.com/spaces/AAAABBBBEVENT_TYPES: ประเภทกิจกรรมอย่างน้อย 1 รายการ ที่คุณต้องการสมัครรับข้อมูลในแหล่งข้อมูลเป้าหมาย จัดรูปแบบเป็น อาร์เรย์ของสตริง เช่น'google.workspace.chat.message.v1.created'TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ Cloud จัดรูปแบบเป็นprojects/PROJECT_ID/topics/TOPIC_IDRESOURCE_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 ที่คุณสมัครใช้บริการ ซึ่งจัดรูปแบบเป็นชื่อทรัพยากรแบบเต็ม เช่น หากต้องการติดตามพื้นที่ใน Chat ที่มีรหัสพื้นที่AAAABBBBให้ใช้//chat.googleapis.com/spaces/AAAABBBBEVENT_TYPES: ประเภทกิจกรรมอย่างน้อย 1 รายการ ที่คุณต้องการสมัครรับข้อมูลในแหล่งข้อมูลเป้าหมาย จัดรูปแบบเป็น อาร์เรย์ของสตริง เช่น'google.workspace.chat.message.v1.created'TOPIC_NAME: ชื่อเต็มของหัวข้อ Pub/Sub ที่คุณสร้างในโปรเจ็กต์ Cloud จัดรูปแบบเป็นprojects/PROJECT_ID/topics/TOPIC_IDRESOURCE_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 โดยทำดังนี้
ตรวจสอบว่าได้เลือกโปรเจ็กต์ระบบคลาวด์สำหรับแอปแล้ว
คลิกการสมัครใช้บริการในเมนู 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_IDMESSAGE_COUNT: จำนวนข้อความ Pub/Sub สูงสุดที่คุณต้องการดึง
เหตุการณ์อาจใช้เวลาสักครู่ในการสร้างข้อความ 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: ติดตามกิจกรรมของสมาชิกในพื้นที่ใน Chathttps://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_IDAPI_KEY: คีย์ API ที่คุณสร้างขึ้นเพื่อสร้าง ปลายทางของบริการสำหรับ Google Workspace Events APIRESOURCE_DATA: บูลีนที่ระบุว่าการสมัครใช้บริการรวมข้อมูลทรัพยากรในเพย์โหลดหรือไม่True: รวมข้อมูลทรัพยากรทั้งหมด หากต้องการจำกัดช่องที่จะรวม ให้เพิ่มฟิลด์fieldMaskและระบุอย่างน้อย 1 ฟิลด์สำหรับทรัพยากรที่เปลี่ยนแปลง เฉพาะการสมัครใช้บริการทรัพยากรของ Chat เท่านั้นที่รองรับการรวมข้อมูลทรัพยากรFalse: ไม่รวมข้อมูลทรัพยากร