SlackBotを作ろう
Slackとは
ビジネス用のコミュニケーションツールです。
SlackBotとは
Slack用のBotです。
応用すれば以下のように使えます。
- 好きなサイトの更新を通知する
- 不審なログを通知する
環境構築
ワークスペース
Slack Botを作るためには、Slackのチームが必要です。
詳しくはこちらを見て下さい
Bots
ワークスペースにBotsを導入する必要があります。
こちらからインストールして下さい。
またそのAPI Tokenは扱いに注意して、メモをして下さい。
slack-clients
pipを使ってインストールしましょう。
pip install slackclient
Let’s Hack
基本的に詳しくはこちらということでお願いします。
メッセージの送信
from slackclient import SlackClient
slack_token = 'BotsのAPIキーをここに貼る'
sc = SlackClient(slack_token)
sc.api_call(
"chat.postMessage",
channel="#チャンネル名",
text="メッセージ"
)
メッセージの受け取り
とりあえず受け取る
import time, sys
from slackclient import SlackClient
slack_token = 'BotsのAPIキーをここに貼る'
sc = SlackClient(slack_token)
if not sc.rtm_connect():
# コネクションに失敗したら
# エラーを吐いて終了
print("Connection Failed")
sys.exit()
while sc.server.connected is True:
# ここで読み込んでる
print(sc.rtm_read())
time.sleep(1)
辞書型の空のメッセージとか、長ったらしいメッセージが流れてくる。
メッセージだけを抽出する
import time, sys
from slackclient import SlackClient
slack_token = 'BotsのAPIキーをここに貼る'
sc = SlackClient(slack_token)
if not sc.rtm_connect():
# コネクションに失敗したら
# エラーを吐いて終了
print("Connection Failed")
sys.exit()
while sc.server.connected is True:
# メッセージを取得
message_list = sc.rtm_read()
time.sleep(1)
if not message_list:
# 取得したメッセージが
# 空だったら無視
continue
for message in message_list:
if message["type"] != 'message':
# メッセージのタイプが
# messageでなかったら無視
continue
print(message["text"])
メッセージのテキストだけ表示されるようになった。
pythonってきたら、「いいぞぉ〜」って返す
import time, sys
from slackclient import SlackClient
slack_token = 'BotsのAPIキーをここに貼る'
sc = SlackClient(slack_token)
if not sc.rtm_connect():
# コネクションに失敗したら
# エラーを吐いて終了
print("Connection Failed")
sys.exit()
while sc.server.connected is True:
# メッセージを取得
message_list = sc.rtm_read()
time.sleep(1)
if not message_list:
# 取得したメッセージが
# 空だったら無視
continue
for message in message_list:
if message["type"] != 'message':
# メッセージのタイプが
# messageでなかったら無視
continue
if message["text"] != "python":
# メッセージの内容が
# pythonでなかったら無視
continue
# 送信
sc.api_call(
"chat.postMessage",
channel=message['channel'],
text="いいぞぉ〜( ^ω^)"
)
print("Send !")
Pythonはいいぞぉ〜( ^ω^)