Google Chat 앱으로 슬래시 명령어에 응답

이 페이지에서는 Google Chat 앱의 슬래시 명령어를 설정하고 응답하는 방법을 설명합니다.

슬래시 명령어는 사용자가 Chat 앱을 호출하고 상호작용하는 일반적인 방법입니다. 슬래시 명령어는 사용자가 Chat 앱의 주요 기능을 찾고 사용하는 데도 도움이 됩니다.

슬래시 명령어를 사용하려면 사용자가 슬래시 (/)를 입력한 다음 /about와 같은 짧은 텍스트 명령어를 입력하여 Chat 앱에 관한 정보를 가져옵니다. 사용자는 Google Chat에 슬래시를 입력하여 사용 가능한 슬래시 명령어를 확인할 수 있습니다. 그러면 Chat 앱에서 사용할 수 있는 명령어가 나열된 창이 표시됩니다.

슬래시 명령어 창
그림 1: 사용자가 Google Chat에 슬래시를 입력할 때 표시되는 창

슬래시 명령어의 설정 여부를 결정하고 사용자 상호작용을 설계하는 방법을 알아보려면 모든 사용자 여정 정의를 참고하세요.

비공개 응답이 포함된 슬래시 명령어

사용자가 슬래시 명령어가 포함된 메시지를 보내면 이 메시지는 사용자와 Chat 앱에만 표시됩니다. 여러 사용자가 있는 스페이스에 Chat 앱을 추가하도록 구성한 경우 사용자와 Chat 앱 간의 상호작용을 비공개로 유지하기 위해 슬래시 명령어에 비공개로 응답하는 것이 좋습니다.

예를 들어 스페이스에서 발견한 Chat 앱에 관해 알아보려면 사용자는 /about 또는 /help와 같은 명령어를 사용할 수 있습니다. 스페이스의 다른 모든 사용자에게 알림을 보내지 않기 위해 Chat 앱은 Chat 앱을 사용하고 지원을 받는 방법에 관한 정보를 비공개로 응답할 수 있습니다.

기본 요건

Node.js

대화형 기능이 사용 설정된 Google Chat 앱 HTTP 서비스를 사용하여 대화형 Chat 앱을 만들려면 이 빠른 시작을 완료하세요.

Apps Script

대화형 기능이 사용 설정된 Google Chat 앱 Apps Script에서 대화형 채팅 앱을 만들려면 이 빠른 시작을 완료하세요.

Python

양방향 기능이 사용 설정된 Google Chat 앱 HTTP 서비스를 사용하여 대화형 채팅 앱을 만들려면 이 빠른 시작을 완료하세요.

자바

대화형 기능이 사용 설정된 Google Chat 앱 HTTP 서비스를 사용하여 대화형 채팅 앱을 만들려면 이 빠른 시작을 완료하세요.

슬래시 명령어 설정

이 섹션에서는 다음 단계를 완료하여 슬래시 명령어를 설정하는 방법을 설명합니다.

  1. 슬래시 명령어의 이름을 만듭니다.
  2. Google Chat API에서 슬래시 명령어를 구성합니다.

슬래시 명령어 이름 지정

슬래시 명령어의 이름은 사용자가 Chat 메시지에 입력하여 Chat 앱을 호출하는 명령어입니다. 이름 아래에는 명령어 사용 방법을 사용자에게 자세히 안내하는 간단한 설명도 표시됩니다.

슬래시 명령어 이름 및 설명
그림 2: 슬래시 명령어의 이름과 설명

슬래시 명령어의 이름과 설명을 선택할 때는 다음 권장사항을 고려하세요.

  • 슬래시 명령어의 이름을 지정하려면 다음 단계를 따르세요.

    • 짧고, 설명적이고, 실행 가능한 단어나 문구를 사용하여 명령이 사용자에게 명확하고 간단하게 전달되도록 합니다. 예를 들어 /createAReminder 대신 /remindMe를 사용합니다.
    • 명령어에 두 개 이상의 단어가 포함된 경우 첫 번째 단어는 모두 소문자로 사용하고 추가 단어의 첫 글자는 대문자로 사용하여 사용자가 명령어를 읽을 수 있도록 지원합니다. 예를 들어 /updatecontact 대신 /updateContact를 사용합니다.
    • 명령어에 고유한 이름을 사용할지 아니면 일반적인 이름을 사용할지 고려하세요. 명령어가 일반적인 상호작용이나 기능을 설명하는 경우 사용자가 인식하고 예상하는 일반적인 이름(예: /settings 또는 /feedback)을 사용할 수 있습니다. 그렇지 않은 경우에는 고유한 명령어 이름을 사용해 보세요. 다른 채팅 앱의 명령어 이름이 같은 경우 사용자가 유사한 명령어를 필터링하여 내 명령어를 찾아서 사용해야 하기 때문입니다.
  • 슬래시 명령어를 설명하려면 다음 단계를 따르세요.

    • 사용자가 명령어를 호출할 때 무엇을 기대할 수 있는지 알 수 있도록 설명을 짧고 명확하게 유지합니다.
    • 명령어에 형식 지정 요구사항이 있는지 사용자에게 알립니다. 예를 들어 인수 텍스트가 필요한 /remindMe 명령어를 만드는 경우 설명을 Remind me to do [something] at [time]과 같이 설정합니다.
    • Chat 앱이 스페이스의 모든 사용자에게 답장하는지 또는 명령어를 호출한 사용자에게 비공개로 답장하는지 사용자에게 알립니다. 예를 들어 슬래시 명령어 /aboutLearn about this app (Only visible to you)로 설명할 수 있습니다.

Google Chat API에서 슬래시 명령어 구성

슬래시 명령어를 만들려면 Google Chat API에 대한 채팅 앱 구성에서 명령어에 대한 정보를 지정해야 합니다.

Google Chat API에서 슬래시 명령어를 구성하려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 메뉴 > API 및 서비스 > 사용 설정된 API 및 서비스 > Google Chat API를 클릭합니다.

    Google Chat API 페이지로 이동

  2. 구성을 클릭합니다.

  3. 슬래시 명령어에서 슬래시 명령어 추가를 클릭합니다.

  4. 명령어의 이름, 명령어 ID, 설명을 입력합니다.

    1. 이름: 명령어의 표시 이름이며 사용자가 앱을 호출하기 위해 입력하는 이름입니다. 슬래시로 시작해야 하며 텍스트만 포함하고 최대 50자(영문 기준)까지 가능합니다.
    2. 설명: 명령어를 사용하고 형식을 지정하는 방법을 설명하는 텍스트입니다. 설명은 최대 50자(영문 기준)까지 입력할 수 있습니다.
    3. 명령어 ID: Chat 앱에서 슬래시 명령어를 인식하고 응답을 반환하는 데 사용하는 1~1,000 사이의 숫자입니다.
  5. 선택사항: 채팅 앱이 대화상자로 명령어에 응답하도록 하려면 대화상자 열기 체크박스를 선택합니다.

  6. 저장을 클릭합니다.

이제 Chat 앱에 슬래시 명령어가 구성되었습니다.

슬래시 명령어에 응답

사용자가 슬래시 명령어가 포함된 Chat 메시지를 만들면 Chat 앱은 MESSAGE 상호작용 이벤트를 수신합니다. 이벤트 페이로드에는 slashCommandslashCommandMetadata 객체가 포함됩니다. 이러한 객체에는 적절한 응답을 반환할 수 있도록 메시지에 사용된 명령어에 관한 세부정보(명령어 ID 포함)가 포함되어 있습니다.

Cymbal Labs Chat 앱을 위한 비공개 메시지입니다. 이 메시지에는 Chat 앱이 Cymbal Labs에서 만들었다고 안내하고 문서 링크와 지원팀에 문의할 수 있는 링크를 공유합니다.
Chat 앱이 슬래시 명령어 /help에 비공개로 응답하여 지원을 받는 방법을 설명합니다.

다음 코드는 MESSAGE 상호작용 이벤트를 처리하고 메시지에 일치하는 명령어 ID가 포함되어 있는지 감지하여 /about 슬래시 명령어에 응답하는 Chat 앱의 예를 보여줍니다. 메시지에 명령어 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/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:
      Message aboutMessage = new Message();
      aboutMessage.setText("The Avatar app replies to Google Chat messages.");
      aboutMessage.setPrivateMessageViewer(new User()
        .setName(body.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
  }
}

Chat API에서 슬래시 명령어를 구성할 때 지정한 명령어 ID로 ABOUT_COMMAND_ID를 설정합니다. 이 코드를 테스트하려면 Google Chat 앱의 양방향 기능 테스트를 참고하세요.