Google Chat アプリとしてスラッシュ コマンドに応答する

このページでは、 Google Chat アプリ。

スラッシュ コマンドは、ユーザーがコマンドラインで Chat アプリ。スラッシュ コマンドを使用すると、 Chat 用アプリの主な機能を使用する。

スラッシュ コマンドを使用するには、スラッシュ(/)と短いテキスト コマンド(/about など)を入力して、Chat アプリに関する情報を取得します。使用可能なスラッシュ コマンドは、Google Chat にスラッシュを入力すると表示されるウィンドウで確認できます。このウィンドウには、Chat アプリで使用可能なコマンドの一覧が表示されます。

スラッシュ コマンド ウィンドウ
図 1: ユーザーが Google Chat にスラッシュを入力したときに表示されるウィンドウ。

スラッシュ コマンドを設定するかどうかを判断し、ユーザー インタラクションを設計する方法については、すべてのユーザー ジャーニーを定義するをご覧ください。

返信を非公開にするスラッシュ コマンド

ユーザーがスラッシュ コマンドを含むメッセージを送信しても、 ユーザーに表示されます。条件 Chat 用アプリがスペースに追加されるよう 場合、スラッシュ コマンドに返信することも、 ユーザーとデバイスの間のやり取りの機密性が維持されるように、 Chat アプリ。

たとえば、スペースで見つけられた Chat アプリについてユーザーが学習するには、/about/help などのコマンドを使用します。スペース内の他のユーザーに通知しないように、Chat アプリは Chat アプリの使用方法やサポートの利用方法に関する情報を非公開で返信できます。

前提条件

Node.js

インタラクティブ機能が有効になっている Google Chat アプリ。新しい HTTP サービスを使用したインタラクティブな Chat アプリについては、こちらのクイックスタートを完了します。

Apps Script

インタラクティブ機能を有効にする Google Chat アプリ。新しい 対話型の Chat アプリを使用するには、このクイックスタートを完了します。

Python

インタラクティブ機能が有効になっている Google Chat アプリ。HTTP サービスを使用してインタラクティブな Chat アプリを作成するには、こちらのクイックスタートを完了してください。

Java

インタラクティブ機能を有効にする Google Chat アプリ。新しい HTTP サービスを使用したインタラクティブな Chat アプリについては、こちらのクイックスタートを完了します。

スラッシュ コマンドを設定する

このセクションでは、次の手順でスラッシュを設定する方法について説明します。 command:

  1. スラッシュ コマンドの名前を作成します。
  2. Google Chat API でスラッシュ コマンドを構成します。

スラッシュ コマンドに名前を付ける

スラッシュ コマンドの名前は、ユーザーが Chat メッセージに入力して Chat アプリを呼び出すものです。名前の下に簡単な説明も表示され、コマンドの使用方法についてユーザーに提示されます。

<ph type="x-smartling-placeholder">
</ph> スラッシュ コマンドの名前と説明
図 2: スラッシュ コマンドの名前と説明

スラッシュ コマンドの名前と説明を選択する場合は、 次の推奨事項に従ってください。

  • スラッシュ コマンドに名前を付けるには:

    • 簡潔でわかりやすく、実用的な単語やフレーズを使用して、 明確でシンプルなものにします。たとえば、 /createAReminder/remindMe を使用します。
    • コマンドに複数の単語が含まれている場合は、最初の単語をすべて小文字にして、それ以降の単語の最初の文字を大文字にすることで、ユーザーがコマンドを読みやすくします。たとえば、/updatecontact ではなく /updateContact を使用します。
    • コマンドに一意の名前を使用するか、共通の名前を使用するかを検討します。コマンドが一般的なインタラクションや機能を記述する場合は、ユーザーが認識し、期待する一般的な名前(/settings/feedback など)を使用できます。それ以外の場合は、一意のコマンド名を使用することをおすすめします。コマンド名が他の Chat アプリと同じである場合、ユーザーは類似のコマンドをフィルタしてコマンドを見つけて使用する必要があります。
  • スラッシュ コマンドの説明を取得するには:

    • コマンドを呼び出すときにユーザーが期待する結果を把握できるように、説明は簡潔で明確にします。
    • コマンドのフォーマット要件がある場合は、ユーザーにその旨を伝えます。 たとえば、引数テキストを必要とする /remindMe コマンドを作成する場合は、説明を Remind me to do [something] at [time] などに設定します。
    • Chat 用アプリから コマンドを呼び出すユーザーに限定公開できます。 たとえば、スラッシュ コマンド /aboutLearn about this app (Only visible to you) と記述できます。

Google Chat API でスラッシュ コマンドを構成する

スラッシュ コマンドを作成するには、Google Chat API 用に Chat アプリの構成でコマンドに関する情報を指定する必要があります。

Google Chat API でスラッシュ コマンドを構成する手順は次のとおりです。 手順:

  1. Google Cloud コンソールで、メニュー > [API とサービス] > [有効な API とサービス] > [Google Chat API] をクリックします。

    [Google Chat API] ページに移動

  2. [構成] をクリックします。

  3. [スラッシュ コマンド] で [スラッシュ コマンドを追加] をクリックします。

  4. コマンドの名前、コマンド ID、説明を入力します。

    1. 名前: コマンドの表示名とユーザーの入力 アプリを呼び出すことができますスラッシュで始まり、テキストのみを含む必要があります。また、 50 文字以内。
    2. 説明: 使用方法と書式設定を説明するテキスト 指定できます。説明文は半角 50 文字(全角 25 文字)以内で入力できます。
    3. コマンド ID: 使用している 1 ~ 1000 の数値 Chat アプリはスラッシュ コマンドを認識するために使用する レスポンスが返されます。
  5. 省略可: Chat 用アプリが ダイアログ付きでコマンドを実行する場合は、 [ダイアログを開く] チェックボックスをオンにします。

  6. [保存] をクリックします。

これで、Chat アプリ用にスラッシュ コマンドが構成されました。

スラッシュ コマンドに応答する

ユーザーがスラッシュ コマンドを含む Chat メッセージを作成すると、Chat アプリは MESSAGE インタラクション イベントを受信します。イベント ペイロードには、slashCommand オブジェクトと slashCommandMetadata オブジェクトが含まれます。これらのオブジェクトには、メッセージで使用されたコマンドの詳細が格納されています。 (コマンド ID を含む)。これにより、適切なレスポンスを返すことができます。

<ph type="x-smartling-placeholder">
</ph> Cymbal Labs の Chat アプリの非公開メッセージ。このメッセージには、Chat アプリが Cymbal Labs によって作成されたこと、ドキュメントへのリンク、サポートチームへの連絡先のリンクが記載されています。
Chat アプリは、チャット メッセージに非公開で応答します。 スラッシュ コマンド /help を使用して、サポートの利用方法を説明します。

次のコードは、Chat 用アプリの例を示しています。 これは、/about スラッシュ コマンドに応答するために、 MESSAGE インタラクション イベントと検出 一致するコマンド ID がメッセージに含まれているかどうか。メッセージにコマンド ID が含まれている場合、Chat アプリは非公開メッセージを返します。

Node.js

node/avatar-app/index.js
// Checks for the presence of a slash command in the message.
if (event.message.slashCommand) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  switch (event.message.slashCommand.commandId) {
    case ABOUT_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
  }
}

Apps Script

apps-script/avatar-app/avatar-app.gs
// Checks for the presence of a slash command in the message.
if (event.message.slashCommand) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  switch (event.message.slashCommand.commandId) {
    case ABOUT_COMMAND_ID:
      return {
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      };
  }
}

Python

python/avatar-app/main.py
# Checks for the presence of a slash command in the message.
if "slashCommand" in request_json["message"]:
  # Executes the slash command logic based on its ID.
  # Slash command IDs are set in the Google Chat API configuration.
  if request_json["message"]["slashCommand"]["commandId"] == ABOUT_COMMAND_ID:
    return {
      "privateMessageViewer": request_json["user"],
      "text": 'The Avatar app replies to Google Chat messages.'
    }

Java

java/avatar-app/src/main/java/App.java
// Checks for the presence of a slash command in the message.
if (body.getAsJsonObject("message").has("slashCommand")) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  JsonObject slashCommand = body.getAsJsonObject("message").getAsJsonObject("slashCommand");
  switch (slashCommand.get("commandId").getAsString()) {
    case ABOUT_COMMAND_ID:
    JsonObject aboutMessage = new JsonObject();
    aboutMessage.addProperty("text", "The Avatar app replies to Google Chat messages.");
    aboutMessage.add("privateMessageViewer", body.getAsJsonObject("user"));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
  }
}

ABOUT_COMMAND_ID に、Chat API でスラッシュ コマンドを構成したときに指定したコマンド ID を設定します。このコードをテストするには、Google Chat アプリのインタラクティブ機能をテストするをご覧ください。