Slack Outgoing Webhooksをとりあえず使ってみた

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

前提

CentOS7 pyenvをホームディレクトリにインストール

ホームディレクトリ配下に、.slaskerというvenv環境を用意した。
また、pipで次のパッケージをインストールしておく。

pyvenv ~/.slacker
source ~/.slacker/bin/activate
pip install --upgrade pip
pip install bottle simplejson

 

Outgoing WebHooks に登録し、トークンを取得する

Outgoing WebHooks にアクセスする。

Outgoing_WebHooks___bolytenion_Slack

Configure_Outgoing_WebHooks___bolytenion_Slack

BOTに関する設定を記述する。

Outgoing_WebHooks___bolytenion_Slack

反応を受けるプログラムを作成する

次のようなプログラムを作成した。

#! -*- coding: utf-8 -*-

from bottle import route, run, request,static_file

import simplejson as json

@route('/', method='POST')
def mybot():

    ## slackbotのときは反応しない
    if request.forms.user_name == "slackbot":
        return ''

    return _say(request.forms.text)


def _say(text):
    return json.dumps({
        "text": text,
        "username": "mybot",
        "icon_url": "URL",
    })


if __name__ == '__main__':
    run(host='localhost', port=8880, debug=True, reloader=True)

実行する。

今回利用したサーバーはApacheが使われているため、Apacheをフロントサーバーとして使い、http://hogehoge.com にレスポンスがあった時に、localhost:8880 にリダイレクトするようにした。

以下、バーチャルホストの設定例。

<VirtualHost *:80>
    ServerName umentu.work
    ProxyPass / http://localhost:8880/
    ProxyPassReverse / http://localhost:8880/
</VirtualHost>

以下、実行結果。

Slack

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です