หน้านี้อธิบายวิธีสร้างและส่งข้อความส่วนตัวเป็นแอป Google Chat
ข้อความส่วนตัวคือข้อความในแอป Chat ที่ปรากฏเฉพาะผู้ใช้ Chat ที่ระบุเท่านั้น คุณสามารถใช้ข้อความส่วนตัวในพื้นที่ทำงาน กับผู้ใช้หลายคนเพื่อให้พวกเขาโต้ตอบแบบส่วนตัวกับแอป Chat ได้ ตัวอย่างเช่น แอป Chat สามารถส่งข้อความแบบส่วนตัวเพื่อทำสิ่งต่อไปนี้
- ตอบกลับคําสั่งเครื่องหมายทับ ตัวอย่างเช่น หากผู้ใช้ใช้คำสั่งเครื่องหมายทับ
/about
ของแอป Chat ในพื้นที่ทำงาน แอป Chat จะตอบกลับด้วยข้อความส่วนตัวที่อธิบายสิ่งที่แอป Chat ทำและวิธีใช้ - แจ้งหรือส่งข้อมูลเฉพาะที่เกี่ยวข้องกับผู้ใช้รายเดียว เช่น แจ้งให้ผู้ใช้ทราบว่าได้รับมอบหมายงานหรือเตือนให้ทํางาน
- ส่งข้อความแสดงข้อผิดพลาด เช่น หากผู้ใช้ละเว้นข้อความอาร์กิวเมนต์ที่จําเป็นสําหรับคําสั่งเครื่องหมายทับ แอป Chat จะส่งข้อความส่วนตัวเพื่ออธิบายข้อผิดพลาดและช่วยผู้ใช้จัดรูปแบบคําสั่งได้
เมื่อแอป Chat ส่งข้อความส่วนตัว ข้อความดังกล่าวจะแสดงป้ายกำกับที่แจ้งให้ผู้ใช้ทราบว่ามีเพียงผู้ใช้เท่านั้นที่เห็นข้อความดังกล่าว
ข้อกำหนดเบื้องต้น
Node.js
- โปรเจ็กต์ Google Cloud ที่เปิดใช้และกำหนดค่า Google Chat API โปรดดูขั้นตอนที่หัวข้อสร้างแอป Google Chat
- หากต้องการตอบกลับคำสั่งเครื่องหมายทับแบบส่วนตัว คำสั่งเครื่องหมายทับที่กำหนดค่าไว้สำหรับแอป Chat หากต้องการสร้างคำสั่งดังกล่าว โปรดดู การตอบกลับคำสั่งเครื่องหมายทับ
- หากต้องการส่งข้อความส่วนตัวโดยใช้เมธอด
messages.create()
คุณต้องใช้การตรวจสอบสิทธิ์แอป
หมายเหตุ: ตัวอย่างโค้ด Node.js ในคู่มือนี้เขียนขึ้นเพื่อเรียกใช้เป็น Google Cloud Function
Python
- โปรเจ็กต์ Google Cloud ที่เปิดใช้และกำหนดค่า Google Chat API โปรดดูขั้นตอนที่หัวข้อสร้างแอป Google Chat
- หากต้องการตอบกลับคำสั่งเครื่องหมายทับแบบส่วนตัว คำสั่งเครื่องหมายทับที่กำหนดค่าไว้สำหรับแอป Chat หากต้องการสร้างคำสั่งดังกล่าว โปรดดู การตอบกลับคำสั่งเครื่องหมายทับ
- หากต้องการส่งข้อความส่วนตัวโดยใช้เมธอด
messages.create()
คุณต้องใช้การตรวจสอบสิทธิ์แอป
หมายเหตุ: ตัวอย่างโค้ด Python ในคู่มือนี้เขียนขึ้นเพื่อเรียกใช้เป็น Google Cloud Function โดยใช้ Python 3.10
Apps Script
- แอป Chat หากต้องการสร้าง แอป Chat ให้ทำตาม quickstartนี้
- หากต้องการตอบกลับคำสั่งเครื่องหมายทับแบบส่วนตัว คำสั่งเครื่องหมายทับที่กำหนดค่าไว้สำหรับแอป Chat หากต้องการสร้างคำสั่งดังกล่าว โปรดดู การตอบกลับคำสั่งเครื่องหมายทับ
- หากต้องการส่งข้อความส่วนตัวโดยใช้เมธอด
messages.create()
คุณต้องใช้การตรวจสอบสิทธิ์แอป
ส่งข้อความส่วนตัว
หากต้องการส่งข้อความแบบแอป Chat แบบส่วนตัว ให้ระบุช่อง privateMessageViewer
ในข้อความเมื่อสร้างข้อความ คุณสามารถสร้างข้อความส่วนตัวได้เหมือนกับการสร้างข้อความด้วยการตอบกลับการโต้ตอบของผู้ใช้หรือการเรียกเมธอด create()
ของ Google Chat API แบบไม่พร้อมกันในทรัพยากร Message
โปรดดูขั้นตอนในการส่ง SMS หรือข้อความการ์ดที่ส่งข้อความ
ตัวอย่างต่อไปนี้แสดง JSON สำหรับข้อความส่วนตัวที่มีข้อความว่า Hello private world!
{
"text": "Hello private world!",
"privateMessageViewer": "USER"
}
ในตัวอย่างนี้ USER
แสดงถึงผู้ใช้ Chat ที่ดูข้อความได้ โดยอยู่ในรูปแบบทรัพยากร User
หากตอบสนองต่อการโต้ตอบของผู้ใช้ คุณจะระบุออบเจ็กต์ User
จากเหตุการณ์การโต้ตอบได้
ดูตัวอย่างในส่วนต่อไปนี้ ตอบกลับคำสั่งเครื่องหมายทับแบบส่วนตัว
หรือหากต้องการระบุผู้ดูสำหรับข้อความส่วนตัว ให้ใช้ช่อง name
ของทรัพยากร User
ดังนี้
{
"text": "Hello private world!",
"privateMessageViewer": {
"name": "users/USER_ID"
}
}
ในตัวอย่างนี้ คุณใช้ช่อง name
เพื่อระบุชื่อทรัพยากร User
ของผู้ชมใน Google Chat แทนที่ USER_ID
ด้วยรหัสที่ไม่ซ้ำกันสำหรับผู้ใช้ เช่น 12345678987654321
หรือ hao@cymbalgroup.com
โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการระบุผู้ใช้ที่หัวข้อระบุและระบุผู้ใช้ Google Chat
ตอบกลับแบบส่วนตัวด้วยคำสั่งเครื่องหมายทับ
โค้ดต่อไปนี้แสดงตัวอย่างแอป Chat ที่ตอบกลับคำสั่งเครื่องหมายทับด้วยข้อความส่วนตัว
แอป Chat จะประมวลผล
เหตุการณ์การโต้ตอบ MESSAGE
และตอบกลับคำสั่งเครื่องหมายทับ /help
ด้วยข้อความส่วนตัวที่อธิบายวิธีใช้
Node.js
/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {!Object} req Request sent from Google Chat app
* @param {!Object} res Response to send back
*
* @return {!Object} respond to slash command
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
return res.send('Hello! This function is meant to be used in Google Chat app.');
}
const event = req.body;
// Checks for the presence of event.message.slashCommand.
// If the slash command is "/help", responds with a private text message.
if (event.message.slashCommand) {
switch (event.message.slashCommand.commandId) {
case '1': // /help
return res.json({
privateMessageViewer: event.user,
text: 'This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>.'
});
}
}
// If the Chat app doesn't detect a slash command, it responds
// with a private text message
return res.json({
privateMessageViewer: event.user,
text: 'Try a slash command.'
});
};
Apps Script
/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {Object} event the event object from Google Chat
*/
function onMessage(event) {
if (event.message.slashCommand) {
switch (event.message.slashCommand.commandId) {
case 1: // Responds to /help
return {
"privateMessageViewer": event.user,
"text": "This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>."
};
}
}
else {
return { "text": "Try a slash command.", "privateMessageViewer": event.user };
}
}
Python
from typing import Any, Mapping
import flask
import functions_framework
@functions_framework.http
def main(req: flask.Request) -> Mapping[str, Any]:
"""Responds to a MESSAGE event in Google Chat.
Args:
req (flask.Request): the event object from Chat API.
Returns:
Mapping[str, Any]: open a Dialog in response to a card's button click.
"""
if req.method == 'GET':
return 'Hello! This function must be called from Google Chat.'
request = req.get_json(silent=True)
# Checks for the presence of event.message.slashCommand.
# If the slash command is "/help", responds with a private text message.
if request.get('message', {}).get('slashCommand'):
command_id = request.get('message', {}).get('slashCommand').get('commandId')
if command_id == '1': # /help
return {
'privateMessageViewer': request.get('user'),
'text': (
'This Chat app was created by Cymbal Labs. To get help with this'
' app, <https://cymbalgroup.com/docs|see our documentation> or'
' <https://cymbalgroup.com/support|contact our support team>.'
),
}
return {
'privateMessageViewer': request.get('user'),
'text': 'Try a slash command.',
}
ข้อจำกัด
ในการส่งข้อความส่วนตัว ข้อความต้องไม่มีหรือใช้สิ่งต่อไปนี้
- ไฟล์แนบ
- การดำเนินการของอุปกรณ์เสริม
- ข้อความส่วนตัวบางส่วน ตัวอย่างเช่น แอป Chat จะไม่สามารถส่งข้อความที่มีข้อความและการ์ดที่ข้อความจะปรากฏให้ผู้ใช้เพียงคนเดียวเห็น แต่ทุกคนในพื้นที่ทำงานจะเห็นการ์ดดังกล่าว
- การตรวจสอบสิทธิ์ผู้ใช้ มีเพียงแอป Chat เท่านั้นที่ส่งข้อความส่วนตัวได้ ดังนั้นแอป Chat จึงไม่สามารถตรวจสอบสิทธิ์ในฐานะผู้ใช้เพื่อส่งข้อความแบบส่วนตัว
อัปเดตหรือลบข้อความส่วนตัว
หากต้องการอัปเดตหรือลบข้อความ Google Chat คุณต้องเรียกใช้ Chat API แต่จะไม่สามารถเปลี่ยนผู้ดูข้อความส่วนตัวหรือทำให้ข้อความเป็นสาธารณะได้ ดังนั้นเมื่ออัปเดตข้อความส่วนตัว คุณต้องเว้นช่อง privateMessageViewer
ในการเรียก API (ช่องนี้เป็นเอาต์พุตเท่านั้น)
หากต้องการอัปเดตข้อความส่วนตัว โปรดดู อัปเดตข้อความ หากต้องการลบข้อความส่วนตัว โปรดดูหัวข้อลบข้อความ