【Python】初心者でも悩まずにできちゃうSlack連携してメッセージ通知

## はじめに
最近Pythonに触れていないのですがぴちぴちの初学者時代に、Slackと連携してPythonスクリプトに記載した内容をメッセージ通知できたら何かに使えそうだな～と思い、調べて実践してみた記録です。
たしか[こちらのサイト](https://shikaku-mafia.com/from-python-to-slack/)を参考にした記憶があるので、載せておきます。

Slackにインテグレーション機能を追加したら簡単にできるので、是非試してみてください。

:::note warn
Slackにインテグレーション機能を追加するにあたって、ワークスペース管理者に承認してもらう必要があります。
:::

## 設定方法
### 1. Slackでインテグレーション機能の設定
"<font color="Red">**Incoming Webhook**</font>"を使用します。
設定は[こちら](https://my.slack.com/services/new/incoming-webhook/)から行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/90564d17-802f-317e-063c-14376ca9e4d7.png)
①対象のワークスペースを選択
②メッセージを通知したいチャンネルやDMを選択
③"Incoming Webhookインテグレーションの追加"を押下

Webhook URLはPythonでスクリプトを書く際に使用するため、メモしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/b7c7e123-6939-4561-8a0f-b529e7add00f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/5807b3e9-3025-592d-94fc-2c48ec4a0a6b.png)
④"設定を保存する"を押下
※任意で、通知の名前とアイコンをカスタマイズ可能

### 2. Pythonのスクリプト記載
前準備として、Python環境で"<font color="Red">**slack web**</font>"のインストールが必要です。
```python
pip install slackweb
```

スクリプトの内容はこの数行で済んじゃいます。
text = "通知内容"で、お知らせしたい内容を挿入してください。
※先程メモしたWebhook URLは、ここで使用します。
```python
import slackweb

slack = slackweb.Slack(url="https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxx")
slack.notify(text="｢感謝｣ ｢成長｣ ｢恩返し｣株式会社Crane&I")
```

Python環境上で実行すると、該当のチャンネルやDMに通知が届きます。
私は、せっかくなので名前とアイコン変えてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/ec80b39d-9938-f897-66c2-972d1b3c613d.png)

## 【おまけ】自動通知設定
OSがWindowsの場合、作成したPythonのスクリプトを自動で通知させる際、"<font color="Red">**タスクスケジューラ**</font>"を使用して実現することができます。
Windowsに標準で入っているので、スタートメニューからタスクスケジューラを開いてください。

:::note
MacやLinuxの場合、"cron"を使用することで実現可能のようです。
:::

"操作" > "基本タスクの作成"を選択すると、"基本タスクの作成ウィザード"が開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/5b5235c9-ce00-db69-a644-04ceb2918c19.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/a93047ba-4cf7-62d5-2a6e-91d8f9ea0d7c.png)
①実行する処理の名前を設定
②"次へ"を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/7b53fa7b-dfed-1b3e-b2ed-0b589a5fff38.png)
③実行する頻度を選択
④"次へ"を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/e0522998-d5c5-58bc-8a9e-772d58de1659.png)
⑤実行する開始日と時間を設定
⑥間隔を設定
⑦"次へ"を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/dd124eae-6ec9-87cc-d221-a8dcce69251b.png)
⑧"プログラムの開始"を選択
⑨"次へ"を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/a1283152-1056-cf8a-dbc5-23f7e21dbc45.png)
⑩Python実行ファイル（python.exe）のフルパスを設定
⑪Pythonスクリプトの名称を設定
⑫Pythonスクリプトが格納されているフォルダを設定
⑬"次へ"を押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/7f9d63d4-dc54-b18a-c572-9ecf35f6d26f.png)
⑭"完了"を押下

これで、指定した日時にメッセージを通知することができます。

:::note warn
タスクスケジューラは、<font color="Red">**PCが起動していないと実行されません**</font>。
ログオフの状態でも実行させる場合、以下の設定をしておくと可能になります。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726107/e2c2ef1d-78b9-4b7e-cfa0-8b11a822dec8.png)

## 最後に
今回は、Pythonを使用してSlackのメッセージ通知設定をする方法についてご紹介いたしました。
Slackを取り入れている会社なら、定期的なお知らせメッセージ通知などに使用できそうですね。

最後までお読みいただき、ありがとうございました:raised_hands_tone1: