SlackAPIを使った投稿を試してみたくてやってみた。
簡単そうに見えた(結果的には簡単だった)けど、ものわかりの悪い私は無駄に時間かかってしまったのでメモ。
基本的には下記ページの通り。わかりやすくて感謝。
Slack API 推奨Tokenについて
不特定多数の人に使ってもらうアプリにするとかだったら、ユーザ各自に認証してもらう必要があるので、上記ページの「1. RedirectとResponseを利用した方法」が必要になるが、ひとまず試してみるだけということで上記ページに従う。
■ 私が悩んだ(つまづいた)ところ。
- チャンネルに自分の名前で投稿したい場合の権限は「メッセージをユーザーとして送信します chat:write:user」
- 「chat:write:user」はAPI名ではない。チャンネルに自分の名前で投稿したい場合のAPIは「chat.postMessage」
- リダイレクトURLの設定は不要(上述の「1. RedirectとResponseを利用した方法」になると必要)
- APIの公式リファレンスはここ→ https://api.slack.com/methods
- API公式リファレンス(例:https://api.slack.com/methods/chat.postMessage) に「Tester」ってタブがあるけど、これで試すには非推奨のLegacyTokenを作る必要がある。(それでも動いたっていうのが試せるから、作って試す価値はあった。超簡単だし。)
■ ところでHTTPリクエストどうやって試すん?
Google Chrome拡張機能のAdvanced REST clientを使った。
- methodはPOST
- パラメータ設定はVariablesではなく、Bodyで設定する
- Body content typeはapplication/x-www-form-urlencoded (公式APIリファレンス参照)
上記設定できておらず、ずっと
{ "ok": false, "error": "not_authed" }
ってなって無駄に時間かかってしまった。。。