본문 바로가기
programming/python

python3 with Slack - basic

by sniffer-k 2023. 6. 6.

Slack?

-> 개인/기업용 메시징 앱

 

메시지,오디오,파일, 음성등 다양한 커뮤니케이션을 제공함

 

https://slack.com/intl/ko-kr/help/articles/115004071768-Slack%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-

 

Slack이란 무엇인가요?

Slack은 사람들과 정보를 연결해주는 기업용 메시징 앱입니다. Slack은 사람들을 한데 모아 통합된 하나의 팀을 운영하여 조직이 커뮤니케이션하는 방BAD+B...

slack.com

 

Slack에서 제공하는 파이썬 ?

 

사용자가 개설한 채널에 접근 가능한 토큰을 생성후 해당 채널에  메시지를 전달할수 있는 기능

 

사용자가 앱을 생성하였을때 ! 할수 있는기능이다

(https://api.slack.com/apps/)

 

https://api.slack.com/authentication/config-tokens

위 그림의 사이트에서 외부 파이썬 모듈에서 접근 가능한 토큰을 생성할 수 있음

 

토큰 타입은 "User OAuth Token, Bot User OAuth Token" 로 분류됨

 

봇 목적으로 개설한다면 Bot User OAuth Token을 생성한다 ~ 

 

토큰별 접근 유형 설정

생성한 토큰에 대해 어떤 기능을 허용할지 구체적으로 설정가능 (단순 메시지 전송에서 부터 채널에 정보 읽기등)

 

단순 메시지 송신용이라고 하면 토큰에 chat:~ 관련 권한을 부여해야한다

 

토큰 권한 설정후 해당 채널에 메시지를 보내는 샘플 코드는 다음과 같다

 

import requests
import urllib.request

def post_message(token, channel, text):
    response = requests.post("https://slack.com/api/chat.postMessage",
        headers={"Authorization": token},
        data={"channel": channel,"text": text}
    )
    print(response)
 
slack_token = "Bearer xoxb-생성한 토큰값 ~ "

#investring : 채널 이름
post_message(slack_token,"investing","테스트 메시지 입니다 ~")

 

메시지를 받은 슬랙 채널에서는 다음과 같이 확인할 수 있다

 

슬랙 채널 메시지 수신 결과

Slack에 좀더 구체적인 봇 또는 응답 기능을 수행하기 위해서는 추가적인 프레임워크가 필요하다

https://slack.dev/bolt-python/concepts

 

Slack | Bolt for Python

Slack apps installed on multiple workspaces will need to implement OAuth, then store installation information (like access tokens) securely. By providing client_id, client_secret, scopes, installation_store, and state_store when initializing App, Bolt for

slack.dev

Bolt를 이용한 슬랫 봇 개발은 다음 편에 ..

728x90