NaaN日記

やったこと、覚えたことを発信する場

slackのWebAPIを使ってみた話【トークン入手編】

メモについて

みなさん、思いついたこととか、忘れないでおきたいことがあるとき、どこにメモしますか?
私は、よくSlackにメモします。理由としては、PC、iPadスマートフォンどれからでも確認ができるからというのが大きいです。
しかし、Slackというのは沢山ワークスペースや、チャンネルがありますよね。間違えそうになること、無いですか。
一回だけ、自分以外の人がいるgeneralにメモをするということをやりました。夜中にぼーっとするのは危ないです。

自分だけがいるワークスペースがあったとしても、間違えない可能性ってゼロじゃないですよね。私はそうです。というわけで、Slackを使わずにSlackにメモをすれば、適切な場所にメモを残すことができるのでは?と考えました。
それから、毎回メモしたいときにSlackを開くのも手間なので、もっと手軽にメモできるようにしたいですね。夕食にナンが食べたいなあと思ったとき、"ナン"の2文字をメモするためにSlackをアクティブにして、送信するのは、ちょっと大変です。

WebAPIを使おう

メッセージをチャンネルに送信することが目的なので、WebAPIを使用します。
Slack API 推奨Tokenについて - Qiita
こちらに沿ってアプリを作成し、トークンを発行します。

  1. https://api.slack.com/appsにアクセスし、右上のCreate New Appを選択
  2. アプリの名前と、使用するワークスペース名を選択
  3. permission scopeの設定(今回は、Send message as {アプリ名}を選択)
  4. 上にある緑のボタン[Install App to Team]からInstallを行う
  5. 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

おわりに

そもそもメモする場所を変えれば済むのではと少しだけ思った

参考
Slack APIを使用してメッセージを送信する - Qiita