--- tags: [Slack, API, Emoji, Reaction, Bot] date: 2025-09-17 modified: 2025-09-17 --- # 로빙(RO-BEING)의 슬랙 이모티콘 반응 기능 구현 방안 이 문서는 로빙 에이전트가 슬랙 채널의 특정 메시지에 이모티콘 반응을 추가하거나 제거하는 기능의 구현 방법을 정리한 것입니다. ## 1. 핵심 요약 결론적으로, 로빙은 슬랙 웹 API(Slack Web API)를 통해 특정 메시지에 이모티콘 반응을 다는 것이 **가능합니다.** ## 2. 필수 API 및 권한 ### 2.1. 주요 API 메서드 - **`reactions.add`**: 특정 메시지에 이모티콘 반응을 추가합니다. - **필수 파라미터**: `channel` (채널 ID), `timestamp` (메시지의 타임스탬프), `name` (이모티콘 이름, 예: `thumbsup`) - **`reactions.remove`**: 로빙이 추가했던 이모티콘 반응을 제거합니다. - **필수 파라미터**: `channel`, `timestamp`, `name` > **참고**: 과거에 사용되던 `file`, `file_comment` 기반의 반응 추가 방식은 현재 권장되지 않습니다. ### 2.2. 필요 권한 (Bot Token Scopes) - **`reactions:write`**: 이모티콘 반응을 추가하거나 제거하기 위한 필수 권한입니다. - **`reactions:read`**: 특정 메시지에 달린 반응 현황을 조회하거나, 반응 관련 이벤트를 수신할 때 필요합니다. ## 3. 주요 구현 시나리오 자동화 시나리오는 크게 두 가지 방식으로 구현할 수 있습니다. ### 시나리오 1: 직접 트리거 방식 (Direct Trigger) - **동작 방식**: 사용자가 특정 슬래시(`/`) 명령을 입력하거나 메시지에 첨부된 버튼을 클릭하면, 로빙이 해당 메시지의 `channel`과 `timestamp`를 즉시 파악하여 `reactions.add` API를 호출합니다. - **장점**: 사용자의 명시적인 요청에 따라 즉각적으로 반응하므로 직관적입니다. - **예시**: `/done` 명령을 입력하면 해당 메시지에 `:white_check_mark:` 이모티콘을 추가합니다. ### 시나리오 2: 이벤트 구독 방식 (Event-based Trigger) - **동작 방식**: 슬랙의 Events API에서 `reaction_added` 이벤트를 구독합니다. 사용자가 특정 메시지에 정해진 이모티콘(예: `:robot_face:`)을 달면, 로빙이 이벤트를 수신하여 후속 동작(예: 다른 이모티콘 추가, 스레드에 답변 등)을 수행합니다. - **장점**: 사용자의 자연스러운 이모티콘 반응을 감지하여 능동적으로 동작을 개시할 수 있습니다. - **예시**: 사용자가 어떤 메시지에 `:question:` 이모티콘을 달면, 로빙이 해당 스레드에 "무엇을 도와드릴까요?"라고 답변을 남깁니다. ## 4. 다음 단계 구체적인 구현에 앞서, 어떤 시나리오(규칙 기반 자동 반응 vs. 사용자 수동 트리거)를 우선적으로 개발할지 결정해야 합니다. 이 결정에 따라 필요한 세부 구현 지침이 달라집니다.