본문 바로가기
실무/슬랙 봇 만들기

파이썬 슬랙 봇 만들기(1): 봇 메세지 보내기

by davi_kr 2023. 4. 14.

목차

    반응형

    [파이썬으로 슬랙에 봇 메세지 보내기]

    슬랙 연동하는 방법을 적어보려 합니다.스프레드시트와 마찬가지로 슬랙도 업무 하면서 사용하는 툴인데 파이썬으로 연결해두면 정말 편리합니다.

    개인적으로 업무할 때, db - 파이썬 - 구글 스프레드시트 - 슬랙 - 구글 캘린더 등을 전부 연동해서 사용하는데요.

    전부 파이썬 기반으로 연결을 했고 이렇게 해두면.. 업무 보실 때, 노가다로 하던 거는 다 자동화로 대체할 수 있어서 할 수 있는 일이 정말 많아집니다. 생산성이 비교도 안되게 많이 향상 되니 다들 꼭 해보시면 좋겠습니다.

    개발 공부해보면서 느낀 점이지만 공식 문서를 보는 것만큼 유익한 공부는 없는 것 같습니다.

    나름의 블로그 등 다 활용을 잘 해주셔서 좋긴 하지만, 왜 그런지를 모르고 쓰는 경우 막히고 거기서 허비하는 시간이 많아지는데 공식 문서를 보면 기본적인 점들을 잡아줘서 좋습니다.

    이 문서를 참고해주세요!

    https://slack.dev/python-slack-sdk/

     

    Python Slack SDK — Python Slack SDK

    Python Slack SDK The Slack platform offers several APIs to build apps. Each Slack API delivers part of the capabilities from the platform, so that you can pick just those that fit for your needs. This SDK offers a corresponding package for each of Slack’

    slack.dev

    연동 이후로는 저도 제가 직접 사용하는 기능들을 하나씩 공유해보도록 하겠습니다.

     

    [슬랙 ​봇 셋팅하기]

    슬랙과 파이썬을 연동하는 방법에는 여러 가지가 있지만, 가장 일반적인 방법은 Slack API를 사용하는 것입니다.

    Slack API를 사용하여 슬랙봇을 만들고, 파이썬 스크립트에서 해당 봇과 상호작용 하는 것이 가능합니다.

    이 코드를 사용하기 위해서는 먼저 슬랙 앱에서 봇 셋팅을 해줘야 합니다.

    https://api.slack.com/apps

     

    Slack API: Applications | Slack

    Your Apps Don't see an app you're looking for? Sign in to another workspace.

    api.slack.com

     

    1️⃣ 홈페이지 접속해서 Create an App 클릭

    2️⃣ From scratch 클릭

    3️⃣ App Name과 workspace를 골라줍니다. App Name은 나중에 슬랙에서 보여질 봇의 이름입니다. workspace는 어디서 이 봇을 쓸건지 정해주는 겁니다.

    다 정했으면 Create App을 눌러줍니다.

    4️⃣ Permissions를 눌러줍니다.

    5️⃣ bot의 권한을 설정해줍니다.

    참고! https://api.slack.com/scopes/chat:write.public

    위 이미지처럼 각각의 권한을 셋팅할 수 있는데 각각이 의미하는 바는 찾아서 확인해보면서 셋팅할 필요가 있습니다.

    일단은 이렇게 3개만 셋팅해봅니다.

    6️⃣ Install to Workspace를 눌러줍니다. 최종적으로 추가하려는 권한을 확인하고 허용을 눌러줍니다.

    01

    7️⃣ Bot User OAuth Token이 바로 보일텐데 이걸 복사해서 파이썬 코드의 자신의 Token 입력 자리에 넣어주면 됩니다.

    8️⃣ 슬랙 채널의 ID를 찾아서 코드의 "C0XXXXXX" 자리에 입력해줍니다.

    여기까지 해주시고 나면 아래와 같이 봇을 통해 내용이 들어오는 걸 확인 할 수 있습니다!

    [파이썬 코드 확인하기]

    from slack_sdk import WebClient
    from slack_sdk.errors import SlackApiError
    
    slack_token = "자신의 Token 입력"
    client = WebClient(token=slack_token)
    
    try:
        response = client.chat_postMessage(
            channel="C0XXXXXX", #채널 id를 입력합니다.
            text="안녕하세요~!"
        )
    except SlackApiError as e:
        assert e.response["error"]

    아래는 위의 코드 해석입니다.

    1. slack_sdk 패키지의 WebClient 클래스와 SlackApiError 클래스를 가져옵니다.
    2. slack_token 변수에 슬랙 봇의 API 토큰을 저장합니다.
    3. WebClient 클래스를 사용하여 client 객체를 생성합니다. 이때, token 인자에 slack_token 변수를 전달하여 슬랙 봇과 연결합니다.
    4. client.chat_postMessage() 메소드를 사용하여 슬랙 채널에 메시지를 보냅니다. 이때, channel 인자에는 메시지를 보낼 채널의 ID를 입력하고, text 인자에는 보낼 메시지의 내용을 입력합니다.
    5. except SlackApiError as e:를 사용하여 SlackApiError 예외를 처리합니다. 이때, e.response["error"]를 사용하여 예외 메시지를 출력합니다.
    반응형

    댓글