슬래시 명령어 구현

슬래시 명령어를 사용하면 사용자가 앱의 일부 기능을 이해하는 데 도움이 되는 앱의 특정 명령어를 등록하고 알릴 수 있습니다. 사용자가 앱과 채팅하면서 슬래시를 입력하면 앱의 슬래시 명령어가 각 명령어의 기능에 대한 설명과 함께 팝업에 표시됩니다.

사용자가 슬래시 명령어로 앱을 호출하면 앱에 전송된 메시지에 추가 필드가 첨부됩니다. 이 필드는 사용자가 앱 구성에서 지정한 명령어 ID를 기준으로 슬래시 명령어와 선택한 슬래시 명령어를 선택했음을 나타냅니다. 또한 사용자가 이름으로 앱과 상호작용하는 경우와 마찬가지로 슬래시 명령어에도 주석이 있습니다.

{
  ...
  "message": {
    ...
    "text": "/vote yes",
    "argumentText": " yes",
    "annotations": [
      {
        "length": 5,
        "startIndex": 0,
        "slashCommand": {
          "type": "INVOKE",
          "user": {
            "avatarUrl": "https://.../avatar.png",
            "displayName": "VoteBot",
            "name": "users/1234567890987654321",
            "type": "BOT"
          }
        },
        "type": "SLASH_COMMAND"
      }
    ],
    "slashCommand": {
      "commandId": 2
    }
  }
}

앱에서 수신하는 명령어 ID는 앱 구성에서 명령어에 지정하는 명령어 ID에 대응됩니다.

이렇게 하면 앱이 제한된 인수 파싱을 사용하여 슬래시 명령어 사례를 명시적으로 처리할 수 있습니다.

if (message.slashCommand) {
  switch (message.slashCommand.commandId) {
    case 2:  // /vote
      return vote(message.argumentText);
  }
}

// Other existing handling for users invoking your app by name.