傳送 Google Chat 訊息

本頁說明 Google Chat 應用程式如何傳送訊息,回覆使用者的互動。

  • 透過斜線指令開啟聯絡表單。
    圖 1. A 即時通訊應用程式會以文字訊息和按鈕回應斜線指令。
  • 對話方塊中的聯絡表單。
    圖 2. Chat 應用程式會開啟對話方塊,讓使用者輸入資訊。
  • 含有表單輸入小工具的訊息卡片。
    圖 5. A Chat 應用程式會傳送含有文字和互動式資訊卡的訊息。

必要條件

Node.js

可擴充 Google Chat 功能的 Google Workspace 外掛程式。如要建構一個,請完成 HTTP 快速入門

Apps Script

可擴充 Google Chat 功能的 Google Workspace 外掛程式。如要建構一個,請完成 Apps Script 快速入門導覽課程

設計訊息

即時通訊應用程式可以在訊息中加入下列任一項目:

  • 含有超連結、@提及和表情符號的文字。
  • 一或多張資訊卡,可顯示在訊息中,或在新視窗中以對話方塊形式開啟。
  • 一或多個配件小工具,也就是顯示在郵件中任何文字或資訊卡後方的按鈕。

如要瞭解如何設計訊息,請參閱下列 Google Chat API 說明文件:

使用訊息回覆

對話應用程式可以透過訊息回應下列任何觸發條件或互動:

  • 訊息觸發條件,例如使用者在訊息中 @提及或直接傳送訊息給 Chat 應用程式。
  • 已新增至聊天室觸發條件,例如使用者從 Google Workspace Marketplace 安裝 Chat 應用程式,或將其新增至聊天室時。
  • 訊息或對話方塊中資訊卡的按鈕點擊次數。舉例來說,使用者輸入資訊並點選「提交」時。

否則,Chat 擴充應用程式可以呼叫 Google Chat API,主動傳送訊息。

如要回覆訊息,請傳回含有 CreateMessageAction 物件的動作 DataActions

{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
  "message": MESSAGE
}}}

MESSAGE 替換為 Chat API 的 Message 資源。如要進一步瞭解動作的運作方式,請參閱「即時通訊動作」。

在下列範例中,每當 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. An onboarding message that
 *                     introduces the app and helps people get started with it.
 */
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`.'
    }}}}});
  }
};

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. An onboarding message that
 *                  introduces the app and helps people get started with it.
 */
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 應用程式訊息,請傳回含有 UpdateMessageAction 的動作 DataActions,如下列範例所示:

{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
  "message": MESSAGE
}}}}

MESSAGE 替換為 Chat API 的 Message 資源。

如要進一步瞭解動作的運作方式,請參閱「即時通訊動作」。

Chat 擴充應用程式也可以更新使用者傳送的訊息,傳回連結的預覽畫面。詳情請參閱「在 Google Chat 訊息中預覽連結」。

使用 Google Chat API 回覆互動或傳送主動式訊息

Chat 擴充應用程式可能需要使用 Google Chat API 回應互動,而不是傳回外掛程式動作。舉例來說,Chat 應用程式必須呼叫 Google Chat API,才能執行下列任何操作:

  • 排定傳送訊息的時間,或傳送外部資源變更相關訊息。例如新問題或案件的通知。
  • 在互動後超過 30 秒才回覆。舉例來說,在完成長時間執行的工作後,以訊息回覆。
  • 在互動發生的聊天室外傳送訊息。
  • 代表 Chat 使用者傳送訊息。

如要使用 Chat API 傳送訊息,請務必設定驗證,並呼叫 Message 資源的 create() 方法。如需相關步驟,請參閱「使用 Google Chat API 傳送訊息」。