📖

業務効率化をしたい...SlackAPIがあるじゃないか!!①SlackAPI詳細と、APIの基礎(JSONについて)

2023/05/08に公開2

SlackAPIを活用して日々の業務、タスクを効率化したい

日々使うSlack...
ここにいつも必要な情報が自動で届いたら、よくない?
送った資料も、全部自動でダウンロードできてたら便利!!!!
分析が自動でしてくれて届いたら、便利では?!?!

じゃあ、APIがあるし、やってみようよ!ということで...まずはできることから調べてみよう!

https://api.slack.com/

補足:APIとは

APIとは

Application Programming Interfaceの略で、
ソフトウェアやアプリケーションの機能を外部から呼び出し、利用するためのプログラムの集合体。
つまり、APIはプログラマーがソフトウェアやアプリケーションを作成する際に使用される、
他のプログラムやサービスとのインターフェースを提供する技術

これをもっと簡単にいうなら、
プログラマーが作成するソフトウェアやアプリケーションと、
他のプログラムやサービスをつなぐための技術

APIでできることは?

  • 外部サービスの利用:
    外部サービスのAPIを使って、自分のサービスに機能を追加することができる。
    ex. Google Maps APIを使用して、自分のアプリケーションで地図を表示

  • データの取得:
    APIを使用して、外部のデータベースからデータを取得することができる。
    ex. Twitter APIを使用して、最新のツイートを取得する

  • データの送信:
    APIを使用して、外部のシステムにデータを送信することができる。
    ex. Slack APIを使用して、自動的にメッセージを送信するボットを作成

  • プログラムの連携
    APIを使用して、異なるプログラム間でデータをやりとりすることができる。
    ex. GitHub APIを使用して、自分のプロジェクトを他のプログラムと連携させる

  • カスタマイズ:
    APIを使用して、既存のプログラムやサービスをカスタマイズすることができる。
    ex. FacebookのAPIを使用して、自分のウェブサイトにFacebookの「いいね!」ボタンを追加

APIを使用するメリット・デメリット

メリット デメリット
プログラム開発の効率化 セキュリティの問題
機能の拡張性 依存性の問題
コストの削減 パフォーマンスの問題
標準化 APIの変更

【メリット】
1. プログラム開発の効率化:
APIを使用することで、自分で実装する必要がある機能をAPIに任せることができるため、
自分で実装する必要があるコードの量が減り、開発の効率が向上する。
2. 機能の拡張性:
APIを使用することで、自分のアプリケーションに他のサービスや機能を追加することができ,
これにより、アプリケーションの機能性が向上し、ユーザーの体験(UX)をより良くすることができる。
3. コストの削減:
APIを使用することで、自分で開発する必要がある機能を外部から提供されるAPIに任せることができ,
開発コストを削減することができます。
4. 標準化
APIを使用することで、開発者は同じAPIを使用することで共通の機能を使用することができ,
開発者同士でコードの互換性を確保することができるため、コードの品質を向上することができる

【デメリット】
1. セキュリティの問題:
APIを使用することで、外部からの攻撃にさらされるリスクがある。
APIにはセキュリティ上の脆弱性がある場合がありそれを悪用される可能性がある。
2. 依存性の問題:
APIを使用することで、自分のアプリケーションがAPIに依存することになる。
もしAPIが変更や停止された場合、アプリケーションの機能性が失われる可能性がある。
3. パフォーマンスの問題:
APIを使用することで、通信の遅延や、APIが利用可能でない場合に
アプリケーションのパフォーマンスが低下することがある。
4. APIの変更:
APIを提供する企業やサービスがAPIを変更することがある。
そのため、APIを使用するアプリケーションも変更が必要になる場合がある。

Slack APIとは

  • Slackのボットやアプリケーションを開発するためのプログラムインターフェース(API)
  • SlackAPIを使用することで、
    Slackの機能を拡張し、独自のアプリケーションを開発することができる。

できること

SlackAPIを使用することで、以下のようなことができる

機能 具体例
メッセージの送受信 Slackボットを作成して、メッセージを受け取ったら自動で返信する
ユーザーの管理 Slackのユーザー情報を取得や招待など
Slackのチャンネルの管理 新しいチャンネルを作成したり、既存のチャンネルにユーザーを招待したり.
Slack上で共有されたファイルを管理 Slack上で共有されたファイルをダウンロードしたり、ファイルにコメントしたり.
ワークフローの自動化 Slack上で特定のキーワードを検出したら、特定のアクションを起こすようにするなど
カスタムアプリの作成 Slack上で独自のカスタムアプリを作成可能。特定のアクションをトリガーにして、独自のアプリケーションを起動するなど

なんとコミュニティもある!!!!

https://slackcommunity.com/?utm_medium=referral&utm_source=apislack&utm_campaign=api_site_footer

ここでは、ユーザーグループ、フォーラム、Q&Aセクション、開発者向けのイベントなどが開催されてる様子!!

これは参加してみるのみですね。参加後またlogを書きます!!!

開発に入る前に知っておきたいこと

なぜAPIはJSON形式で書かれるのか

APIの作成をするとき、また設定をしていく時、JSON形式が多く採用されている。
それはなぜなのか。

最初に結論を簡潔に書くと...

APIは、通常、リクエストとレスポンスを通じてデータを受け渡しします。
JSONは、APIが使用するデータ形式の1つであり、
以下のような理由から広く採用されている。

1. 軽量で高速:
JSONは、XMLなどの他のフォーマットよりも軽量で、処理が高速
これは、APIが短時間で多くのデータを処理することができることを意味します。

2. フォーマットが簡単:
JSONは、人間にも機械にも理解しやすいフォーマットのため、開発者はAPIを理解し
開発するのが容易
になる。

3. オブジェクト指向:
JSONは、オブジェクト指向のフォーマット。
これは、APIが構造化されたデータを受け取り、処理することができることを意味します。
APIが返すデータを簡単に解析できるため、エラーの特定やトラブルシューティングが容易。

4. クロスプラットフォーム対応:
JSONは、ほとんどのプログラミング言語でサポートされているため、
クロスプラットフォームで使用することができる。これは、APIを利用する開発者が、
APIの使用に必要な技術スタックを変更する必要がなくなることを意味します。


【補足:そもそもJSONって】

JSONは"JavaScript Object Notation"の略称.
JavaScriptのオブジェクトリテラル(オブジェクト表記法)の構文をベースにした
データ形式(データフォーマット)の一種
だ.
(軽量のデータ交換フォーマット)

JSONは、オブジェクト、配列、文字列、数値、真偽値、null値などの
基本的なデータ型をサポートしているし、特定の言語に依存しない(ほとんどの言語でサポート)ため
非常に汎用性も高い.

データ形式(データフォーマット)とは...CSV,XMLについて

データ形式とは、データを扱うルールのこと。
CSV, XML, JSON. というデータ形式があり、テキストを記述するためのデータ形式なので、
そのためそれぞれ「CSV形式」「XML形式」「JSON形式」と呼ばれるのが一般的。
※「こういう形式があるんだな」というスタンスで、まずはOK。

【CSV形式】

  • Comma Separated Valuesの略。 カンマ「,」で区切ったデータ形式
  • テキストファイルとして保存でき、非常にシンプルで人間にとっても理解しやすい.
    ただし、CSVはデータが単純な表形式に制限されるため、より複雑なデータに対応することができません。
id,genre
1,Japanese
2,Italian
3,Western

【XML形式】

  • Extensible Markup Languageの略。
    タグ(<〇〇></〇〇>)を使ったデータ形式。
    HTMLと違ってタグ内(< >←この中)の記述は自由にすることが可。
    XMLは、階層的な構造を持つことができ、データの種類や属性に対して意味を付けることができる。
    これは、より複雑なデータに対応することができるという利点があるが、
    XMLはタグや属性が多くなると、データが読みにくくなります。

<?xml version="1.0" encoding="UTF-8"?>
<data>
  <item>
    <id>1</id>
    <genre>Japanese</genre>
  </item>
  <item>
    <id>2</id>
    <genre>Italian</genre>
  </item>
  <item>
    <id>3</id>
    <genre>Western</genre>
  </item>
</data>

■ JSONの 利用タイミング:APIサーバーからの応答形式

システム間のデータのやり取りを行いデータがレスポンスされる際など。

⚠️JSONでできないこと(制約されていること)

  1. jsonファイルでのコメント機能はできない
  2. シングルクォーテーション('')は不能!

参考


開発において...

Slackのボットやアプリケーションを開発するためのトークンが必要になる。
叩きたいAPIに合わせてトークンの権限を設定する

Tokenの発行方法

参考
SlackAPI: methods
SlackAPI

  1. ログイン(ワークスペースの選択)
  2. Tokenの目的設定
  3. ワークスペースのインストール

今日は基礎部分の掲載をしたので、明日は実際に使用するを書きたいと思います!!!!

Discussion