概要
slcakボットを作成し、slackからのメッセージをサーバーに送信する。
slackへサーバーからメッセージを送信するのは --> 「Slackにpythonからメッセージを送信する」
やること
#1 サーバーの用意
slackからアクセスするサーバを用意する。
url_verification eventを参考に条件を満たす必要がある。
pythonコードサンプル
import flask
from flask import request, Response
import os
import json
app = flask.Flask(__name__)
@app.route('/', methods=["POST"])
def index():
data = request.data.decode('utf-8')
data = json.loads(data)
# for challenge of slack api
if 'challenge' in data:
token = str(data['challenge'])
return Response(token, mimetype='text/plane')
# for events which you added
if 'event' in data:
print("get event")
event = data['event']
if 'user' in event:
print("user = ", event["user"])
if "text" in event:
print("text = ", event["text"])
return Response("nothing", mimetype='text/plane')
port = os.getenv('VCAP_APP_PORT', '8000')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=int(port), debug=True)
#2 slack app の作成
##2.1 slack api にアクセス。
##2.2 appの作成
「Create New App」を押下。
アプリ名とワークスペースを選択しappを作成。
##2.3 Enable EventsをONにする
[Event Subscriptions]のページで、[Enable Events]を"ON"にする
##2.4 Request URLを指定
1 で用意したサーバーのurlを指定する。
##2.5 workspace eventの設定
Subscribe to workspace eventsで「Add Workspace Event」からworkspace eventを選択する。
今回はチャンネルのメッセージを取得する message.channelsを選択する。
他のイベントはAPI Event Typesで調べられる。
#3 slack appをworkspaceにインストール
#3.1 workspaceにインストール
「Install App to Workspace」からインストールする。
#3.2 チャンネルにアプリを追加
アプリを追加したいslackのチャンネル-->設定-->アプリを追加する
参考
終わりに
slackのチャンネルからのメッセージをサーバで受信することができた!
なんでもできそう。
一度challengeを通過すれば、その後にサーバーを止めても、また起動すれば大丈夫。