slackのWebAPIを使ってみた話【トークン入手編】
メモについて
みなさん、思いついたこととか、忘れないでおきたいことがあるとき、どこにメモしますか?
私は、よくSlackにメモします。理由としては、PC、iPad、スマートフォンどれからでも確認ができるからというのが大きいです。
しかし、Slackというのは沢山ワークスペースや、チャンネルがありますよね。間違えそうになること、無いですか。
一回だけ、自分以外の人がいるgeneralにメモをするということをやりました。夜中にぼーっとするのは危ないです。
自分だけがいるワークスペースがあったとしても、間違えない可能性ってゼロじゃないですよね。私はそうです。というわけで、Slackを使わずにSlackにメモをすれば、適切な場所にメモを残すことができるのでは?と考えました。
それから、毎回メモしたいときにSlackを開くのも手間なので、もっと手軽にメモできるようにしたいですね。夕食にナンが食べたいなあと思ったとき、"ナン"の2文字をメモするためにSlackをアクティブにして、送信するのは、ちょっと大変です。
WebAPIを使おう
メッセージをチャンネルに送信することが目的なので、WebAPIを使用します。
Slack API 推奨Tokenについて - Qiita
こちらに沿ってアプリを作成し、トークンを発行します。
- https://api.slack.com/appsにアクセスし、右上のCreate New Appを選択
- アプリの名前と、使用するワークスペース名を選択
- permission scopeの設定(今回は、Send message as {アプリ名}を選択)
- 上にある緑のボタン[Install App to Team]からInstallを行う
- Authorizeすると、トークンが表示される
permission scopeが見つからない場合は、OAuth & Permissionsの項目を確認すると良い
今回は、チャンネルにメッセージを送信できれば良いので、
chat.postMessage method | Slack
を用います。推奨メソッドはPOSTです。
https://api.slack.com/methods/chat.postMessage/test
こちらで、ボタン[Test Method]を押すと、URLの見本を作ることができます。
token: xxxx-xxxx-xxxx-xxxx channel: everyone text: Hello
を入力したとすると、このように出力されます。
https://slack.com/api/chat.postMessage?token=xxxx-xxxx-xxxx-xxxx&channel=everyone&text=Hello&pretty=1
実際に自分の持っているトークン、チャンネル、メッセージを入力すると、送信されたことが確認できると思います。
curlで送信したいとき
curl -XPOST -d 'token={token}&channel={channel}&text={text}' https://slack.com/api/chat.postMessage