はじめに
サクッとSlack botを作っていきます。
メール受信をトリガーにメッセージ投稿!とかならPowerAutomateでできてしまうので、そことの差別化のため、今回はSlackの過去メッセージ読み込みと投稿をしていきます。
※PowerAutomateでできるSlack操作は限定されています。こちらの記事を参考にしてください。
手順
1. SlackAppを作る
https://api.slack.com/apps?new_app=1
↑からSlackAppを作ります。
適当な名前とワークスペースを選択してください。
2. SlackAppに権限を与える
[OAuth & Permissions]から権限を追加します。
今回必要な権限は
- メッセージの読み込み
- メッセージの投稿
なので、↓のように権限を追加します。
必要な権限は、SlackAPIのリファレンスから確認できます。
https://api.slack.com/methods
3. SlackAppのインストール
[Install App]からインストールします。
インストールするとOAuth Access Tokenが発行されます。このTokenはあとで使います。
4. APIを叩く
後はAPIを叩けばOKです。
使用可能なAPIはSlackAPIのリファレンスにまとまっています。
例:メッセージ投稿
以下のように指定すると、generalチャンネルに「hello!」というメッセージを送ることができます。
URL: https://slack.com/api/chat.postMessage
Method: POST
QueryString: {
token: xoxp-xxxxxxxxx,
channel: C0XXXXX, // チャンネルIDを指定する必要があります。
text: hello!
}
BodyType: Application/x-www-from-urlencoded
例:メッセージ取得
以下のように指定すると、generalチャンネルの過去の1メッセージを取得できます。
URL: https://slack.com/api/conversations.history
Method: GET
QueryString: {
token: xoxp-xxxxxxxxx,
channel: C0XXXXX, // チャンネルIDを指定する必要があります。
limit: 1,
inclusive: true
}
BodyType: Application/x-www-from-urlencoded
(おまけ)SlackでチャンネルIDを取得する方法
チャンネルを右クリック > [リンクをコピー]して、リンクの貼り付けをすることで、チャンネルIDを確認できます。
https://testspace-mqv1800.slack.com/archives/XXXXXXXX
のようになっているので、最後のXXXXXXX
がチャンネルIDです。
実際に何か作ってみる
以下の記事で紹介しています。
https://qiita.com/k_ued/items/499b25c0bd56094c7cfd