9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SlackからPythonサーバーにメッセージを送信する

Last updated at Posted at 2021-01-30

概要

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"にする
スクリーンショット 2019-11-27 22.10.54.png
##2.4 Request URLを指定
1 で用意したサーバーのurlを指定する。

##2.5 workspace eventの設定
Subscribe to workspace eventsで「Add Workspace Event」からworkspace eventを選択する。
今回はチャンネルのメッセージを取得する message.channelsを選択する。
他のイベントはAPI Event Typesで調べられる。

スクリーンショット 2019-11-28 0.47.53.png

#3 slack appをworkspaceにインストール
#3.1 workspaceにインストール
スクリーンショット 2019-11-28 0.54.19.png
「Install App to Workspace」からインストールする。
#3.2 チャンネルにアプリを追加
アプリを追加したいslackのチャンネル-->設定-->アプリを追加する

参考

  1. Slack Botの種類と大まかな作り方
  2. Events API
  3. url_verification event
  4. API Event Types
  5. Slackにpythonからメッセージを送信する

終わりに

slackのチャンネルからのメッセージをサーバで受信することができた!
なんでもできそう。
一度challengeを通過すれば、その後にサーバーを止めても、また起動すれば大丈夫。

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?