docs: Company-X Slack 봇 channel_not_found 에러 상세 분석 추가
- 멀티 워크스페이스 토큰 불일치 문제 문서화 - 실제 에러 로그 및 상세 분석 추가 - 이벤트 수신 성공, 응답 전송 실패 원인 명시
This commit is contained in:
parent
3967a41511
commit
313c903176
@ -197,4 +197,87 @@ im:read, im:history, users:read, team:read, files:read, app_mentions:read
|
||||
- companies 테이블: Company-X (8001 포트, active 상태)
|
||||
- workspaces 테이블: Company-X (8명 멤버)
|
||||
- slack_workspaces: T097FCTDVEX → Company-X 연결 완료
|
||||
- 봇 설치 준비 완료
|
||||
- 봇 설치 준비 완료
|
||||
|
||||
## 6. Company-X 봇 설치 완료 및 토큰 문제 (2025-09-02 23:00)
|
||||
|
||||
### 6.1 설치 완료 정보
|
||||
**Company-X 봇 설치 성공:**
|
||||
- Team ID: T097FCTDVEX
|
||||
- Team Name: COMPANY X
|
||||
- Bot User ID: U09DWLARFQQ
|
||||
- App ID: A092HLQA1NW
|
||||
- Bot Token: xoxb-9253435471507-9253533160819-2zZNbJaxdJcQjhJAG8t0TQFi
|
||||
- 11개 권한 모두 부여됨
|
||||
|
||||
### 6.2 멀티 워크스페이스 토큰 관리 문제
|
||||
|
||||
**문제 발견:**
|
||||
- rb8001 컨테이너가 단일 SLACK_BOT_TOKEN 환경변수 사용
|
||||
- 디지털비잉_로빙 토큰: xoxb-9073915808149-...
|
||||
- Company-X 토큰: xoxb-9253435471507-...
|
||||
- 현재 rb8001에 디지털비잉_로빙 토큰만 설정되어 있음
|
||||
|
||||
**증상:**
|
||||
- Company-X에서 메시지 수신은 정상
|
||||
- 응답 시도 시 실패: `Failed to send final response: The request to the Slack API failed`
|
||||
- 원인: 잘못된 토큰으로 응답 시도
|
||||
|
||||
**실제 에러 로그:**
|
||||
```
|
||||
ERROR:app.router.slack_handler:Failed to send final response: The request to the Slack API failed. (url: https://www.slack.com/api/chat.postMessage)
|
||||
The server responded with: {'ok': False, 'error': 'channel_not_found'}
|
||||
```
|
||||
|
||||
**상세 분석:**
|
||||
1. 이벤트 수신 ✅
|
||||
- U09BQSN72UT(김종태)가 봇 멘션: `<@U09DWLARFQQ> 하이`
|
||||
- app_mention 이벤트 정상 수신
|
||||
|
||||
2. 처리 과정 ✅
|
||||
- UUID 변환 성공 (U09BQSN72UT → 1a7ebe8c-1cfd-4acf-a821-2cc526313706)
|
||||
- 응답 생성 성공: "김종태님, 안녕하세요! 로빙입니다. 무엇을 도와드릴까요?"
|
||||
- ChromaDB/PostgreSQL 저장 성공
|
||||
|
||||
3. 응답 전송 실패 ❌
|
||||
- `channel_not_found` 에러
|
||||
- 디지털비잉_로빙 토큰으로 Company-X 채널 접근 불가
|
||||
|
||||
### 6.3 Event URL 라우팅 구조
|
||||
|
||||
**정상 작동 확인:**
|
||||
1. Slack → `https://ro-being.com/rb8001/api/slack/events`
|
||||
2. nginx 프록시 → `192.168.219.52:8001/api/slack/events`
|
||||
3. rb8001 컨테이너가 이벤트 수신 및 처리
|
||||
|
||||
**문제점:**
|
||||
- rb8001이 단일 토큰만 사용 가능한 구조
|
||||
- 멀티 워크스페이스 지원을 위해서는 토큰 동적 선택 로직 필요
|
||||
|
||||
### 6.4 해결 방안
|
||||
|
||||
**단기 해결:**
|
||||
- 워크스페이스별로 별도 컨테이너 운영
|
||||
- 또는 team_id 기반으로 토큰 동적 선택 로직 구현
|
||||
|
||||
**장기 해결:**
|
||||
- auth-server의 중앙 라우터 활용
|
||||
- `/slack/events/router`가 team_id별로 적절한 컨테이너로 라우팅
|
||||
- 각 컨테이너는 해당 워크스페이스 토큰만 보유
|
||||
|
||||
### 6.5 Slack App Manifest Event URL 설정
|
||||
|
||||
**올바른 Event URL (Slack App에 설정해야 함):**
|
||||
```json
|
||||
"event_subscriptions": {
|
||||
"request_url": "https://ro-being.com/rb8001/api/slack/events"
|
||||
}
|
||||
```
|
||||
- rb8001이 직접 이벤트 수신
|
||||
- URL verification 정상 응답 확인됨
|
||||
- nginx 프록시 → 51124:8001 정상 작동
|
||||
|
||||
**주의사항:**
|
||||
- Slack App 설정에서 직접 Event URL 등록 필요
|
||||
- 봇 설치와 Event URL 등록은 별개 프로세스
|
||||
- team_id 기반 토큰 동적 선택 로직 구현 필요
|
||||
Loading…
x
Reference in New Issue
Block a user