ส่งข้อความ Google Chat

หน้านี้อธิบายวิธีที่แอป Google Chat ส่งข้อความเพื่อตอบกลับการโต้ตอบของผู้ใช้

  • แบบฟอร์มติดต่อจากคำสั่งเครื่องหมายทับ

    แอป Chat ตอบกลับคำสั่งเครื่องหมายทับด้วยข้อความและปุ่ม

  • แบบฟอร์มติดต่อในกล่องโต้ตอบ

    แอป Chat จะเปิดกล่องโต้ตอบที่ผู้ใช้ป้อนข้อมูลได้

  • ข้อความการ์ดที่มีวิดเจ็ตอินพุตแบบฟอร์ม

    แอป Chat จะส่งข้อความที่มีข้อความและบัตรแบบอินเทอร์แอกทีฟ

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

HTTP

ส่วนเสริม Google Workspace ที่ขยาย Google Chat หากต้องการสร้างส่วนเสริมดังกล่าว ให้ทำตาม คู่มือเริ่มต้นใช้งานฉบับย่อของ HTTP

Apps Script

ส่วนเสริม Google Workspace ที่ขยาย Google Chat หากต้องการสร้างส่วนเสริมดังกล่าว ให้ทำตาม คู่มือเริ่มต้นใช้งานฉบับย่อของ Apps Script

ออกแบบข้อความ

แอป Chat สามารถใส่องค์ประกอบใดองค์ประกอบหนึ่งต่อไปนี้ในข้อความ

  • ข้อความที่มีไฮเปอร์ลิงก์, @พูดถึง และอีโมจิ
  • บัตรอย่างน้อย 1 ใบ ซึ่งอาจปรากฏในข้อความหรือเปิดในหน้าต่างใหม่เป็นกล่องโต้ตอบ
  • วิดเจ็ตเสริมอย่างน้อย 1 รายการ ซึ่งเป็นปุ่มที่จะปรากฏหลังข้อความหรือบัตรในข้อความ

ดูข้อมูลเกี่ยวกับการออกแบบข้อความได้ในเอกสารประกอบของ Google Chat API ต่อไปนี้

ตอบกลับด้วยข้อความ

แอป 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`.'
  }}}}};
}

ตัวอย่างโค้ดจะแสดงผลข้อความต่อไปนี้

ตัวอย่างข้อความเริ่มต้นใช้งาน

ดูตัวอย่างเพิ่มเติมเกี่ยวกับวิธีตอบกลับด้วยข้อความได้ในคำแนะนำต่อไปนี้

อัปเดตข้อความ

แอป 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