Python Slack SDK을 이용한 Slack API 테스트 내용을 정리합니다.
API 종류
Feature | What its for | Package |
Web API | 200개 이상의 방법을 사용하여 Slack으로 데이터를 보내거나 Slack에서 데이터를 쿼리합니다. | slack_sdk.web slack_sdk.web.async_client |
Webhooks / response_url | 수신 Webhook 또는 response_url을 사용하여 메시지 보내기 | slack_sdk.webhook slack_sdk.webhook.async_client |
Socket Mode | 소켓 모드 연결을 통해 메시지를 주고 받습니다. | slack_sdk.socket_mode |
OAuth | V2 OAuth, OpenID Connect for Slack 앱을 사용하여 인증 흐름을 설정합니다. | slack_sdk.oauth |
Audit Logs API | 감사 로그 API 데이터를 수신합니다. | slack_sdk.audit_logs |
SCIM API | 사용자 계정 및 그룹을 프로비저닝하고 관리하기 위해 SCIM API를 활용합니다. | slack_sdk.scim |
RTM API | WebSocket을 사용하여 들어오는 메시지와 Slack에서 발생하는 제한된 이벤트 집합을 수신합니다. | slack_sdk.rtm_v2 |
Request Signature Verification | Slack API 서버에서 들어오는 요청을 확인합니다. | slack_sdk.signature |
UI Builders | 사용하기 쉬운 빌더를 사용하여 UI 구성요소를 구성합니다. | slack_sdk.models |
테스트 내용
- 앱 만들기
- 토큰 및 앱 설치
- 코드 테스트
앱 만들기
App 생성을 위해서 Slack API 사이트 접속 합니다.

Create an App 을 클릭 합니다.

From Scratch를 선택 합니다.

App 이름과 workspace를 선택하고 App을 생성 합니다.

제일 하단의 Bots를 클릭 합니다.
토큰 및 앱 설치
권한 설정 및 토큰 생성
Python Slack SDK 사용을 위해서는 SLACK_BOT_TOKEN 이 필요합니다.
SLACK_BOT_TOKEN 은 xpxb- 로 시작하는 토큰 입니다.

Review Scopes to Add 를 선택 합니다.
왼쪽 메뉴중 OAtu & Permissions 에서도 권한 설정 및 앱 설치가 가능합니다.

Bot Token Scopes를 설정 합니다.

필요한 권한을 추가 합니다.
Web API 별 필요한 권한은 아래 사이트에서 확인이 가능합니다.

앱 설치
권한 설정이 완료되면 앱 설치 버튼이 활성화가 됩니다.

Install to Workspace를 선택 합니다.


xoxb- 로 시작하는 토큰은 API 사용 시, 필요합니다.

앱이 Workspace에 설치 됩니다.
Bot 을 마우스 오른쪽 버튼 클릭하여 ‘앱 세부정보 보기’를 선택 합니다.
그리고 채널에 App을 추가 합니다.



코드 테스트
설치
pip install slack_sdk
코드
from slack_sdk import WebClient
class SlackBolt_API:
def __init__(self):
token = "SLACK_BOT_TOKEN"
self.client = WebClient(token)
def get_channel_id(self, channel_name):
result = self.client.conversations_list()
channels = result.data['channels']
channel = list(filter(lambda c: c["name"] == channel_name, channels))[0]
channel_id = channel["id"]
return channel_id
def post_message(self, channel_id, text):
result = self.client.chat_postMessage(
channel=channel_id,
text = text,
)
return result
api_con = SlackBolt_API()
print(api_con.get_channel_id('main'))
api_con.post_message('C04ENAX5DK2', 'Bot Test!!')
실행 결과
// 채널ID
C04ENAX5DK2
