DOCS/ideas/250917_로빙_슬랙_이모티콘_반응_기능_구현.md

2.9 KiB

tags, date, modified
tags date modified
Slack
API
Emoji
Reaction
Bot
2025-09-17 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)

  • 동작 방식: 사용자가 특정 슬래시(/) 명령을 입력하거나 메시지에 첨부된 버튼을 클릭하면, 로빙이 해당 메시지의 channeltimestamp를 즉시 파악하여 reactions.add API를 호출합니다.
  • 장점: 사용자의 명시적인 요청에 따라 즉각적으로 반응하므로 직관적입니다.
  • 예시: /done 명령을 입력하면 해당 메시지에 :white_check_mark: 이모티콘을 추가합니다.

시나리오 2: 이벤트 구독 방식 (Event-based Trigger)

  • 동작 방식: 슬랙의 Events API에서 reaction_added 이벤트를 구독합니다. 사용자가 특정 메시지에 정해진 이모티콘(예: :robot_face:)을 달면, 로빙이 이벤트를 수신하여 후속 동작(예: 다른 이모티콘 추가, 스레드에 답변 등)을 수행합니다.
  • 장점: 사용자의 자연스러운 이모티콘 반응을 감지하여 능동적으로 동작을 개시할 수 있습니다.
  • 예시: 사용자가 어떤 메시지에 :question: 이모티콘을 달면, 로빙이 해당 스레드에 "무엇을 도와드릴까요?"라고 답변을 남깁니다.

4. 다음 단계

구체적인 구현에 앞서, 어떤 시나리오(규칙 기반 자동 반응 vs. 사용자 수동 트리거)를 우선적으로 개발할지 결정해야 합니다. 이 결정에 따라 필요한 세부 구현 지침이 달라집니다.