ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬으로 Slack 메시지 보내기
    Language/Python 2024. 11. 24. 15:39

     

    1. Slack API Key 생성 (slack api)

    1.1. Create An App를 클릭한다.

    Create an App

     

    2.2. From scratch

    From scratch

     

    2.3. App Name 및 채널을 선택한다.

    Create App

     

    2.4. Basic Infomation

    Basic Information

     

    2.5. OAuth & Permissions

    Slack에 메시지 전송을 위한 권한을 부여하도록 하자.

    OAuth & Permissions

     

    2.6. chat, channels 권한 추가

    Add an OAuth Scope버튼을 클릭하고 3가지 Scope을 추가해 주자.

    • chat:write
    • chat:write.public
    • channels:history

    chat:write, chat:write.public, channels:history

     

    2.7. OAuth Token 생성

    OAuth Tokens에서 건담봇 워크스페이스를 선택하고 토큰을 생성해주자.

    OAuth Tokens

     

    2.8. OAuth Token을 생성하고 토큰 값을 복사한다.

    Install to 건담봇

     

    OAuth Token Copy

     

    2. Slack 설정

    2.1. Private 채널을 생성한다.

     

    2.2. Private `슬랙-봇-채널` 채널 생성

    비공개 채널 생성

     

    2.3. 채널 사용자 추가

    지금은 패스해도 된다. 이후에 추가하자.

     

    3. 파이썬

    3.1. 발송 테스트 코드

    import slack_sdk
    
    def main():
      bot_user_oauth_token = 'Bot User OAuth Token'
    
      client = slack_sdk.WebClient(token=bot_user_oauth_token)
    
      # 일반 메시지 전송
      slack_msg = f'테스트 메시지 전송' 
      response = client.chat_postMessage(
          channel="private-캠핑-알림",
          text=slack_msg
      )
      
      # 맨션으로 전송
      user_id = "dchkang83"
      slack_msg = f'<@{user_id}> 맨션으로 테스트 메시지 전송'
      response = client.chat_postMessage(
          channel="private-캠핑-알림",
          text=slack_msg
      )
    
    if __name__ == '__main__':
        main()

     

    4. 에러

    The server responded with: {'ok': False, 'error': 'channel_not_found'}

    채널이 공개일때는 문제없이 동작하고, 필자가 생성한 `privat-캠핑-알림`처럼 비공개로 생성하고 bot(pyhon-slack-bot)을 초대하지 않고 코드를 실행하게되면 채널이 없다고 나온다.

     

    4.1. @pyhon-slack-bot

    위에서 생성한 `pyhon-slack-bot`을 @pyhon-slack-bot 이런식으로 맨션한다.

     

    4.2. 봇 초대하기

    `초대하기` 버튼으로 초대를 한다.

     

    4.3. 파이썬 코드 실행

    정상적으로 2가지의 메시지가 전송되었다.

     

     

    짝짝짝

    'Language > Python' 카테고리의 다른 글

    selenium으로 크롤링하고 Slack에 메시지 전송  (2) 2024.11.24
    ChromeDriverManager install 에러  (1) 2024.11.24
    Python/Docker  (2) 2022.09.02

    댓글

Designed by Tistory.