Language/Python

파이썬으로 Slack 메시지 보내기

건담아빠 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가지의 메시지가 전송되었다.

 

 

짝짝짝