Gmail APIとOutlook APIのメール連携実装における相違点一覧
Gmail API
Microsoft Graph API
Outlook
Gmail
メール連携機能を実装する際のGmail APIとMicrosoft Graph API(Outlook)の相違点まとめ。
API の違い
| 項目 | Gmail | Outlook |
|---|---|---|
| 通知方式 | Google Cloud Pub/Sub | Microsoft Graph Webhook (直接 HTTP 通知) |
| 権限管理 | Google OAuth スコープ | Microsoft Graph 権限 |
| 差分同期 | historyId による差分取得 | deltaLink による差分取得 |
| メッセージ ID | 単純な文字列 ID | より長い形式の ID |
| スレッド管理 | threadId | conversationId |
実装上の考慮事項
| 項目 | Gmail | Outlook |
|---|---|---|
| Watch/サブスクリプション有効期限 | 最大 7 日間 | 最大 3 日間(4230 分) |
| 有効期限更新方法 | 更新 API なし(削除 → 新規作成が必要) | PATCH で既存サブスクリプションを更新可能 |
| 権限スコープ | https://www.googleapis.com/auth/gmail.readonly | Mail.Read, offline_access |
| ユーザー識別方法 | Webhook の emailAddress を使用 | Webhook の subscriptionId を使用 |
テーブル設計の相違
| 項目 | Gmail | Outlook |
|---|---|---|
| 管理テーブル | gmail_watch | outlook_subscription |
| 主キー | gmail_watch_id (prefix + ULID でローカル生成) | subscription_id (Microsoft Graph から返される) |
| 履歴管理 | history_id | delta_link |
| 更新方法 | INSERT のみ(更新不要) | INSERT + UPDATE(upsert) |
| 有効期限延長 | 削除してから新規作成 | 既存レコードを UPDATE |