
雑にPostmanでSlackAPIを叩いてみる
自分がこの辺のところの理解、使い方が曖昧なところがあったので、noteに書くことでまとめてみる。
前振り
APIとは
叩くもの。叩かれるもの。
APIとは「アプリケーション・プログラミング・インターフェース(Application Programming Interface)」の略称。
Postmanとは
Postman(ポストマン)は、APIの開発やテスト、管理を行うためのツール。
APIの有用性
CSVをダウンロードしてデータを連携?そういうのは連携って言わないで欲しい。
不毛な手作業を無くせる手段の一つがAPIです。
(個人の見解です)
PostmanでSlackAPIを叩いてみる
注意
API操作により実環境に影響を与えることがあります。テスト環境で試してから本番環境に反映させるなど、運用には注意してください。
大まかな流れ
テスト用Slackワークスペースを用意する(無料でもいい)
Postmanをインストールする
PostmanからSlack APIを叩き、テスト用Slackワークスペースにアレコレする
1,2の説明は省きます。
3から行ってみましょう。
害の少ないGetから始めて、次にPostをやってみようかな。
Slackアプリの作成とテスター
Slack APIを利用するにはSlackAppが必要になります。
アプリの作り方とか、テスターの使い方は、そういえばnotion書いていた
[GET]PostmanでSlackのチャンネル一覧を取得する
準備
conversations.list
Slackのチャンネル一覧を取得するAPIはこちら
このへんのスコープを持たせたアプリを作っておきます。

Testerので動作確認
はい、動いてますね。Optional arguments は一旦なしでやってます。チャンネルが大量にあるときはcursor(ページネーション)をゴニョゴニョしますが割愛(See pagination for more detail.)


テスターで動作確認できるんだからPostmanいらなくね?と思われてしまいそうだが、先々、さらにAPIの利活用を進めていく時にはPostmanが便利だよってことで、Postmanも触ってみます。
Postmanでチャンネルを取得してみる
前置きが長くなりました。
下記の流れで行きます。
1.Postmanを起動
2.新しいリクエストを作成

3.リクエストの設定

HTTPメソッドをGETに設定。
リクエストURLに以下を入力します
https://slack.com/api/conversations.list
4.認証用ヘッダーの設定

5.クエリパラメータの設定 (必要に応じて)
クエリパラメータを追加する場合:
types(例: public_channel,private_channel)
limit(例: 10)
6.リクエストを送信
Sendをポチー
7.レスポンス例
成功すると、以下のようなJSONレスポンスが返ってきます:
{
"ok": true,
"channels": [
{
"id": "C0123456789",
"name": "general",
"is_channel": true,
"is_archived": false,
"num_members": 123,
...
},
...
]
}
Postmanの画面はこんな感じ

[POST]PostmanでSlackのチャンネルを作成する
準備
conversations.create を使います。
このへんのスコープを持ったアプリとトークンを用意しておきます。

以下、Postmanでの操作の流れ
GETとほぼ同じですね。
1. 新しいリクエストを作成


「Add Request」または「New」ボタンをクリックし、新しいリクエストを作成します。
リクエスト名を付けます(例: Create Slack Channel)。
HTTPメソッドをPOSTに設定します。
2. リクエストの設定
Content-Type指定したいのでHeadersタブで設定(さっきのGETはAuthorizationタブで設定した)
「Headers」タブをクリックします。
以下のヘッダーを追加:
Key: Authorization
Value: Bearer xoxb-Your-Slack-Bot-Token
Key: Content-Type
Value: application/json

Bodyを設定
「Body」タブをクリックします。
「raw」オプションを選択し、JSON形式でリクエストボディを入力します。
以下は例です:

{
"name": "new-channel-name",
"is_private": false
}
name: 作成するチャンネル名(例: "new-channel-name")。
is_private: チャンネルをプライベートにする場合はtrueを指定(デフォルトはfalse)。
3. リクエストを送信
右上の「Send」ボタンをクリックします。
レスポンスが画面下部に表示されます。
4. レスポンス例
リクエストが成功すると、以下のようなJSONレスポンスが返されます:
{
"ok": true,
"channel": {
"id": "C0123456789",
"name": "new-channel-name",
"is_channel": true,
"created": 1622490000,
...
}
}

Slack側でもチャンネルが作成されていることを確認できます

Postmanの何がうれしいのか
この辺がメリットっぽいです
コードを書かなくてもAPIを試せる
リクエストを管理できる
テスト、自動化(未検証)Runner機能
チームでの共有(未検証)
無料で始められる
初心者にとっての「嬉しさ」をまとめると…
コードを書かずにAPIを試せる → プログラミング初心者でも安心!
視覚的に結果がわかる → APIの動きやエラーをすぐに把握!
リクエストを保存・共有できる → 一度作ったリクエストを何度も使える!
Slack APIの謎
複数人DMのことをmpim,一対一のDMのことをimと言ったり、シングルチャンネルゲストはis_ultra_restrictedだったりして、実際のサービスで使っている名称と違っていることがある。
その辺の経緯を瀬良さんが解説されていてタメになった。
認証をわかってない
やっぱ自分は、この辺の基礎知識というか、ちゃんとしたことをわかってないなと思いました。認証なんもわからん。
参考
今日はこんな感じです。
#Postman
#SlackAPI
#Slack
#API
いいなと思ったら応援しよう!
