見出し画像

雑にPostmanでSlackAPIを叩いてみる

自分がこの辺のところの理解、使い方が曖昧なところがあったので、noteに書くことでまとめてみる。


前振り

APIとは

叩くもの。叩かれるもの。
APIとは「アプリケーション・プログラミング・インターフェース(Application Programming Interface)」の略称。

Postmanとは

Postman(ポストマン)は、APIの開発やテスト、管理を行うためのツール。

APIの有用性

CSVをダウンロードしてデータを連携?そういうのは連携って言わないで欲しい。
不毛な手作業を無くせる手段の一つがAPIです。
(個人の見解です)

PostmanでSlackAPIを叩いてみる

注意

API操作により実環境に影響を与えることがあります。テスト環境で試してから本番環境に反映させるなど、運用には注意してください。

大まかな流れ

  1. テスト用Slackワークスペースを用意する(無料でもいい)

  2. Postmanをインストールする

  3. 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.リクエストの設定

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. 新しいリクエストを作成

  1. 「Add Request」または「New」ボタンをクリックし、新しいリクエストを作成します。

  2. リクエスト名を付けます(例: Create Slack Channel)。

  3. HTTPメソッドをPOSTに設定します。

  4. URLに以下を入力:
    https://slack.com/api/conversations.create


2. リクエストの設定

Content-Type指定したいのでHeadersタブで設定(さっきのGETはAuthorizationタブで設定した)

  1. 「Headers」タブをクリックします。

  2. 以下のヘッダーを追加:

    • Key: Authorization

    • Value: Bearer xoxb-Your-Slack-Bot-Token

    • Key: Content-Type

    • Value: application/json


Bodyを設定

  1. 「Body」タブをクリックします。

  2. 「raw」オプションを選択し、JSON形式でリクエストボディを入力します。

以下は例です:

{
  "name": "new-channel-name",
  "is_private": false
}
  • name: 作成するチャンネル名(例: "new-channel-name")。

  • is_private: チャンネルをプライベートにする場合はtrueを指定(デフォルトはfalse)。


3. リクエストを送信

  1. 右上の「Send」ボタンをクリックします。

  2. レスポンスが画面下部に表示されます。


4. レスポンス例

リクエストが成功すると、以下のようなJSONレスポンスが返されます:

{
  "ok": true,
  "channel": {
    "id": "C0123456789",
    "name": "new-channel-name",
    "is_channel": true,
    "created": 1622490000,
    ...
  }
}


200 OK


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

Postmanの何がうれしいのか

この辺がメリットっぽいです

  1. コードを書かなくてもAPIを試せる

  2. リクエストを管理できる

  3. テスト、自動化(未検証)Runner機能

  4. チームでの共有(未検証)

  5. 無料で始められる

初心者にとっての「嬉しさ」をまとめると…

  • コードを書かずにAPIを試せる → プログラミング初心者でも安心!

  • 視覚的に結果がわかる → APIの動きやエラーをすぐに把握!

  • リクエストを保存・共有できる → 一度作ったリクエストを何度も使える!

Slack APIの謎

複数人DMのことをmpim,一対一のDMのことをimと言ったり、シングルチャンネルゲストはis_ultra_restrictedだったりして、実際のサービスで使っている名称と違っていることがある。
その辺の経緯を瀬良さんが解説されていてタメになった。


認証をわかってない

やっぱ自分は、この辺の基礎知識というか、ちゃんとしたことをわかってないなと思いました。認証なんもわからん。

参考


今日はこんな感じです。

#Postman
#SlackAPI
#Slack
#API


いいなと思ったら応援しよう!

good-sun(a03)
いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!