傳送 Google Chat 訊息

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

在 Google Chat 中,使用者會看到附加元件,就像是 Google Chat 應用程式一樣。詳情請參閱「擴充 Google Chat 總覽」。

  • 透過斜線指令傳送的聯絡表單。
    圖 1. 即時通訊應用程式會使用文字訊息和按鈕回應斜線指令。
  • 對話方塊中的聯絡表單。
    圖 2. Chat 應用程式會開啟對話方塊,讓使用者輸入資訊。
  • 含有表單輸入小工具的資訊卡訊息。
    圖 5. 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 動作,回應「Added to space」觸發條件:

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 傳送訊息」。