Google Chat メッセージを送信する

このページでは、Google Chat アプリがメッセージを送信してユーザーの操作に返信する方法について説明します。

Google Chat では、アドオンは Google Chat アプリとしてユーザーに表示されます。詳細については、Google Chat の拡張機能の概要をご覧ください。

  • スラッシュ コマンドからのお問い合わせフォーム。
    図 1: チャットアプリがスラッシュ コマンドにテキスト メッセージとボタンで応答します。
  • ダイアログ内の連絡先フォーム。
    図 2. チャットアプリで、ユーザーが情報を入力できるダイアログが開きます。
  • フォーム入力ウィジェットを含むカード メッセージ。
    図 5. Chat アプリがテキストとインタラクティブなカードを含むメッセージを送信します。

前提条件

Node.js

Google Chat を拡張する Google Workspace アドオン。ビルドするには、HTTP クイックスタートを完了します。

Apps Script

Google Chat を拡張する Google Workspace アドオン。作成するには、Apps Script のクイックスタートを完了します。

メッセージを設計する

チャットアプリでは、メッセージに次のいずれかを含めることができます。

  • ハイパーリンク、@ メンション、絵文字を含むテキスト。
  • 1 つ以上のカード。メッセージに表示することも、ダイアログとして新しいウィンドウで開くこともできます。
  • 1 つ以上のアクセサリ ウィジェット。メッセージ内のテキストやカードの後に表示されるボタンです。

メッセージの設計については、次の Google Chat API のドキュメントをご覧ください。

メッセージで応答

Chat アプリは、次のトリガーまたは操作に対してメッセージで応答できます。

  • メッセージ トリガー: ユーザーが Chat アプリに名前リンク付きメッセージを送信したり、ダイレクト メッセージを送信したりしたときなど。
  • スペースに追加トリガー: ユーザーが Google Workspace Marketplace から Chat アプリをインストールしたときや、スペースに追加したときなど。
  • メッセージまたはダイアログ内のカードからのボタンクリック。たとえば、ユーザーが情報を入力して送信をクリックしたときなどです。

そうでない場合は、Google Chat API を呼び出すことで、Chat アプリが事前にメッセージを送信できます。

メッセージで返信するには、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 リソースに置き換えます。

アクションの仕組みについて詳しくは、チャット アクションをご覧ください。

チャットアプリは、ユーザーからのメッセージを更新して、送信されたリンクのプレビューを返すこともできます。詳しくは、Google Chat メッセージでリンクをプレビューするをご覧ください。

Google Chat API を使用してインタラクションに返信する、または事前対応メッセージを送信する

Chat アプリでは、アドオン アクションを返す代わりに、Google Chat API を使用してインタラクションに応答する必要がある場合があります。たとえば、Chat アプリは、次のいずれかを行うために Google Chat API を呼び出す必要があります。

  • スケジュールに沿ってメッセージを送信したり、外部リソースの変更に関するメッセージを送信したりできます。たとえば、新しい問題やケースに関する通知などです。
  • やり取りから 30 秒以上経過してから返信する。たとえば、長時間実行タスクの完了後にメッセージで応答する場合などです。
  • やり取りが行われたスペースの外部にメッセージを送信する。
  • Chat ユーザーの代理でメッセージを送信する。

Chat API を使用してメッセージを送信するには、認証を設定し、Message リソースで create() メソッドを呼び出す必要があります。手順については、Google Chat API を使用したメッセージの送信をご覧ください。