TIL#100 Send message on slack

Dasom·2020년 10월 26일
0

Flask

목록 보기
5/7

브랜디 기업협업 과제중에 주문상태가 바뀔 때마다 슬랙으로 메시지를 보내는 기능이 있는데 나는 혼자 프로젝트를 하게 되어서 주문까지 구현을 하지 못할 것 같아서 seller의 입점 상태가 바뀔 때마다 슬랙에 메시지를 보내는 기능을 구현해보려 한다. 오늘은 하루종일 그부분을 공부하였다. 일단 슬랙api 사이트를 들어가서 앱을 설치하고 연결할 채널을 만들어야 하는데 그래서 연습용 슬랙채널을 따로 만들었다. 슬랙api 앱을 설치 후 oath 설정을 하여 토큰을 받는다. 그리고 flask파일로 들어가 슬랙클라이언트를 설치해야 한다.

pip install slackclient

토큰은 config.py 에 입력을 하였고, 메세지를 보낼 곳인 seller_service.py 에 코드를 작성하였다. 처음에는 import os 를 사용하여 토큰을 가져오려 했지만 자꾸 not_authed 라는 에러가 발생하여서 직접 config.py 에서 가져오게 작성하였다.

이번에는 not_in_channel 이라는 에러가 발생하여 찾아보니 슬랙채널에 봇을 초대를 안해서 그런거였다! /invite @봇이름 을 입력하여 봇을 초대하면 되고 봇이름은 슬랙api앱의 이름이다.

seller_service.py 중

client = WebClient(token=current_app.config['SLACK_API_TOKEN'])

        if button == '2' or button == '6' or button == '4':
            if seller_status['seller_status_id'] == '2':
                return 'invalid request'
            try:
                client.chat_postMessage(
                    channel='#brandi-project',
                    text=f'{seller_id}번 셀러의 상태가 입점으로 변경되었습니다.',
                )
            except SlackApiError:
                return 'message fail'

profile
개발자꿈나무🌲

0개의 댓글