[slackbot] slack api를 이용하여 python의 코드 개발하기
1. slack-api 앱 만들기
slack app을 생성하여 활용할 수 있는 bot을 생성한다.
1) slack api 내 앱 생성
slack api > your apps > Create New Apps 클릭하여 앱을 생성
slack app을 생성하여 활용할 수 있는 bot을 생성한다.
2) slack api 정보 설정
기본정보 및 OAuth & Permissions 내 범위 정보를 설정
2. python 가상환경 만들기
가상환경을 통해 원하는 파이썬 모듈 및 버전을 세팅하여 활용한다.
프로젝트마다 다른 하나의 가상환경을 생성하여 작업 가능하다.
가상환경의 전개 모듈
가상환경을 통해 원하는 파이썬 모듈 및 버전을 세팅하여 활용한다.
프로젝트마다 다른 하나의 가상환경을 생성하여 작업 가능하다.
1) 환경 생성
가상환경을 생성할 수 있게 이동하여, 가상환경을 생성
# python3 -m venv ./(생성하고자 하는 가상환경이름)
python3 -m venv ./myenv
2) Venv 활성화
믿을 수 있는 가상 환경을 생성하는 방법을 통해 활성화
# source (가상환경 이름)/bin/activate
source myenv/bin/activate
3) venv님
믿을 수 있는 가상 환경을 생성하는 방법을 통해 활성화
deactivate
3. python 코드로 slack에 메시지 전송하기
생성된 슬랙bot의 token값을 이용하여, 작성된 python코드를 slack 채널로 메세지를 전송한다.
1) venv 내 slack_sdk를 설치
2) venv 내 SSL 보안 업데이트
python 코드 실행 시 SSL 오류가 발생하면 업데이트를 업데이트합니다.
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 인증서 확인 실패: 로컬 발급자 인증서(_ssl.c:1123)를 가져올 수 없습니다.
3) 파이썬 실행
아래 python 코드를 작성하고 실행합니다.
생성된 슬랙bot의 token값을 이용하여, 작성된 python코드를 slack 채널로 메세지를 전송한다.
import sys
from local import SLACK_TOKEN
from datetime import datetime
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
try:
client = WebClient(token=SLACK_TOKEN)
client.chat_postMessage(
channel = "#team_security_bot_test",
text = datetime.strftime(datetime.now(),
'-------------------------------------- \n'+
'[%Y.%m 월간 업무 알림] \n'+
' - 보안교육 일정 예약하기\n'+
' - 보호구역 출입기록대장 검토하기\n'+
'--------------------------------------')
)
except SlackApiError as e:
assert e.response["error"]
print(f"Got an error: {e.response['error']}")
4. bash 스크립트에서 사용자 작성
windows에서 bat파일처럼 mac에서 bash script를 통해 명령어를 작성할 수 있다.
1) bash 스크립트 작성
지속적으로 줄에 #!/bin/bash를 입력하고 실행을 원하는 명령을 입력하여 저장
windows에서 bat파일처럼 mac에서 bash script를 통해 명령어를 작성할 수 있다.
#!/bin/bash
source /Users/syan/py/myenv/bin/activate
python /Users/syan/py/myenv/test2.py
deactivate
2) 실행
전형적인 스크립트 파일을 실행하면, 슬랙으로 코드를 작성하는 것이 표현되는 것을 볼 수 있습니다.
5. crontab에서 이메일 작성
정해진 시간에 자동으로 원하는 명령이 실행될 수 있도록 스케줄링 작성한다.
1) 작성방법
정해진 시간에 자동으로 원하는 명령이 실행될 수 있도록 스케줄링 작성한다.
* * * * * 명령
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
2) 실행예시
1일 9시 1분에 pytest2.sh를 실행합니다.
#-------------#
# 월간 업무 알림 #
#-------------#
1 9 1 * * /Users/syan/py/pytest2.sh
6. mac 전원 깨우기
mac이 켜져있어야 crontab도 동작을 할 것이고, 명령도 실행이 될 것 이다.
mac이 켜져있어야 crontab도 동작을 할 것이고, 명령도 실행이 될 것 이다.
Reference
이 문제에 관하여([slackbot] slack api를 이용하여 python의 코드 개발하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/syan/slackbot-setting-2d2o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)