Docker의 mattermost와 로컬 파이썬에서 bot 연동

환경



우분투 16.0.4
docker 18.03.1-ce
파이썬 3.5.2

mattermostdriver 사용



mattermost와의 상호 작용을 간단하게 해줍니다.
htps : // 기주 b. 코 m / ゔ ぁ r / py 텐 - r r도 std ri ょ r

파이썬 구현



flask로 웹 서버를 만듭니다.
flask에 대해서는 아래를 참고로 하십시오.
웹 애플리케이션 프레임워크 Flask 사용하기
from mattermostdriver import Driver

from flask import Flask, request

app = Flask(__name__)

SERVER_URL = ""
CHANNEL_ID = ""
USER_EMAIL = ""
USER_PASS = ""

mat = Driver({
    'url': SERVER_URL,
    'login_id': USER_EMAIL,
    'password': USER_PASS,
    'scheme': 'http',
    'port': 8065,
    'verify': False
    })

mat.login()

@app.route('/kumobot', methods=['POST'])
def post():
    req = request.json
    dialog = req['text']
    try:
        mat.posts.create_post(options={
            'channel_id': CHANNEL_ID,
            'message': 'Hi!'
        })
    except Exception as e:
        print(e)
    return '200'

if __name__ == '__main__':
    app.debug = True
    app.run(host='0.0.0.0')

다음을 채우십시오.
SERVER_URL = ""
CHANNEL_ID = ""
USER_EMAIL = ""
USER_PASS = ""

나머지는 위의 구현을 적당히 이름을 붙여 (예 : botserver.py)
$ python3 botserver.py

에서 실행!
Running on XXX라는 표시가 나오면 성공입니다.

설정



outgoingwebhooks



아래를 참고하면서 webhook을 설정합니다.
Slack 클론의 Mattermost 사용하기 - 외부 연계편 - (WebHooks, Hubot)

통합기능 > 외향 웹훅을 선택하면 아래와 같은 화면이 나옵니다.


트리거 단어: 트리거가 될 키워드를 설정합니다. 이번에는 "kumo"로 만듭니다.
콜백 URL : 파이썬을 실행 한 서버의 URL과 포트를 작성합니다.

오류가 발생함


err=Post http://XXX:5000/kumobot: address forbidden

htps : // / cs. 멈춰서 r도 st. 코 m / 아 d 미에 st 라치온 / 콘후 ぃ g - 센친 gs. HTML? 히 gh gght = rs
여기에도 쓰여져 있지만 AllowedUntrustedInternalConnections에 IP 주소를 추가하는 것이 좋습니다.
$ docker cp {CONTAINER}:mm/mattermost/config/config_docker.json {LOCALFILEPATH}
$ vi {LOCALFILEPATH}
$ docker cp {LOCALFILEPATH} {CONTAINER}:mm/mattermost/config/config_docker.json

테스트



트리거 워드가 kumo이므로 hi kumo라면 연결되지 않습니다.


잘 작동했습니다!

좋은 웹페이지 즐겨찾기