🔐
Bearer認証付きAPIを呼び出してデータ同期する
有効期限付きのアクセストークンを自動リフレッシュしながら、認証が必要な外部APIを安全に呼び出してデータ同期するワークフロー。
ユースケース概要
OAuth2のアクセストークンが有効期限切れの場合に自動でリフレッシュし、認証済み状態でAPIを呼び出してデータを取得・同期する堅牢なパターン。
解決する課題: トークン期限切れによるAPI呼び出し失敗を自動でリカバリし、24時間安定して動作する自動化を実現する
使用するn8nノード:
- HTTP Request(トークンリフレッシュ)
- HTTP Request(実際のAPI呼び出し)
- IF(401エラー検知)
- n8n Credential(トークン安全管理)
ワークフロー構成
パターン1: OAuth2 Credential利用(推奨)
[任意のTrigger]
↓
[HTTP Request: Predefined Credential = OAuth2サービス]
(n8nが自動でトークンリフレッシュを管理)
n8nのOAuth2 Credentialは自動でトークンリフレッシュを行うため、手動管理は不要。
パターン2: カスタムトークン管理
[Trigger]
↓
[HTTP Request: API呼び出し(Error Output有効)]
├── 成功 → 後続処理
└── エラー → [IF: statusCode == 401]
├── true → [HTTP Request: トークンリフレッシュ]
│ ↓
│ [HTTP Request: API再呼び出し]
└── false → [エラー通知]
実装手順(パターン2: カスタム管理)
Step 1: n8nのCredentialにリフレッシュトークンを保存
Credential Type: Generic → HTTP Request Auth
Auth Type: Header Auth
Name: X-Api-Token(またはAuthorization)
Value: Bearer {{ $env.ACCESS_TOKEN }}
Step 2: API呼び出し(エラー出力を有効化)
Method: GET
URL: https://api.example.com/v1/data
Authentication: Generic Credential → Header Auth
Settings → On Error: Continue (Error Output)
Step 3: 401エラーの検知
Condition: {{ $json.error.httpCode }} equals "401"
Step 4: トークンリフレッシュ
Method: POST
URL: https://auth.example.com/oauth/token
Body:
grant_type: refresh_token
refresh_token: {{ $env.REFRESH_TOKEN }}
client_id: {{ $credentials.clientId }}
client_secret: {{ $credentials.clientSecret }}
Step 5: 新しいアクセストークンを環境変数に保存(注意)
セルフホストの場合、n8nの変数ストアに保存するか、外部シークレットマネージャー(Vault等)を使う。
// Codeノード: 新トークンを次のリクエストに引き渡す
const newToken = $json.access_token;
return [{ json: { ...$json, token: newToken } }];
ポイント・注意事項
- n8nのOAuth2 Credentialを使えばトークン管理は自動。カスタム実装は本当に必要な時だけにする
- リフレッシュトークン自体が期限切れになる場合は、再認証フローをエラー通知に組み込む
- アクセストークンをログやSlackメッセージに出力しない。n8nのマスキング機能を活用する
関連機能
- 1. 🔄n8n概要 - ワークフロー自動化プラットフォーム
- 2. ⚙️n8nワークフローの基本(ノード・コネクション・実行)
- 3. ⚡n8nトリガーの種類(Webhook・スケジュール・イベント)
- 4. 🔀n8nロジック制御(フィルター・条件分岐・ループ・マージ)
- 5. 🌐n8n HTTP Request・API連携
- 6. 🔗n8n主要インテグレーション(Slack・Gmail・GitHub)
- 7. 🛡️n8nエラーハンドリング・デバッグ
- 8. 🤖n8n AI・LLMエージェント(Chain・Agent)
- 9. 💻n8n Codeノード・カスタム処理
- 10. 🏢n8nエンタープライズ機能(ソース管理・シークレット・チーム管理)
- 11. 🌤️毎朝SlackにAIで天気・ニュースを通知する
- 12. 📊GitHubのPRをGoogleシートに自動記録する
- 13. 📧新規ユーザー登録時にWelcomeメールを自動送信する
- 14. 💳StripeのWebhookで決済完了を検知して処理する
- 15. 📈スケジュールトリガーで週次レポートを自動生成する
- 16. 🎫Gmailトリガーでサポートメールを自動Notionチケット化する
- 17. 🎯条件分岐でリード属性に応じて担当者を振り分ける
- 18. 📨ループ処理でリストを走査し一括メール送信する
- 19. 📋複数APIのデータをマージして統合レポートを作成する
- 20. 🗄️外部REST APIからデータを取得してDBに保存する
- 21. 🔍GraphQL APIでGitHubのIssueを取得・加工する
- 22. 🔐Bearer認証付きAPIを呼び出してデータ同期する
- 23. ✅SlackとNotionを連携したチームタスク管理フロー
- 24. 🤝GmailとHubSpotを連携したCRM自動化フロー
- 25. 🚀GitHubデプロイイベントをSlackに通知する
- 26. 🚨APIエラー発生時にSlackへアラートを送る
- 27. 🔁リトライ付きの堅牢なデータ同期フローを構築する
- 28. 📝エラーログをAirtableに自動記録する
- 29. 🤖LLMを使ったカスタマーサポート自動応答ボット
- 30. 🔎ドキュメントRAG検索システムを構築する
- 31. 📬AIでメール内容を自動分類・ルーティングする
- 32. 🔧JavaScriptで複雑なデータ変換処理を実装する
- 33. 📄npmライブラリを使ったPDF自動生成フロー
- 34. ✔️カスタムバリデーションロジックをCodeノードで実装する
- 35. 🗂️Gitでワークフローをバージョン管理する
- 36. 🌍環境変数で本番・ステージングを切り替える
- 37. 👥チームでのワークフロー共同管理フロー
- 38. 📋AIで履歴書を自動スクリーニング・スコアリングする
- 39. 🧾請求書PDFをOCRで自動データ入力・会計ソフト登録する
- 40. 📱ブログ記事→SNS自動投稿パイプラインを構築する
- 41. 📦Shopify注文処理を完全自動化する(在庫・配送・顧客通知)
- 42. 🔔予約リマインダーを自動送信してノーショーを削減する
- 43. 📊経営ダッシュボードを毎朝Slackに自動配信する
- 44. 🔭競合情報を自動収集してWeeklyレポートにまとめる
- 45. 🎉新入社員オンボーディングを完全自動化する
出典: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/