Slack API の概要

学習の目的

このモジュールを完了すると、次のことができるようになります。

  • Slack Web API と Slack Events API の違いを説明する。
  • Slack Web API の用途を識別する。
  • Slack Events API の用途を識別する。

Slack API の概要

どんな冒険者でも、どの道に進むかがわからなければ実際に出発することはできません。Slack アプリを作成する場合は、API という形で便利な地図が提供されます。

Slack API は、Slack との間でデータを送受信する手段です。

使用できる API が多数あります。ここでは、ほとんどの一般的な用途に必要なコア API である Slack Web APISlack Events API に焦点を絞ります。 

Web API

Web API を使用すると、Slack にクエリを実行して、情報の取得と Slack 自体の内部の変更の両方を行うことができます。

たとえば、次のような例が考えられます。

  • メッセージの送信と削除
  • ユーザを有効としてマーク
  • グループの作成
  • リアクションの追加
  • チャンネルの削除
  • メッセージのスレッドの取得
  • メッセージの URL の取得

他にも多くのことがあります。

API ユーザがこれらを実際に実現するには、Web API メソッドを使用します。Slack API のメソッドは、ユーザが Slack API と通信したり、Slack API に指示したりするための手段です。これらのメソッドは、通常、URL の形式になっていて、ユーザはそこにデータを送信できます。

次の例は curl を使用しています。curl は、コマンドラインベースのツールで、インターネット上のデータ転送を目的としています。

curl -X POST -H 'Authorization: Bearer xoxb-1234-56789abcdefghijklmnop' \
-H 'Content-type: application/json' \
--data '{"channel":"C12345678","text":"Hello, Trailhead!"}' \
https://slack.com/api/chat.postMessage

詳しく見ていきましょう。

  1. Slack に認証トークンを提示し、メッセージを送信する権限があることを Web API に知らせます。これが上記のコードの 1 行目です。
  2. 次に、リクエストが JSON 形式であることを Slack に知らせます。それが Content-type: です。
  3. 次の行の data 項目では、Slack の Web API に、チャンネル C12345678 に「Hello, Trailhead!」というメッセージを送信するように指示します。
  4. 最後に、実際にこのメッセージを送信するために適切な API メソッド chat.postMessage を選択します。メソッドファミリは chat で、これはメッセージの投稿に関連するメソッドのコレクションです。使用するメソッドは postMessage で、これは API に、新しいメッセージを送信するように指示します。
メモ

メモ

冒険者に役立つ使用可能なメソッドに関する多数のドキュメントがあります。独自の Slack アプリ作成という冒険に出かけるときには、こちらのドキュメントを参照してください。

要するに、Slack から比較的静的なデータを取得する場合や Slack 内で何かを送信したり、変更したりする場合には Web API を使用します。

Events API

Slack は、会話が行われる場所です。場合によっては、アプリはアクションを実行する前にそれらの会話をリスンする必要があります。Events API を使用すれば、リアルタイムで会話をリスンし、それに応じてアクションを実行できます。

良い例が、新しいユーザの参加を追跡するアプリです。Events API を使用してこれを実現するアプリのコードを記述したときの概要レベルでの動作は次のようになります。 

  1. ユーザがチームに参加したとき、つまり team_join イベントをリスンするようにサーバを設定します。
  2. Slack Web サイトで、アプリがそのイベントに応答するように設定します。
  3. 実際にユーザがチームに参加すると、Slack はサーバに新しいユーザに関する情報 (ユーザ ID、ユーザ名、ロケールなど) を送信します。
  4. サーバが新しいユーザに関するデータを入手すると、このデータを使用してサーバはあらゆる応答が可能になります。

Events API を使用すると、次のことを追跡し、それに応じてアクションを実行できます。

  • ユーザがメッセージからスターを削除したとき
  • ファイルが共有されたとき
  • 特定の語句を含むメッセージが投稿されたとき
  • アプリやボットがメンションされたとき
メモ

メモ

Web API と同じように、Slack にはイベントに関するドキュメントが多数用意されています。

一般に、Slack 内で行われていることを追跡し、リアルタイムでユーザに支援や役に立つコンテンツを提供するには、Events API を使用します。

API についてひとこと

リアルタイムな要素がなく、定期的にデータを送受信する場合は Web API のみを使用することができます。

そして、Slack のインスタンスで受信するリアルタイムデータを追跡する場合は Events API のみを使用することができます。

ただし、常にどちらかのみを使用する必要はありません。ほとんどの優れたアプリは両方を使用しています。Events API を使用して受信したデータを追跡し、そのフォローアップとして Web API を使用して Slack 上で何らかの応答を行うことができます。

結論

おめでとうございます! これで、Slack アプリで何ができるかや、職場の生産性と連携を促進するためにどのように役立つかがわかりました。

Slack アプリの世界はまだ手ごわそうにも見えますが、この技能の基本は理解できました。

次のステップは、新しく得た知識を活用することです。このトレイルの次のモジュールでは、アプリを実際に作成する方法を順を追って学習します。

リソース