[Slack] Slack bot 만들기

지쥬·2025년 1월 6일
0

Slack

목록 보기
2/2
post-thumbnail

슬랙 채널로 스크린샷을 자동 전송해주는 프로젝트를 진행하게 되었다. 내가 까먹을까봐 정리해두고자한다.

1. 앱 생성

  1. Slack api > Create an App 버튼 클릭
    slack api 에 들어가서 우측 초록색 버튼 Create New App을 클릭

  2. From scratch 클릭

  3. 앱 이름 & 워크스페이스 선택

앱 이름과 워크스페이스 선택 후 Create App 버튼을 클릭한다.

2. Bot 생성

  1. OAuth & Permissions 설정
    1) 왼쪽 바에서 OAuth & Permissions를 찾아 클릭한다.

    2) 스크롤 하다보면 Scopes 섹션이 나온다.
    Add an OAuth Scope 버튼을 누르고

    필요한 OAuth Scope 을 선택하면 된다.

권한을 변경시킨 후에는 꼭 다시 app을 재설치하고, 해당 채널에 Bot을 초대시켜주어야만 실행이 된다.

  1. Install App to Workspace
    페이지의 상단으로 올라가면
    이렇게 생긴 Install to WorkSpace 버튼을 발견할 수 있을 것이다.

    클릭해보면 위와 같은 권한 요청 창이 뜨는데 허용을 눌러주면 된다.

    그러면 이렇게 토큰을 발급 받은 것을 확인 할 수 있다.

발급받은 token 을 사용해서 이런식으로 코드를 작성하면 된다.

def send_to_slack(product_name, channel, screenshot_path, message=""):
    try:
        response = client.files_upload_v2(
            channel=SLACK_CHANNEL,
            file=screenshot_path,
            initial_comment=f"{product_name} ({channel}) - {message}",
        )
        if response.get("ok"):
            print(f"✅ Slack으로 전송 완료: {screenshot_path}")
        else:
            print(f"⚠️ Slack 전송 실패: {response.get('error')}")
    except SlackApiError as e:
        print(f"⚠️ Slack API 오류: {e.response['error']}")

호출 방법이다.

capture_screenshot(product_name, channel, url)

이 함수는 스크린샷을 저장한 뒤에 해당 파일을 Slack에 업로드해주는 방법으로 작동한다.

0개의 댓글