หากคุณสร้างและเผยแพร่แอป Google Chat ที่ใช้เหตุการณ์การโต้ตอบของ Google Chat API เช่น เหตุการณ์ที่อิงตามการเริ่มต้นใช้งานแอป Google Chat อย่างรวดเร็ว หน้านี้จะแสดงวิธีแปลงแอปดังกล่าวเป็นส่วนเสริมของ Google Workspace ที่ขยาย Google Chat
การแปลงจะช่วยให้แอป Google Chat ใช้เฟรมเวิร์กส่วนเสริมของ Google Workspace ได้ ซึ่งจะเปิดโอกาสใหม่ๆ ในการผสานรวมและฟีเจอร์ต่างๆ ภายใน Google Chat และทั่วทั้ง Google Workspace เช่น แทนที่จะเผยแพร่ 2 รายการ ได้แก่ แอป Google Chat 1 รายการและ ส่วนเสริมของ Google Workspace 1 รายการ คุณสามารถเผยแพร่ส่วนเสริมของ Google Workspace รายการเดียวผ่าน Google Workspace Marketplace ซึ่ง ขยายแอป Chat ไปพร้อมกับแอปพลิเคชันโฮสต์อื่นๆ ของ Google Workspace เช่น Gmail, ปฏิทิน และเอกสาร
ข้อจำกัด
ก่อนเริ่มการแปลง โปรดอ่านข้อจำกัดของส่วนเสริม Google Workspace ที่ขยาย Google Chat เพื่อให้มั่นใจว่าแอป Google Chat จะแปลงได้โดยไม่สูญเสียฟังก์ชันที่จำเป็น
ขั้นตอนที่ 1: คัดลอกโค้ดแอป Google Chat ที่มีอยู่
กระบวนการ Conversion ต้องมีการเปลี่ยนแปลงโค้ด หากไม่ต้องการให้แอป Google Chat ที่ใช้งานจริงได้รับผลกระทบ ให้สร้างและทำงานกับสำเนาของโค้ด
Apps Script
- เปิดโปรเจ็กต์ Google Apps Script ของแอป Google Chat ที่มีอยู่
- คลิกภาพรวม ทางด้านซ้าย
- คลิกทำสำเนา ทางด้านขวา
- คลิกการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
- ในส่วนโปรเจ็กต์ Google Cloud ให้คลิกเปลี่ยนโปรเจ็กต์
- ป้อนหมายเลขโปรเจ็กต์เดียวกันที่เชื่อมโยงกับโปรเจ็กต์แอป Google Chat ที่มีอยู่
- คลิกตั้งค่าโปรเจ็กต์
HTTP
สร้าง Fork หรือสำเนาของโค้ดเบสที่มีอยู่ แล้วนำไปใช้งานเป็นบริการใหม่ แยกจากแอป Google Chat ที่ใช้งานจริง
หากแอปของคุณได้รับการติดตั้งใช้งานใน Google Cloud และใช้ฟีเจอร์ที่เชื่อมโยงกับ โปรเจ็กต์ Google Cloud (เช่น ข้อมูลประจำตัว App Engine เริ่มต้น) คุณควรติดตั้งใช้งานโค้ดใหม่ในบริการที่เชื่อมโยงกับ โปรเจ็กต์แอป Google Chat ที่มีอยู่
ขั้นตอนที่ 2: แก้ไขโค้ดที่คัดลอก
ส่วนเสริมของ Google Workspace ที่ขยายการใช้งาน Google Chat จะใช้โครงสร้างคำขอและ
การตอบกลับที่แตกต่างจากแอป Google Chat ที่สร้างขึ้นด้วย
เหตุการณ์การโต้ตอบของ Chat API คุณต้อง
อัปเดตโค้ดเพื่อใช้ส่วนเสริม Google Workspace
EventObject
แทนที่จะใช้
Event
ของ Google Chat API สำหรับคำขอและการตอบกลับ
ใช้คู่มือการแปลงโค้ดเพื่อแก้ไขโค้ด
ขั้นตอนที่ 3: เปิดใช้การกำหนดค่าส่วนเสริม Google Workspace สำหรับผู้ใช้ทดสอบ
ใช้ Google Cloud Console เพื่อกำหนดค่าการตั้งค่าส่วนเสริม Google Workspace สำหรับ แอป Google Chat ของคุณ
ไปที่หน้าการกำหนดค่า Google Chat API ในคอนโซล Google Cloud
คลิกแปลงเป็นส่วนเสริมในส่วนฟีเจอร์แบบอินเทอร์แอกทีฟ
เปิดใช้เปิดการตั้งค่าการกำหนดค่าส่วนเสริม
ในส่วนระดับการเข้าถึง ให้เพิ่มอีเมลของผู้ใช้ทดสอบ
หากจำเป็น ให้อัปเดตการตั้งค่าการเชื่อมต่อด้วย URL ของปลายทางการทำให้ใช้งานได้หรือรหัสการทำให้ใช้งานได้ของ Apps Script ของโค้ดแอป Google Chat ที่คัดลอกและแก้ไขจากขั้นตอนที่ 2
คลิกบันทึกและทดสอบ
ขั้นตอนที่ 4: ทดสอบแอปที่แปลงแล้ว
ทดสอบฟังก์ชันการทำงานของส่วนเสริม Google Workspace อย่างละเอียดโดยใช้บัญชีผู้ใช้ทดสอบที่กำหนดค่าไว้ในขั้นตอนที่ 3 ตรวจสอบฟีเจอร์และการโต้ตอบทั้งหมด
ขั้นตอนที่ 5: ทำ Conversion ให้เสร็จสมบูรณ์สำหรับผู้ใช้ทั้งหมด
หลังจากยืนยันว่าส่วนเสริม Google Workspace ที่แปลงแล้วทำงานได้อย่างถูกต้อง คุณก็ทำให้ส่วนเสริมพร้อมให้บริการแก่ผู้ใช้ทุกคนได้
ไปที่หน้าการกำหนดค่า Google Chat API ในคอนโซล Google Cloud
คลิกแปลงเป็นส่วนเสริมในส่วนฟีเจอร์แบบอินเทอร์แอกทีฟ แผงด้านข้างจะเปิดขึ้น
คลิกแปลงเป็นส่วนเสริมในแผงด้านข้าง
พิมพ์รหัสโปรเจ็กต์ แล้วคลิกแปลง
ตอนนี้แอป Google Chat ของคุณเป็นส่วนเสริมของ Google Workspace ที่ขยาย Google Chat
ไม่บังคับ: ล้างข้อมูลหรือปล่อยทรัพยากร Google Cloud ที่ไม่ได้ใช้
ไม่บังคับ: หลังจากแปลงแอป Google Chat เป็นส่วนเสริมของ Google Workspace แล้ว หากต้องการหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่แอป Google Chat ใช้ซึ่งไม่ได้ใช้งานแล้ว ให้พิจารณาปิดทรัพยากรเหล่านั้น
คู่มือการแปลงโค้ด
ส่วนนี้จะอธิบายรายละเอียดการแมประหว่างรูปแบบการโต้ตอบของ Google Chat API
Event
กับรูปแบบของส่วนเสริม Google Workspace
EventObject
การแมปคำขอ
ตารางต่อไปนี้แสดงวิธีที่ฟิลด์ใน Google Chat API
Event
แมปกับฟิลด์ที่เกี่ยวข้องในส่วนเสริม Google Workspace
EventObject
ฟิลด์การโต้ตอบของ Google Chat API Event |
ฟิลด์EventObject ส่วนเสริมของ Google Workspace |
หมายเหตุ |
|---|---|---|
action.actionMethodName |
ไม่มี | สำหรับการโต้ตอบด้วยบัตร คุณสามารถส่งชื่อวิธีการเป็นพารามิเตอร์ใน commonEventObject.parameters ได้ ดูเปิดกล่องโต้ตอบเริ่มต้น |
action.parameters |
commonEventObject.parameters |
|
appCommandMetadata |
chat.appCommandPayload.appCommandMetadata |
|
common |
commonEventObject |
|
configCompleteRedirectUrl |
|
พร้อมใช้งานในเพย์โหลดต่างๆ โดยขึ้นอยู่กับประเภทเหตุการณ์ |
dialogEventType |
|
พร้อมใช้งานในเพย์โหลดต่างๆ โดยขึ้นอยู่กับประเภทเหตุการณ์ |
eventTime |
chat.eventTime |
|
isDialogEvent |
|
พร้อมใช้งานในเพย์โหลดต่างๆ โดยขึ้นอยู่กับประเภทเหตุการณ์ |
message |
|
พร้อมใช้งานในเพย์โหลดต่างๆ โดยขึ้นอยู่กับประเภทเหตุการณ์ |
space |
|
|
thread |
|
พร้อมใช้งานในเพย์โหลดต่างๆ โดยขึ้นอยู่กับประเภทเหตุการณ์ |
threadKey |
|
พร้อมใช้งานในเพย์โหลดต่างๆ โดยขึ้นอยู่กับประเภทเหตุการณ์ |
token |
ไม่มี | การยืนยันจะได้รับการจัดการแตกต่างกัน โปรดดูขอรับการยืนยันสำหรับแอป HTTP |
type |
ไม่มี | ระบบจะอนุมานประเภทเหตุการณ์จากทริกเกอร์ |
user |
chat.user |
ขอการแมปตามกรณีการใช้งาน
ตารางต่อไปนี้แสดงความแตกต่างในเพย์โหลดคำขอสำหรับกรณีการใช้งานทั่วไป ระหว่างแอป Google Chat ที่สร้างขึ้นด้วยเหตุการณ์การโต้ตอบของ Chat API กับส่วนเสริม Google Workspace ที่ขยาย Google Chat
| กรณีการใช้งาน | เพย์โหลดการโต้ตอบของ Chat API Event |
เพย์โหลดของส่วนเสริม Google Workspace EventObject |
|---|---|---|
| เพิ่มแอปไปยังพื้นที่ทำงานแล้ว | { "type": "ADDED_TO_SPACE", "space": { ... } } |
{ "chat": { "addedToSpacePayload": { "space": { ... } } } } |
| นำแอปออกจากพื้นที่ทำงาน | { "type": "REMOVED_FROM_SPACE", "space": { ... } } |
{ "chat": { "removedFromSpacePayload": { "space": { ... } } } } |
| ผู้ใช้ @พูดถึงแอป | { "type": "MESSAGE", "message": { ... }, "space": { ... }, "configCompleteRedirectUrl": "..." } |
{ "chat": { "messagePayload": { "message": { ... }, "space": { ... }, "configCompleteRedirectUri": "..." } } } |
| ผู้ใช้ @พูดถึงแอปเพื่อเพิ่มแอปไปยังพื้นที่ทำงาน | คุณต้องจัดการคำขอจาก Google Chat 1 รายการ ดังนี้{ "type": "ADDED_TO_SPACE", "space": { ... }, "message": { ... } } |
คุณต้องจัดการคำขอ 2 รายการจาก Google Chat คำขอแรก { "chat": { "addedToSpacePayload": { "space": { ... }, "interactionAdd": true } } } คำขอที่ 2: { "chat": { "messagePayload": { "message": { ... }, "space": { ... } } } } |
| คำสั่งเครื่องหมายทับ | { "type": "MESSAGE", "message": { "slashCommand": { ... } }, "space": { ... } } |
{ "chat": { "appCommandPayload": { "message": { ... }, "space": { ... }, "appCommandMetadata": { ... } } } } |
| คำสั่งเครื่องหมายทับเพื่อเพิ่มแอปไปยังพื้นที่ทำงาน | คุณต้องจัดการคำขอจาก Google Chat 1 รายการ ดังนี้{ "type": "ADDED_TO_SPACE", "space": { ... }, "message": { "slashCommand": { ... } } } |
คุณต้องจัดการคำขอ 2 รายการจาก Google Chat คำขอแรก { "chat": { "addedToSpacePayload": { "space": { ... }, "interactionAdd": true } } } คำขอที่ 2: { "chat": { "appCommandPayload": { "message": { ... }, "space": { ... }, "appCommandMetadata": { ... } } } } |
| ผู้ใช้คลิกปุ่มในการ์ดหรือกล่องโต้ตอบ | { "type": "CARD_CLICKED", "common": { ... }, "space": { ... }, "message": { ... }, "isDialogEvent": "...", "dialogEventType": "..." } สําหรับเหตุการณ์กล่องโต้ตอบ { "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }} } } }, "space": { ... }, "message": { ... }, "isDialogEvent": true, "dialogEventType": "..." } |
{ "commonEventObject": { ... }, "chat": { "buttonClickedPayload": { "message": { ... }, "space": { ... }, "isDialogEvent": "...", "dialogEventType": "..." } } } สําหรับเหตุการณ์กล่องโต้ตอบ { "commonEventObject": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] } } } }, "chat": { "buttonClickedPayload": { "message": { ... }, "space": { ... }, "isDialogEvent": "true", "dialogEventType": "..." } } } |
| ผู้ใช้ส่งข้อมูลในการ์ดหน้าแรกของแอป | { "type": "SUBMIT_FORM", "common": { ... }, "space": { ... }, "message": { ... }, "isDialogEvent": "...", "dialogEventType": "..." } |
{ "commonEventObject": { ... }, "chat": { "buttonClickedPayload": { "message": { ... }, "space": { ... }, "isDialogEvent": "...", "dialogEventType": "SUBMIT_DIALOG" } } } |
| ผู้ใช้เรียกใช้คำสั่งแอปโดยใช้คำสั่งด่วน | { "type": "APP_COMMAND", "space": { ... }, "isDialogEvent": "...", "dialogEventType": "..." } |
{ "chat": { "appCommandPayload": { "message": { ... }, "space": { ... }, "appCommandMetadata": { ... } } } } |
| หน้าตัวอย่างลิงก์ | { "type": "MESSAGE", "message": { "matchedUrl": "..." }, "space": { ... } } |
{ "chat": { "messagePayload": { "message": { "matchedUrl": "..." }, "space": { ... } } } } |
| ผู้ใช้อัปเดตวิดเจ็ตในข้อความการ์ดหรือกล่องโต้ตอบ | { "type": "WIDGET_UPDATED", "space": { ... }, "common": { ... } } |
{ "commonEventObject": { ... }, "chat": { "widgetUpdatedPayload": { "space": { ... } } } } |
การแมปคำตอบตามกรณีการใช้งาน
ส่วนเสริมของ Google Workspace ที่ขยาย Google Chat จะแสดงผลการดำเนินการแทนออบเจ็กต์
Message ตารางต่อไปนี้จะแมปMessageประเภทการตอบกลับMessageของ Google Chat API
กับการดำเนินการที่เทียบเท่าในส่วนเสริม Google Workspace
| กรณีการใช้งาน | การตอบกลับของ Google Chat API Message |
การตอบกลับการดำเนินการใน Chat ของส่วนเสริม Google Workspace |
|---|---|---|
| สร้างข้อความในพื้นที่ทำงานที่เรียกใช้ | { "actionResponse": { "type": "NEW_MESSAGE" }, "text": "..." } คุณจะระบุ |
{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": { "message": { "text": "..." } } } } } ดูข้อมูลเพิ่มเติมได้ที่ส่งข้อความ |
| อัปเดตข้อความ | { "actionResponse": { "type": "UPDATE_MESSAGE" }, "text": "..." } ดูข้อมูลเพิ่มเติมได้ที่อัปเดตข้อความ (Chat) |
{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": { "message": { "text": "..." } } } } } ดูข้อมูลเพิ่มเติมได้ที่อัปเดตข้อความ (ส่วนเสริม) |
| หน้าตัวอย่างลิงก์ | { "actionResponse": { "type": "UPDATE_USER_MESSAGE_CARDS" }, "cardsV2": [{ ... }] } ดูข้อมูลเพิ่มเติมได้ที่แสดงตัวอย่างลิงก์ (Chat) |
{ "hostAppDataAction": { "chatDataAction": { "updateInlinePreviewAction": { "cardsV2": [{ ... }] } } } } ดูข้อมูลเพิ่มเติมได้ที่แสดงตัวอย่างลิงก์(ส่วนเสริม) |
| เปิดกล่องโต้ตอบเริ่มต้น | { "actionResponse": { "type": "DIALOG", "dialogAction": { "dialog": { "body": { /* Card object */ } } } } } ดูข้อมูลเพิ่มเติมได้ที่เปิดกล่องโต้ตอบ (Chat) |
{ "action": { "navigations": [{ "pushCard": { /* Card object */ } }] } } การ์ดที่คุณพุชจะมีวิดเจ็ตที่มี onClickการดำเนินการได้ สำหรับส่วนเสริมของ Google Workspace ที่ใช้ HTTP ให้กำหนดค่าการดำเนินการต่อไปนี้เพื่อเรียกใช้ปลายทางของฟังก์ชัน { "onClick": { "action": { "function": "https://...", "parameters": [{ "key": "clickedButton", "value": "submit" }] } } } ดูข้อมูลเพิ่มเติมได้ที่เปิดกล่องโต้ตอบ (ส่วนเสริม) |
| ปิดกล่องโต้ตอบ | { "actionResponse": { "type": "DIALOG", "dialogAction": { "actionStatus": { "userFacingMessage": "..." } } } } ดูข้อมูลเพิ่มเติมได้ที่ปิดกล่องโต้ตอบ (Chat) |
{ "action": { "navigations": [{ "endNavigation": "CLOSE_DIALOG" }], "notification": { "text": "..."} } } ดูข้อมูลเพิ่มเติมได้ที่ปิดกล่องโต้ตอบ (ส่วนเสริม) |
| เชื่อมต่อกับระบบภายนอก (กำหนดค่าคำขอ) | { "actionResponse": { "type": "REQUEST_CONFIG", "url": "..." } } ดูข้อมูลเพิ่มเติมได้ที่เชื่อมต่อกับระบบภายนอก |
{ "basic_authorization_prompt": { "authorization_url": "...", "resource": "..." } } ดูข้อมูลเพิ่มเติมได้ที่หัวข้อเชื่อมต่อส่วนเสริมของ Google Workspace กับบริการของบุคคลที่สาม |
| เติมข้อความอัตโนมัติในวิดเจ็ตแบบอินเทอร์แอกทีฟ | { "actionResponse": { "type": "UPDATE_WIDGET", "updatedWidget": { "suggestions": { "items": ["..."] }, "widget": "widget_id" } } } ดูข้อมูลเพิ่มเติมได้ที่เพิ่มเมนูแบบเลือกหลายรายการ |
{ "action": { "modifyOperations": [{ "updateWidget": { "widgetId": "widget_id", "selectionInputWidgetSuggestions": { "suggestions": ["..."] } } }] } } ดูข้อมูลเพิ่มเติมได้ที่รวบรวมและประมวลผลข้อมูลจากผู้ใช้ Google Chat |
จัดการการโต้ตอบกับการ์ดในข้อความที่สร้างขึ้นก่อน Conversion
เมื่อแปลงแอป Google Chat แบบ HTTP เป็นส่วนเสริมของ Google Workspace การโต้ตอบกับคาร์ดในข้อความที่สร้างขึ้นก่อนการแปลงจะต้องมีการจัดการเป็นพิเศษ ส่วนเสริมของ Google Workspace ใช้ URL แบบ HTTP เต็มสำหรับการ์ด action.function ขณะที่แอป Google Chat ที่สร้างขึ้นด้วยเหตุการณ์การโต้ตอบของ Google Chat API จะใช้ชื่อฟังก์ชัน ตารางต่อไปนี้สรุปความแตกต่างเหล่านี้
| แอป Google Chat ที่สร้างขึ้นด้วยเหตุการณ์การโต้ตอบของ Google Chat API | ส่วนเสริมของ Google Workspace ที่ขยาย Google Chat | |
|---|---|---|
| การกำหนดค่า | คุณกำหนดค่าปลายทางเดียวสำหรับเหตุการณ์ทั้งหมดในคอนโซล Google Cloud เมื่อติดตั้งใช้งานการโต้ตอบของบัตร action ของบัตรจะมีเฉพาะชื่อของฟังก์ชันที่จะดำเนินการ ระบบจะเรียกใช้ปลายทาง HTTP ทั่วไปสำหรับเหตุการณ์การคลิกการ์ด
ดูข้อมูลเพิ่มเติมได้ที่เปิดกล่องโต้ตอบ (Chat) { "onClick": { "action": { "function": "submit" } } } |
คุณเลือกกำหนดค่าปลายทางต่อเหตุการณ์ใน Google Cloud Console ได้ แต่การดำเนินการนี้จะไม่รวมเหตุการณ์การคลิกการ์ด เมื่อใช้การโต้ตอบกับการ์ด actionของการ์ดต้องมี URL แบบเต็มของปลายทาง HTTP ที่จะเรียกใช้ คุณตั้งค่าปลายทาง HTTP ที่ไม่ซ้ำกันต่อปุ่ม หรือใช้ปลายทางทั่วไปและส่งการดำเนินการเป็นพารามิเตอร์ใน action.parameters ได้
ดูข้อมูลเพิ่มเติมได้ที่เปิดกล่องโต้ตอบ (ส่วนเสริม) { "onClick": { "action": { "function": "https://...", "parameters": [{ "key": "method", "value": "submit" }] } } } |
หากต้องการให้การโต้ตอบกับการ์ดใช้งานได้สำหรับข้อความที่สร้างขึ้นก่อน Conversion ให้กำหนดค่า URL การโต้ตอบกับการ์ดในหน้าการกำหนดค่า Google Chat API
URL นี้ใช้สําหรับการโต้ตอบในข้อความที่สร้างขึ้นก่อนที่คุณจะแปลงแอปเท่านั้น เมื่อผู้ใช้โต้ตอบกับข้อความใดข้อความหนึ่ง ระบบจะส่งค่า action.function เดิมเป็นพารามิเตอร์ที่ชื่อ __action_method_name__
ตัวอย่าง: การคลิกการ์ด
หากคุณกำหนดค่า URL การโต้ตอบกับการ์ดเป็น https://.../card-interaction-handler และผู้ใช้คลิกการ์ดในข้อความที่ผ่านมาพร้อมการดำเนินการต่อไปนี้
{
"onClick": {
"action": {
"function": "submit"
}
}
}
ระบบจะส่งเหตุการณ์ไปยัง URL การโต้ตอบกับบัตรที่คุณกำหนดค่าไว้ในรูปแบบต่อไปนี้
{
"commonEventObject": {
"parameters": {
"__action_method_name__": "submit"
}
},
"chat": {
"buttonClickedPayload": { ... }
}
}
ตัวอย่าง: เมนูสำหรับเลือกหลายรายการ
หากผู้ใช้โต้ตอบกับเมนูแบบเลือกหลายรายการที่มีแหล่งข้อมูลภายนอก
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"externalDataSource": {
"function": "getContacts"
}
}
}
ระบบจะส่งเหตุการณ์ไปยัง URL การโต้ตอบกับบัตรที่คุณกำหนดค่าไว้ในรูปแบบต่อไปนี้
{
"commonEventObject": {
"parameters": {
"__action_method_name__": "getContacts",
}
},
"chat": {
"widgetUpdatedPayload": { ... }
}
}
หากเปิดใช้ URL ปลายทาง HTTP ทั่วไปสำหรับทริกเกอร์ทั้งหมดสำหรับทริกเกอร์ HTTP ระบบจะใช้ URL ทั่วไปกับเหตุการณ์คลิกปุ่มด้วย
ยืนยันคำขอสำหรับส่วนเสริม Google Workspace ของ HTTP ที่ขยาย Chat
สำหรับแอป Google Chat ที่ใช้ HTTP คุณจะต้องอัปเดตตรรกะเพื่อยืนยันว่าคำขอมาจาก Google เมื่อแปลงเป็นส่วนเสริมของ Google Workspace
- การยืนยันแอป Google Chat ผ่าน HTTP สำหรับเหตุการณ์การโต้ตอบของ Google Chat API: ยืนยันคำขอจาก Google Chat
- การยืนยัน HTTP ของส่วนเสริม Google Workspace: การยืนยันคำขอจาก Google
ความแตกต่างที่สำคัญในการยืนยันคำขอมีดังนี้
| ประเภทแอป | กลุ่มเป้าหมายที่รองรับ | อีเมลบัญชีบริการ |
|---|---|---|
| แอป Google Chat ที่สร้างขึ้นด้วยเหตุการณ์การโต้ตอบของ Google Chat API | หมายเลขโปรเจ็กต์ | chat@system.gserviceaccount.com |
| ส่วนเสริม Google Workspace ที่ขยาย Google Chat | ปลายทาง HTTP เท่านั้น | อีเมลบัญชีบริการต่อโปรเจ็กต์ |
คุณดูอีเมลบัญชีบริการที่ไม่ซ้ำกันสำหรับส่วนเสริม Google Workspace ได้ในส่วนแปลงเป็นส่วนเสริม Google Workspace ในหน้าการกำหนดค่า Google Chat API ในคอนโซล Google Cloud
วิธียืนยันคำขอในส่วนเสริม Google Workspace ที่อัปเกรดแล้ว
- หากใช้ฟังก์ชัน Cloud Run ให้มอบบทบาท
roles/cloudfunctions.invokerให้กับบัญชีบริการต่อส่วนเสริม ดูให้สิทธิ์เข้าถึงด้วย IAM - อัปเดตรหัสยืนยันโทเค็นเพื่อใช้อีเมลบัญชีบริการเสริมของ Google Workspace เพื่อยืนยันลายเซ็นของโทเค็น Bearer ดู ตรวจสอบคำขอจาก Google