Slack API 발급받아 Python으로 활용하기

게시일 : 2019년 04월 05일    
# Python # slackclient

Slack API를 발급받아 Python으로 활용하는 법을 알아본다.

API TOKEN 발급받기

slack api 홈페이지에 접속한다.

API TOKEN을 발급받기 위해서는 Slack APP을 만들어야 한다.

slack_api_1

생성한 App을 OAuth & Permissions 메뉴에서 install App을 실행해야 한다.

처음에는 이 버튼이 비활성화되어 있다. 아래로 내려서 Scopes에서 권한 설정을 해야한다.

기본적으로 메세지를 보낼 수 있는 권한과 유저 정보를 확인할 수 있는 권한을 지정했다.

slack_api_2

활성화된 Install app 버튼을 누르면 Token이 발급된다.

slack_api_3

API 활용하기 with Token

slackclient라는 파이썬 라이브러리를 활용한다.

from slackclient import SlackClient
slack_token = " ... " # 발급받은 Token 값
sc = SlackClient(slack_token)
sc.api_call(
  "chat.postMessage",
  channel="dev",
  text="Hello World! :tada:")

slack_api_4

참고 : Scope에서 권한이 설정되지 않아 오류가 나면 needed에 표시되는 권한을 추가해주면 된다.

특정 User에게만 보이는 메세지를 전송할 수도 있다.

slack api에서는 실제 이름 대신 id값을 요구하는 경우가 많다.

# user ID 확인하기
[(user['id'],user['name']) for user in sc.api_call("users.list")['members']]

=> [('USLACKBOT', 'slackbot'), ('UHPK66JJK', 'ts.yahwang')]

sc.api_call(
  "chat.postEphemeral",
  channel="general",
  text="Hello, yahwang",
  user='UHPK66JJK'
)

더 많은 사용법은 Docs에서 확인할 수 있다.

References :