Pythonで作業効率化

【Python】Slackbotが起動した時に処理を実行する

「Slackbotを起動した時など任意のタイミングでBotにコメントさせる方法はないの?」
という疑問に答えます。

Slackbotで指定した時間に投稿することは可能です。

今回はSlackbotを起動した時に処理を実行する方法について説明します。

Slackbotが起動した時にコメントをさせる方法

SlackbotをPythonで作成しよう」で使用していたslackbotライブラリは任意のタイミングでSlackにコメントを送る処理には対応していません。

今回は「slacker」というライブラリを使用します。

◆slackerの使い方
slackbotライブラリをインストールした場合は同時にインストールいるのでインストールは不要です。

pip install slacker

◆slackerでのコメント記述方法
APIトークンを設定した後にpost_message()メソッドをコールします。
post_message()メソッドに引数はたくさんありますが、いずれも省略可能です。

今回は「channel(投稿するチャンネル名)」, 「text(投稿するコメント)」, 「as_user(Bot情報を使用するか否か)」を使用します。

◆実行結果
slackerでコメント投稿

ちなみに「as_usr」をfalseにするとBotの情報が反映されなくなります。「as_user」を省略した場合も同様です。

slack.chat.post_message('channel_name', 'こんにちは!', as_user=False)

◆実行結果
slackerでコメント投稿(Bot情報なし)

Slackbotが起動した時に「こんにちは」とコメントさせる方法

slackbotライブラリでは「bot.run()」を開始するとコメント受付のループ状態となるため、それ以降の処理は実行されません。
よって起動時の処理を入れる場合は「bot.run()」よりも前に処理を記述する必要があります。

◆bot.py記述例

◆実行結果
slackerでコメント投稿

Slackbotが起動した時間帯によってコメントの内容を変える方法

いつも「こんにちは」では少々芸がないので立ち上げた時間によって挨拶を変えてみます。
挨拶の仕様は以下の通りです。

・6:00~:おはようございます
・10:00~:こんにちは
・18:00~:こんばんは
・24:00~:午前様です

◆checktime.pyの記述内容
現在の時刻をチェックして様々な処理をする為の自作モジュールです。

◆bot.pyの記述内容
挨拶を取得してその結果をSlackにコメントします。

◆実行結果
時間によって挨拶を分ける

投稿した時刻が18:00以降のために挨拶が「こんばんは!」に変わりました。

以上、Slackbotが起動したタイミングでSlackに投稿する方法でした。
今回は挨拶をするだけでしたが、他の処理に置き換えることで、Slackbotを立ち上げた時に様々な処理を実施することも可能です。

いろいろ試してみてください。

Slackbot+PythonまとめTOP>>Slackbotの作り方マニュアル〜Python編〜

こちらの記事も読まれています

  • この記事を書いた人

みやびの

住んでいるところ:神奈川県。 プログラミング歴は13年ほど。 ※プログラミングに関する無料相談・質問への回答は行っていません。

-Pythonで作業効率化
-

Copyright© みやびのどっとぴーわい , 2024 All Rights Reserved Powered by AFFINGER5.