Django(Python)で作成したWebアプリ「Fuzzz」とSlackアプリを連携してみようと思う。できるかどうかは分かりませんが。
Slackを使っていてよく感じるのは、メールないわな~って事。Trelloだったりカレンダーだったり、このブログでもお世話になっているWordPressも全部Slackに通知が来る。
「Slackと連携できないアプリないわ~」って、俺が作ったのがそうじゃねwwwと
Contents
目標としては
Fuzzzって、スケジュール調整Webアプリなんです。
調整したい人たちに、都合を〇×で入力してもらうんですが、それの連絡が面倒なんですよね。
- スケジュール調整したいんで、都合入れてくれるかな??
- 都合入力しといたよ~
- この日に決めたんで!
この3つぐらいかな。今思いつくのは。
これだけ、Slackに通知されるだけでも、なかなか便利そう。
とりあえず今回は、
Pythonから、SlackにMessageをPostするところまで試してみました。
続きは、後程。。。
まーまずは、Slack側でアプリ登録
登録
Slackのアプリ新規登録の画面へ
https://api.slack.com/apps?new_app=1
Create a Slack Appのウインドウが、表示されるので
- App Name ※後で変更可能みたい
- Development Slack Workspace ※こっちは変更できず。。
を入力して、Crate APPクリック
一旦、登録まではできたみたい
アプリの設定を
今回は、Webアプリからの通知をSlackで受け取りたいので、Incoming Webhooksをクリック
なんか添付なんてのもできるみたい。
ま、スイッチをONにします。
権限を追加しておきます
OAuth & Permissionsに行って、

下にスライドしていって、Scopes
ここで、Add an OAuth Scopeをクリックして
chat:writeを選択。
これでチャンネルに対して、通知を書き込めます。
apiをWorkspaceにインストール
左メニューのInstall Appをクリック
でてきた、Install App to Workspaceボタンをクリック
リクエスト承認ページが表示されるので、
下のドロップダウンで通知に使うチャンネルを選択
その後、許可するボタンをクリック
インストールが無事できたようです。
動くかテストしときましょう
ここで、チャンネルに対して、メッセージをPostできるか確認しておきましょう。
https://api.slack.com/methods/chat.postMessage/test
Or, provide your own token: の所に、OAuth & Permissionsの所にあったTokenをコピペ
channel のと頃は、メッセージをPostしたいChannel名を入力
Textの所に、投稿したいメッセージを
そして、下の方にあるTest Methodボタンをクリック。
をぉ~でましたね。よしよし
Pythonからメッセージを投稿してみる
準備
まずは、プログラムを動作させる環境にslackclientをPipしときましょう。
実装 Python
インポートして
import slackweb
TOKENはこんな感じで持っておいて
SLACK_API_TOKEN='******' ← OAuth & Permissionsの所にあったToken
メッセージPost
response = client.chat_postMessage( channel = '#Channel_name', # PostするChannel名 text = "Postメッセージ" # Postするメッセージ ) assert response["ok"]
これで、メッセージをPostできます。
その他の操作 (備忘)
自分で作成したslack apiを表示
slack api で作成したapiの表示は、
slack api 画面(https://api.slack.com/)の右上Your Appsボタンをクリック
Your Appsの下の所に一覧が出るので、表示したいappをクリック。
slack apiの削除
もう一回作りなおしたいな~なんて時用にメモ。
左のメニューから、Basic Infomationをクリック
下の方に移動して、Delete Appの所で、Delete Appボタンをクリック
ダイアログで、Yes,I’m sureをクリック