ส่งข้อความส่วนตัวถึงผู้ใช้ Google Chat

หน้านี้อธิบายวิธีสร้างและส่งข้อความส่วนตัวเป็นแอป Google Chat

ข้อความส่วนตัวคือข้อความในแอป Chat ที่ปรากฏเฉพาะผู้ใช้ Chat ที่ระบุเท่านั้น คุณสามารถใช้ข้อความส่วนตัวในพื้นที่ทำงาน กับผู้ใช้หลายคนเพื่อให้พวกเขาโต้ตอบแบบส่วนตัวกับแอป Chat ได้ ตัวอย่างเช่น แอป Chat สามารถส่งข้อความแบบส่วนตัวเพื่อทำสิ่งต่อไปนี้

  • ตอบกลับคําสั่งเครื่องหมายทับ ตัวอย่างเช่น หากผู้ใช้ใช้คำสั่งเครื่องหมายทับ /about ของแอป Chat ในพื้นที่ทำงาน แอป Chat จะตอบกลับด้วยข้อความส่วนตัวที่อธิบายสิ่งที่แอป Chat ทำและวิธีใช้
  • แจ้งหรือส่งข้อมูลเฉพาะที่เกี่ยวข้องกับผู้ใช้รายเดียว เช่น แจ้งให้ผู้ใช้ทราบว่าได้รับมอบหมายงานหรือเตือนให้ทํางาน
  • ส่งข้อความแสดงข้อผิดพลาด เช่น หากผู้ใช้ละเว้นข้อความอาร์กิวเมนต์ที่จําเป็นสําหรับคําสั่งเครื่องหมายทับ แอป Chat จะส่งข้อความส่วนตัวเพื่ออธิบายข้อผิดพลาดและช่วยผู้ใช้จัดรูปแบบคําสั่งได้

เมื่อแอป Chat ส่งข้อความส่วนตัว ข้อความดังกล่าวจะแสดงป้ายกำกับที่แจ้งให้ผู้ใช้ทราบว่ามีเพียงผู้ใช้เท่านั้นที่เห็นข้อความดังกล่าว

ข้อความส่วนตัวสำหรับแอป Chat ของ Cymbal Labs ซึ่งระบุว่าแอป Chat นี้สร้างขึ้นโดย Cymbal Labs และแชร์ลิงก์สำหรับเอกสารประกอบและลิงก์สำหรับติดต่อทีมสนับสนุน
ภาพที่ 1: เมื่อแอป Chat ส่ง ข้อความส่วนตัว ผู้ใช้จะเห็นข้อความที่มีป้ายกำกับ Only visible to you

ข้อกำหนดเบื้องต้น

Node.js

หมายเหตุ: ตัวอย่างโค้ด Node.js ในคู่มือนี้เขียนขึ้นเพื่อเรียกใช้เป็น Google Cloud Function

Python

หมายเหตุ: ตัวอย่างโค้ด Python ในคู่มือนี้เขียนขึ้นเพื่อเรียกใช้เป็น Google Cloud Function โดยใช้ Python 3.10

Apps Script

ส่งข้อความส่วนตัว

หากต้องการส่งข้อความแบบแอป 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 (ช่องนี้เป็นเอาต์พุตเท่านั้น)

หากต้องการอัปเดตข้อความส่วนตัว โปรดดู อัปเดตข้อความ หากต้องการลบข้อความส่วนตัว โปรดดูหัวข้อลบข้อความ