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 を使用したメッセージの送信をご覧ください。