Pythonによるslack apiでの投稿(超初級)

python
この記事は約3分で読めます。

マーケティング専門ですが、Pythonの学習を進めている、TomoOneです。

さて、Pythonの基礎がだんだんわかってきて、実際に色んなものを自動化、システム化してやろうと思っています。

まずは、超初級で、Pythonのコード4行でslackへの通知を送るコードを書いてみます。

使うもの

  • Python3
  • slack(アカウント要登録)
  • WebHook
  • Pythonが動くサーバ

手順

Incoming WebhookでURLを作成

slackのIncoming Webhook のページにログインし、「チャンネルへの投稿」から投稿したいチャンネルを選択します。

(複数のアカウントを持っている場合は、アカウントを間違えないように!)

Incoming Webhook ページ

選択したら、「Incomming Webhook インテグレーションの追加」 をクリックします。

Incoming Webhook ページ

セットアップ画面に遷移し、 Webhook URL が発行されます。

Webhook URLの生成

発行されたURLを使って、Pythonのスクリプトを書く

Python3がインストールされているサーバに遷移し、pipとslackwebをインストール(まだの場合は)。

# pipがインストールされていない場合はインストール
$ sudo install pip

# slackwebがインストールされていない場合はインストール
$ sudo pip install slackweb

上記でインストールした slackweb に沿ってPyshonスクリプトを記載。

今回は、Microsoft AzureのVirtual Machineを使いそこにPythonやpipを入れました。ファイル名は、postToSlack.py としました。常時動かしておきたい場合は、外部のクラウドサーバやVPSなどを使ったほうがいいです。

試す分には、ローカル環境でも良いはず。

# config: UTF-8

# ライブラリのインポート
import slackweb

# 取得したURLをいれる
slack = slackweb.Slack(url="https://hooks.slack.com/xxxxxxxxxxxxxxxxxxxxxxxx")
slack.notify(text="投稿したい文字をいれる") # 例:Hey! from python to slack

Pythonスクリプトの実行

書き終わりましたら、実行してみます。

コマンドラインから、以下のコマンドを実行します。

python3 postToSlack.py

すると、実際にslackの指定したチャンネルに投稿がされています!

投稿されたslackの画面

注意事項

1度ハマったのですが、日本語のテキストを出力させたい場合にPythonの実行がエラーになることがあります。

環境によっては、Python2系とPython3系が一緒に入っていることもあるため、その場合はpython3コマンドを使うこと、

また、python3の方に slackweb ライブラリをインストールするため、以下のコマンドでインストールすることが必要です。

pip3 install slackweb

参考

Python3でslackに投稿する - Qiita
pythonからslackに投稿するまでの手順をまとめます。 時間のかかる処理の完了通知や実行途中の情報(エラー等)を通知するのに便利です。 おおまかな流れ slackでIncoming Webhookの設定をする pytho...
タイトルとURLをコピーしました