slack apiの「Create New App」から、「Webhookでslackにメッセージを送る」Slack appを作るやり方の備忘録【非推奨じゃないやつ / Incoming Webhook】
ポイント
- 「Incoming Webhook」というアプリをワークスペースに追加する方法ではありません。
- この方法は現在非推奨で将来的に削除されることも示唆されている。
- 本記事での方法は
slack api
のページのYour Apps
のCreate New App
でAppを作成し、そのAppの設定項目の`Incoming Webhooks`を使用する方法です。(現在はこちらが推奨されている)
本編
「Webhookでメッセージをチャンネルにポストするやつ」を作る場合、slack app directoryで「Incoming Webhook」というアプリ(「Incoming Webhook」で検索すれば出てくる)を使うのが、それまでスタンダードだったようですが、「Incoming Webhook」アプリのページを見ると、「これはレガシーな方法だからSlack apps
を使ってね」と書かれております。
このSlack apps
の表記はリンクになっているのでクリックしてみると「slack api」のページに遷移します。
Webhookでメッセージを送信できるAppを作る
というわけで、Your apps
をクリックしてその先でCreate New App
ボタンをクリックしてWebhookでメッセージを送信できるAppを作ってみます。
モーダルが表示されるのでForm scratch
を選択して次へ
次にApp Nameを入力します。そして使用するワークスペースを選択します。
Appが作成され、Appの設定ページが表示されます。
左ナビメニューにあるIncoming Webhooks
をクリックします。
そして、ラジオボタンをオンにします。
オンにするとWebhookのためのURLを管理する欄が表示されるので、Add New Webhook to Workspace
をクリックします。
Webhookでメッセージをポストしたいチャンネルを選択します。
Webhook URLが生成されます。これでWebhookでメッセージを送れるようになりました。
Webhookでメッセージをポストしてみる
サンプルのcurlコマンドのURL部分だけ生成したものに置き換えて実行してみます。
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX
invalid_payload
と言われた…
--data
の部分が良くなかったらしい。
--data '{\"text\":\"Hello, World!\"}'
のように"
をエスケープしたら送信できた。
以下が成功した書き方。
curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"Hello, World!\"}' https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX
できた!
以上!
Share this post