Heroku에서 slackbot(python)을 움직여 보았다【오미쿠지 BOT】

Heroku에서 slackbot(python)을 움직여 보았습니다.
Windows Subsystem for Linux(Ubuntu)에서 개발하고 있습니다.

오미쿠지 메시지를 보내면 오미쿠지가 당기는 BOT를 만들어 보았습니다.


환경



Windows 10 Fall Creators Update(버전 1709)
우분투 16.04.3 LTS
파이썬 3.5.2
heroku-cli/6.15.18
slackbot 0.5.1 → htps : // 기주 b. 코 m / ぃ s05 / s ぁ 쿠보 t

Heroku 계정 생성



Heroku 계정을 만드세요.
htps //w w. 헤로쿠. 코m/

Windows Subsystem for Linux (Ubuntu) 설치



아래 사이트를 참고하여 Windows Subsystem for Linux(Ubuntu) 설치

Windows 10에 Ubuntu를 설치하는 방법 (Fall Creators Update 버전)
htps : // ygkb. jp/7291

Python3 설치



Windows Subsystem for Linux(Ubuntu)에 Python3을 설치합니다.
설치되면 pip를 업데이트합니다.
$ sudo apt install -y python3 python3-pip python3-venv
$ sudo pip3 install --upgrade pip

Heroku CLI 설치



Windows Subsystem for Linux(Ubuntu)에 Heroku CLI를 설치합니다.
$ wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh

Slack Bot 만들기



Slack에 로그인하고 다음 사이트에서 BOT을 만듭니다.
htps : // my. scck. 코 m / 세 r ゔ 세 s / w / 보트

Username에 BOT의 이름을 입력하고 Add bot integration 버튼을 누릅니다.
이번에는 BOT의 이름을 "heroku-slack-bot"이라고했습니다.



표시된 API Token을 기록해 둡니다.
메모가 끝나면 페이지 하단의 Save Integration 버튼을 누릅니다.



가상 환경 생성



venv를 사용하여 가상 환경을 만들고 "slackbot"패키지를 설치합니다.
$ mkdir heroku-slack-bot
$ cd heroku-slack-bot
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install --upgrade pip
$ pip install slackbot

구현



이러한 구성이 되도록 합니다.

디렉토리 구성
heroku-slack-bot
├── slackbot_settings.py
├── run.py
├── plugins
│   ├── __init__.py
│   └── my_mention.py
└── venv

slackbot_settings.py 」에 방금 취득한 API Token을 설정합니다.

slackbot_settings.py
API_TOKEN = '<API Token>'
DEFAULT_REPLY = 'おみくじを引いてみては?'
PLUGINS = ['plugins']
run.py 를 만듭니다.

run.py
from slackbot.bot import Bot

def main():
    bot = Bot()
    bot.run()

if __name__ == '__main__':
    main()

plugins 디렉토리를 작성해 하늘의 「 __init__.py 」를 작성합니다.
$ mkdir plugins
$ touch plugins/__init__.py

BOT의 기능을 「 plugins/my_slackbot.py 」에 작성합니다.

plugins/my_slackbot.py
from slackbot.bot import respond_to
import random

@respond_to('おみくじ')
def omikuji(message):
    message.reply(random.choice(['大吉', '吉', '中吉', '小吉', '末吉', '凶', '大凶']))

동작 확인



채널에 BOT를 초대합니다.



로컬에서 BOT를 시작합니다. (종료할 때는 "Ctrl+C"입니다)
$ python run.py

BOT에 메시지를 보냅니다. 메시지가 반환되면 성공입니다.



배포



Heroku 설정 파일 "Procfile"와 "requirements.txt"를 만듭니다.

Procfile
worker: python run.py

requirements.txt
slackbot

Git에서 '__pycache__'와 'venv'를 제외합니다.

.gitignore
__pycache__
venv

결국 다음과 같은 구성이 됩니다.

디렉토리 구성
heroku-slack-bot
├── .gitignore
├── slackbot_settings.py
├── run.py
├── Procfile
├── requirements.txt
├── plugins
│   ├── __init__.py
│   └── my_mention.py
└── venv

가능하면 커밋합니다.
$ git init
$ git add .
$ git commit -m "create new"

Heroku에서 "heroku-slack-bot"응용 프로그램을 만듭니다.
이미 같은 이름이 사용되고 있으면 적당한 이름으로 변경해 주세요.

Heroku에 push합니다.
$ heroku login
$ heroku create heroku-slack-bot
$ git push heroku master

아직 BOT가 시작되지 않았습니다.

시작



Heroku 대시보드에서 만든 애플리케이션을 선택합니다.
htps : //이다 sh보아 rd. 헤로쿠. 코 m/아 ps

worker가 "OFF"입니다. Resources 탭에서 설정을 변경합니다.



작업자의 스위치를 "ON"으로 설정합니다.



이제 BOT가 시작됩니다.

로컬에서 확인한 것처럼 BOT에 메시지를 보냅니다.
오미쿠지가 당기면 완성입니다! 「대길」이 당기면 대성공입니다!

작동하지 않으면 로그를 확인해 봅시다.
$ heroku logs --tail

참고



이하의 사이트를 참고로 했습니다.

[슬랙] 봇킷을 heroku 무료 플랜으로 이동하는 방법
htps : // 이 m/비가 816/이고 ms/148아1156cd8b1아964b91

Python의 slackbot 라이브러리로 Slack 봇 만들기
htps : // m / sukesuke / ms / 1 c92251 f87357fdf6

좋은 웹페이지 즐겨찾기