หน้านี้อธิบายวิธีที่แอป Google Chat ส่งข้อความเพื่อตอบกลับการโต้ตอบของผู้ใช้
-
รูปที่ 1 แอป Chat ตอบกลับคำสั่ง Slash ด้วยข้อความและปุ่ม -
รูปที่ 2 แอป Chat เปิดกล่องโต้ตอบที่ผู้ใช้ป้อนข้อมูลได้ -
รูปที่ 5 แอป Chat ส่งข้อความที่มีข้อความและการ์ดแบบอินเทอร์แอกทีฟ
ข้อกำหนดเบื้องต้น
HTTP
ส่วนเสริม Google Workspace ที่ขยาย Google Chat หากต้องการสร้างส่วนเสริม ให้ทำตาม คู่มือเริ่มต้นใช้งานฉบับย่อของ HTTP
Apps Script
ส่วนเสริม Google Workspace ที่ขยาย Google Chat หากต้องการสร้างส่วนเสริม ให้ทำตาม คู่มือเริ่มต้นใช้งานฉบับย่อของ Apps Script
ออกแบบข้อความ
แอป Chat สามารถใส่องค์ประกอบใดก็ได้ต่อไปนี้ในข้อความ
- ข้อความที่มีไฮเปอร์ลิงก์, @พูดถึง และอีโมจิ
- การ์ดอย่างน้อย 1 ใบ ซึ่งอาจปรากฏในข้อความหรือเปิดในหน้าต่างใหม่เป็นกล่องโต้ตอบ
- วิดเจ็ตเสริมอย่างน้อย 1 รายการ ซึ่งเป็นปุ่มที่ปรากฏหลังข้อความหรือการ์ดในข้อความ
ดูข้อมูลเกี่ยวกับการออกแบบข้อความได้ในเอกสารประกอบของ Google Chat API ต่อไปนี้
- ภาพรวมการรับส่งข้อความ
- จัดรูปแบบข้อความ
- สร้างการ์ดสำหรับแอป Google Chat
- เพิ่มข้อความและรูปภาพลงในการ์ด
- เพิ่มองค์ประกอบ UI แบบอินเทอร์แอกทีฟลงในการ์ด
ตอบกลับด้วยข้อความ
แอป Chat สามารถตอบกลับด้วยข้อความเมื่อมีการเรียกใช้หรือการโต้ตอบต่อไปนี้
- การเรียกใช้**ข้อความ** เช่น เมื่อผู้ใช้ @พูดถึงหรือส่งข้อความโดยตรงไปยังแอป Chat
- การเรียกใช้**เพิ่มลงในพื้นที่ทำงาน** เช่น เมื่อผู้ใช้ติดตั้งแอป Chat จาก Google Workspace Marketplace หรือเพิ่มแอป Chat ลงในพื้นที่ทำงาน
- การคลิกปุ่มจากการ์ดในข้อความหรือกล่องโต้ตอบ เช่น เมื่อผู้ใช้ป้อนข้อมูลแล้วคลิกส่ง
นอกจากนี้ แอป Chat ยังส่งข้อความเชิงรุกได้ด้วยการ เรียกใช้ Google Chat API
หากต้องการตอบกลับด้วยข้อความ ให้แสดงผลการดำเนินการ DataActions ที่มี
CreateMessageAction ดังนี้
{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
"message": MESSAGE
}}}
แทนที่ MESSAGE ด้วยทรัพยากร
Message
จาก Chat API ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีทำงานของการดำเนินการได้ที่
การดำเนินการใน Chat
ในตัวอย่างต่อไปนี้ แอป Chat จะสร้างและส่งข้อความทุกครั้งที่เพิ่มลงในพื้นที่ทำงาน หากต้องการส่งข้อความเมื่อผู้ใช้เพิ่มแอป Chat ลงในพื้นที่ทำงาน แอป Chat จะตอบกลับการเรียกใช้เพิ่มลงในพื้นที่ทำงาน โดยแสดงผลการดำเนินการ DataActions ดังนี้
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Workspace add-on.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
const chatEvent = req.body.chat;
// Send an onboarding message when added to a Chat space
if (chatEvent.addedToSpacePayload) {
res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
chat_event = request.get_json()["chat"]
if "addedToSpacePayload" in chat_event:
return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
"createMessageAction": { "message": {
"text": 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}
}}})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
JsonNode chatEvent = event.at("/chat");
if(!chatEvent.at("/addedToSpacePayload").isEmpty()) {
return new GenericJson() { {
put("hostAppDataAction", new GenericJson() { {
put("chatDataAction", new GenericJson() { {
put("createMessageAction", new GenericJson() { {
put("message", new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar" +
"from Google Chat. Take a look at your schedule today by typing" +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`."
));
} });
} });
} });
} };
}
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app.
*/
function onAddedToSpace(event) {
return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}};
}
ตัวอย่างโค้ดจะแสดงผลข้อความต่อไปนี้
ดูตัวอย่างเพิ่มเติมเกี่ยวกับวิธีตอบกลับด้วยข้อความได้ในคำแนะนำต่อไปนี้
- ตอบกลับคำสั่งด่วน
- ตอบกลับคำสั่ง Slash
- เปิดกล่องโต้ตอบแบบอินเทอร์แอกทีฟ
- รวบรวมข้อมูลจากผู้ใช้ Google Chat
อัปเดตข้อความ
แอป Chat ยังอัปเดตข้อความที่ส่งได้ด้วย เช่น อัปเดตข้อความหลังจากที่ผู้ใช้ส่งกล่องโต้ตอบหรือคลิกปุ่มในข้อความ
หากต้องการอัปเดตข้อความของแอป Chat ให้แสดงผลการดำเนินการ
DataActions ที่มี
UpdateMessageAction ดังที่แสดงใน
ตัวอย่างต่อไปนี้
{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
"message": MESSAGE
}}}}
แทนที่ MESSAGE ด้วยทรัพยากร
Message
จาก Chat API
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีทำงานของการดำเนินการได้ที่ การดำเนินการใน Chat
แอป Chat ยังอัปเดตข้อความจากผู้ใช้เพื่อแสดงตัวอย่างลิงก์ที่ผู้ใช้ส่งได้ด้วย ดูรายละเอียดได้ที่ แสดงตัวอย่างลิงก์ในข้อความ Google Chat
ตอบกลับการโต้ตอบหรือส่งข้อความเชิงรุกโดยใช้ Google Chat API
แทนที่จะแสดงผลการดำเนินการของส่วนเสริม แอป Chat อาจต้องใช้ Google Chat API เพื่อตอบกลับการโต้ตอบ เช่น แอป Chat ต้องเรียกใช้ Google Chat API เพื่อดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้
- ส่งข้อความตามกำหนดเวลา หรือเกี่ยวกับข้อมูลที่เปลี่ยนแปลงในแหล่งข้อมูลภายนอก เช่น การแจ้งเตือนเกี่ยวกับปัญหาหรือเคสใหม่
- ตอบกลับหลังจากผ่านไปมากกว่า 30 วินาทีหลังจากการโต้ตอบ เช่น ตอบกลับด้วยข้อความหลังจากทำงานที่ใช้เวลานานเสร็จแล้ว
- ส่งข้อความนอกพื้นที่ทำงานที่เกิดการโต้ตอบ
- ส่งข้อความในนามของผู้ใช้ Chat
หากต้องการส่งข้อความโดยใช้ Chat API คุณต้องตั้งค่าการตรวจสอบสิทธิ์และเรียกใช้เมธอด create() ในทรัพยากร Message ดูขั้นตอนได้ที่
ส่งข้อความโดยใช้ Google Chat API
หัวข้อที่เกี่ยวข้อง
- สร้างอินเทอร์เฟซ Google Chat
- ตอบกลับคำสั่งด่วน
- ตอบกลับคำสั่ง Slash
- เปิดกล่องโต้ตอบแบบอินเทอร์แอกทีฟ
- รวบรวมข้อมูลจากผู้ใช้ Google Chat
- แสดงตัวอย่างลิงก์ในข้อความ Google Chat
- ส่งข้อความโดยใช้ Google Chat API