メインコンテンツへスキップ
レッスン 10 / 12推定時間: 35

API連携の基礎:異なるサービスをつなぐ仕組み

Gmail、Slack、Googleスプレッドシート...異なるサービス同士が会話できるのはなぜでしょう?その秘密がAPI(エーピーアイ)です。このレッスンでは、APIという「つなぎ役」の仕組みを、身近な例を使って分かりやすく解説します。

はじめに

これまでのレッスンで、自動化の様々な要素を学んできました。

でも、現実の自動化では、1つのツールだけで完結することは稀です。

  • Googleフォームで受付 → Slackに通知
  • Twitterの投稿 → Googleスプレッドシートに記録
  • ECサイトの注文 → 会計ソフトに連携

このような「異なるサービスをつなぐ」仕組みがAPIです。

今回は、このAPIの基本を、プログラミング知識なしで理解していきましょう!

APIを日常生活で例えると

レストランのウェイター

APIは、レストランのウェイターのような存在です:

お客様(あなた) ← → ウェイター(API) ← → 厨房(サービス)

流れ:
1. お客様:「ハンバーグください」
2. ウェイター:注文を厨房に伝える
3. 厨房:ハンバーグを作る
4. ウェイター:完成品をお客様に運ぶ

ウェイター(API)がいることで:

  • お客様は厨房に入らなくていい
  • 注文の仕方が統一される
  • 厨房は料理に専念できる

コンビニATM

異なる銀行のカードが使えるのもAPIのおかげ:

あなた → ATM → 各銀行のシステム

ATMというAPIを通じて:
- A銀行のカード → A銀行のシステムと通信
- B銀行のカード → B銀行のシステムと通信
- C銀行のカード → C銀行のシステムと通信

統一された操作方法で、どの銀行とも連携

APIの役割

  • 異なるシステム間の「通訳」
  • 統一された方法でサービスを利用
  • 直接の接続なしに連携可能
  • 安全にデータをやり取り

APIでできること

1. データの取得(GET)

「ください」「教えてください」タイプの操作:

例:天気予報APIに問い合わせ
あなた:「東京の今日の天気を教えて」
API:「晴れ、最高気温25度です」

例:在庫確認API
あなた:「商品Aの在庫数を教えて」
API:「残り50個です」

2. データの送信(POST)

「これを登録して」「これを処理して」タイプの操作:

例:メール送信API
あなた:「このメールを送って」(宛先、件名、本文)
API:「送信完了しました」

例:注文登録API
あなた:「この注文を登録して」(商品、数量、顧客情報)
API:「注文番号12345で登録しました」

3. データの更新(PUT/PATCH)

「これを変更して」タイプの操作:

例:在庫更新API
あなた:「商品Aの在庫を30個に変更」
API:「更新完了しました」

例:ステータス変更API
あなた:「注文12345を発送済みに変更」
API:「ステータスを更新しました」

4. データの削除(DELETE)

「これを削除して」タイプの操作:

例:予約キャンセルAPI
あなた:「予約番号98765をキャンセル」
API:「キャンセル完了しました」

実際のAPI連携例

例1:フォーム → Slack通知

1. Googleフォームで問い合わせ受付
    ↓
2. フォーム送信をトリガーに
    ↓
3. Slack APIを呼び出し
    - 送信内容:チャンネル名、メッセージ
    ↓
4. Slackに通知が表示される

具体的な流れ:
フォーム:「山田太郎さんから問い合わせ」
    ↓
自動化ツール:Slack APIに送信
    {
        channel: "#問い合わせ",
        text: "新規問い合わせ: 山田太郎",
        details: "内容: 料金について..."
    }
    ↓
Slack:指定チャンネルにメッセージ投稿

例2:ECサイト → 会計ソフト

1. ECサイトで注文発生
    ↓
2. 注文データを取得
    - 顧客情報、商品、金額
    ↓
3. 会計ソフトAPIに送信
    - 売上データとして登録
    ↓
4. 自動で帳簿に記載

メリット:
- 手動入力不要
- ミスがない
- リアルタイム反映

例3:天気 → 業務調整

1. 天気予報APIから明日の天気を取得
    ↓
2. もし雨予報なら
    ↓
3. カレンダーAPIで屋外イベントを検索
    ↓
4. 該当者にメール送信APIで通知
    「明日は雨予報のため、屋内会場に変更」

完全自動で天候による調整が可能

APIキーと認証

APIキーとは?

APIキーは「会員証」のようなもの:

図書館の例:
- 会員証がないと本を借りられない
- 会員証で誰が借りたか記録
- 借りられる冊数に制限

APIキーも同じ:
- キーがないとAPI使用不可
- 誰が使ったか記録される
- 使用回数に制限がある場合も

APIキーの取得方法

一般的な流れ:

1. サービスのWebサイトでアカウント作成
2. 開発者向けページでAPIキーを発行
3. キーを安全に保管
4. API呼び出し時にキーを含める

APIキーの取り扱い注意

  • パスワードと同じく秘密に
  • 公開リポジトリにアップしない
  • 定期的に更新する
  • 不要になったら削除する

認証方式の種類

1. APIキー認証

最もシンプル:
- 固定のキーを使用
- 「?api_key=あなたのキー」を付けて送信

2. OAuth認証

SNS連携でよく使われる:
- 「Googleでログイン」ボタン
- ユーザーが許可すると連携
- より安全で柔軟

3. Bearer Token

一時的なトークン:
- ログイン時に発行
- 有効期限がある
- より安全

よく使われるAPI

1. コミュニケーション系

Slack API

できること:
- メッセージ送信
- チャンネル作成
- ユーザー情報取得
- ファイルアップロード

活用例:
- エラー通知
- 日報の自動投稿
- 承認ワークフロー

Gmail API

できること:
- メール送信/受信
- ラベル管理
- 検索
- 添付ファイル処理

活用例:
- 自動返信
- メール振り分け
- 一括送信

2. データ管理系

Google Sheets API

できること:
- データ読み書き
- シート作成
- グラフ作成
- 書式設定

活用例:
- データ集計
- レポート作成
- 在庫管理

Notion API

できること:
- ページ作成/更新
- データベース操作
- ブロック追加
- 検索

活用例:
- タスク管理
- ナレッジベース更新
- 議事録作成

3. ビジネス系

Stripe API(決済)

できること:
- 決済処理
- 顧客管理
- サブスクリプション
- 請求書発行

活用例:
- ECサイト決済
- 月額課金
- 自動請求

Zoom API

できること:
- ミーティング作成
- 参加者管理
- 録画管理
- レポート取得

活用例:
- 自動スケジューリング
- 参加者リスト作成
- 録画の自動保存

API連携の実践パターン

パターン1:通知の集約

複数のサービスから1箇所に通知:

メール受信 ─┐
Twitter DM ─┼→ 自動化ツール → Slack通知
フォーム送信 ┘

すべての通知を見逃さない

パターン2:データの同期

マスターデータを複数箇所に反映:

Googleスプレッドシート(マスター)
    ↓
自動化ツール
    ├→ Webサイト更新
    ├→ 在庫管理システム
    └→ ECサイト

1箇所更新すれば全て反映

パターン3:ワークフローの自動化

承認フローの例:

申請(Googleフォーム)
    ↓
承認者にメール(Gmail API)
    ↓
承認されたら
    ├→ 申請者に通知(Slack API)
    ├→ カレンダー登録(Google Calendar API)
    └→ 経理システム連携(会計API)

パターン4:定期レポート

毎月1日に自動実行:

売上データ取得(ECサイトAPI)
    ↓
在庫データ取得(在庫管理API)
    ↓
顧客データ取得(CRM API)
    ↓
すべてを統合してレポート作成
    ↓
メール送信(SendGrid API)

APIのレート制限

レート制限とは?

「使いすぎ防止」の仕組み:

例:Twitter API
- 15分間に15回まで
- 超えるとエラー

理由:
- サーバー負荷の軽減
- 公平な利用
- 悪用防止

レート制限への対処

1. 制限を確認
   - 1時間に何回?
   - 1日に何回?

2. 賢く使う
   - 必要な時だけ呼び出す
   - キャッシュを活用
   - バッチ処理でまとめる

3. エラー時の対処
   - 待機時間を設ける
   - 代替手段を用意
   - 利用状況を監視

トラブルシューティング

よくあるエラーと対処

401 Unauthorized

原因:認証エラー
対処:
- APIキーを確認
- 有効期限をチェック
- 権限を確認

404 Not Found

原因:指定したリソースが存在しない
対処:
- URLを確認
- IDが正しいか確認
- 削除されていないか確認

429 Too Many Requests

原因:レート制限超過
対処:
- 時間をおいて再試行
- 呼び出し頻度を下げる
- 上位プランを検討

500 Internal Server Error

原因:サーバー側のエラー
対処:
- 時間をおいて再試行
- サービスの状態を確認
- サポートに連絡

今日のまとめ

API連携の要点

  1. APIは異なるサービスをつなぐ「通訳」
  2. GET(取得)POST(送信)PUT(更新)DELETE(削除)が基本
  3. APIキーは大切に管理
  4. レート制限に注意
  5. エラー処理を忘れずに

次回予告

次のレッスンでは、「自動化設計の実践演習:業務フローを分解する」を学びます。

  • 実際の業務を自動化可能な部分に分解
  • これまでの知識を総動員
  • 設計から実装までの流れ
  • よくある落とし穴と対策

すべての要素を組み合わせて、実践的な自動化を設計しましょう!

チャレンジ問題

問題1:適切なAPIメソッドを選ぼう

以下の操作に適切なメソッド(GET/POST/PUT/DELETE)を選んでください:

  1. 商品の在庫数を確認する
  2. 新規ユーザーを登録する
  3. 注文のステータスを変更する
  4. 古い履歴データを削除する
  5. 今日の売上を確認する
答えを見る
  1. GET:データを取得するだけ
  2. POST:新規データを作成
  3. PUT:既存データを更新
  4. DELETE:データを削除
  5. GET:データを取得するだけ

問題2:API連携フローを設計しよう

「お客様からの問い合わせを適切な部署に自動振り分け」するシステムを、API連携で設計してください。

使用可能なAPI:

  • Gmail API(メール受信)
  • ChatGPT API(内容解析)
  • Slack API(通知)
  • Google Sheets API(ログ記録)
設計例を見る
1. Gmail APIでメール受信を検知
    ↓
2. メール内容を取得
    ↓
3. ChatGPT APIで内容を解析
   - カテゴリー判定(技術/営業/その他)
   - 緊急度判定(高/中/低)
    ↓
4. カテゴリーに応じてSlack APIで通知
   - 技術 → #tech-supportチャンネル
   - 営業 → #sales-teamチャンネル
   - その他 → #general-inquiryチャンネル
    ↓
5. Google Sheets APIでログ記録
   - 受信日時
   - 送信者
   - カテゴリー
   - 緊急度
   - 対応状況

追加の工夫:
- 緊急度が高い場合は@hereで全員に通知
- 営業時間外は翌朝一番に通知
- 対応完了後、自動で返信メール

問題3:エラー対策を考えよう

API連携で「毎朝、天気予報を取得してSlackに投稿」する自動化で、起こりうる問題と対策を3つ挙げてください。

解答例を見る

問題1:天気予報APIがダウン

  • 対策:複数の天気APIを用意(フォールバック)
  • 対策:前日のデータをキャッシュしておく

問題2:Slack APIのレート制限

  • 対策:投稿間隔を調整
  • 対策:複数チャンネルの場合はバッチ送信

問題3:APIキーの有効期限切れ

  • 対策:期限を監視して事前に通知
  • 対策:自動更新の仕組みを作る

問題4:データ形式の変更

  • 対策:エラーログを詳細に記録
  • 対策:管理者への即時通知
  • 対策:柔軟なデータ解析処理

API連携をマスターすれば、あらゆるサービスを組み合わせた強力な自動化が実現できます。次回の実践演習も楽しみにしていてください!

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行