docs: Slack Lists 파일 첨부 3단계 구체화 및 81줄로 축소
This commit is contained in:
parent
34dd99d90c
commit
cb7e728349
@ -45,49 +45,37 @@ coldmail_briefing.py:207에서 document_id를 attachment에 전달하지만, Sla
|
|||||||
- 13번 줄 이후: `router.include_router(files.router, tags=["Files"])`
|
- 13번 줄 이후: `router.include_router(files.router, tags=["Files"])`
|
||||||
|
|
||||||
### 3단계: coldmail_briefing.py 통합
|
### 3단계: coldmail_briefing.py 통합
|
||||||
- coldmail_briefing.py:207 이전에 파일 변환 로직 추가:
|
|
||||||
1. document_id → GET skill-rag-file/api/download/{document_id}
|
**환경변수 추가** (coldmail_briefing.py:19 이후):
|
||||||
2. 다운로드된 파일 → POST skill-slack/api/v1/files/upload
|
- `SKILL_RAG_FILE_URL = os.getenv("SKILL_RAG_FILE_URL", "http://localhost:8508")`
|
||||||
3. file_id 받아서 attachment 필드에 전달
|
|
||||||
- coldmail_briefing.py:207: `[f"document_{doc_id}"...]` → `[file_id]` 변경
|
**파일 변환 로직** (coldmail_briefing.py:189 이후, 191 이전):
|
||||||
|
- GET `{SKILL_RAG_FILE_URL}/api/download/{document_ids[0]}` → pdf_content
|
||||||
|
- aiohttp.FormData(): file, title 추가
|
||||||
|
- POST `{SKILL_SLACK_URL}/api/v1/files/upload` → file_id
|
||||||
|
- 실패 시 file_id = None, logger.error()
|
||||||
|
|
||||||
|
**attachment 필드 수정** (coldmail_briefing.py:207):
|
||||||
|
- 변경 전: `[f"document_{doc_id}" for doc_id in document_ids][:1]`
|
||||||
|
- 변경 후: `[file_id] if file_id else []`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 테스트 완료 (2025-10-14)
|
## 테스트 완료
|
||||||
|
|
||||||
### 테스트 환경
|
- 워크스페이스: T0925SXPS4D, 리스트: F09J1HPPQJG
|
||||||
- 워크스페이스: 로빙팀 (T0925SXPS4D), 리스트: F09J1HPPQJG
|
- files_upload_v2(file, title) 성공 (channel 파라미터 불필요)
|
||||||
- 채널: C09HR9BMT51, 토큰: ROBEING_SLACK_BOT_TOKEN
|
- attachment: [file_id] 전달 확인
|
||||||
|
- 테스트: skill-slack/tests/test_lists_with_file.py
|
||||||
### 검증 결과
|
|
||||||
- files_upload_v2(file, title) 성공 (channel 파라미터 없이 업로드)
|
|
||||||
- slackLists.items.create 성공, attachment: [file_id] 전달 확인
|
|
||||||
- 테스트 파일: skill-slack/tests/test_lists_with_file.py, test_lists_all_fields.py
|
|
||||||
|
|
||||||
### 테스트 리스트 컬럼 (F09J1HPPQJG)
|
|
||||||
- Col00: checkbox, Col01: user, Col02: date
|
|
||||||
- Col09HQTDUM0T: rich_text(name)
|
|
||||||
- Col09JATRA4GZ: email, Col09HGCGB45D: attachment, Col09JRU1U1FA: checkbox
|
|
||||||
|
|
||||||
### 운영 환경 확인 필요
|
|
||||||
- Company X 리스트 (F09L4S2C6BG) 컬럼 ID는 다를 수 있음
|
|
||||||
- Slack App 재설치 후 lists:read/write 권한 확인 필요
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 교훈
|
## 교훈
|
||||||
|
|
||||||
### channel 파라미터 필수 여부 미확인
|
### files_upload_v2 channel 파라미터
|
||||||
- files_upload_v2는 channel 없이도 업로드 가능
|
- channel 없이도 업로드 가능하나 문서 미확인
|
||||||
- 문서(test_slack_lists.py:192)에 명시되어 있었으나 미확인
|
- 교훈: 테스트 코드 주석 우선 확인
|
||||||
- 교훈: 테스트 코드 주석과 구현 예시 우선 확인
|
|
||||||
|
|
||||||
### 테스트/운영 환경 리스트 구조 차이
|
### 리스트 컬럼 구조
|
||||||
- F09J1HPPQJG(테스트)와 F09L4S2C6BG(운영)는 별도 리스트
|
- F09J1HPPQJG(테스트) ≠ F09L4S2C6BG(운영)
|
||||||
- 컬럼 ID가 다를 가능성 있음
|
- 교훈: 운영 배포 전 실제 컬럼 ID 확인 필수
|
||||||
- 교훈: 운영 배포 전 실제 리스트 구조 확인 필수
|
|
||||||
|
|
||||||
### Slack App scope 재설치 프로세스
|
|
||||||
- scope 추가 시 각 워크스페이스별 재설치 필요
|
|
||||||
- 앱 소유자만 api.slack.com/apps 접근 가능
|
|
||||||
- 교훈: 멀티 워크스페이스 앱은 OAuth URL 생성하여 관리자에게 전달
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user