1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PowerAutomateじゃできないSlack botを作りたい

Last updated at Posted at 2022-03-31

はじめに

サクッとSlack botを作っていきます。
メール受信をトリガーにメッセージ投稿!とかならPowerAutomateでできてしまうので、そことの差別化のため、今回はSlackの過去メッセージ読み込みと投稿をしていきます。
※PowerAutomateでできるSlack操作は限定されています。こちらの記事を参考にしてください。

手順

1. SlackAppを作る

https://api.slack.com/apps?new_app=1
↑からSlackAppを作ります。
image.png

適当な名前とワークスペースを選択してください。

2. SlackAppに権限を与える

[OAuth & Permissions]から権限を追加します。
今回必要な権限は

  • メッセージの読み込み
  • メッセージの投稿
    なので、↓のように権限を追加します。
    image.png
    image.png
    必要な権限は、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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?