【n8n】セルフホスト環境でGmailを連携する手順(OAuth2設定の完全ガイド)
n8nをセルフホストしていると、Gmail送信などの「Google連携」をしたくなります。
ただし、n8nのクラウド版と違い、セルフホスト環境では Google Cloud Platform(GCP)側で OAuth2 の設定を自分で行う必要があります。
しかも Google Cloud のコンソール画面は複雑で迷子になりやすい…。
この記事では、迷わないように 「どの画面で何をするか」 を明確に分けて、Gmail連携のための手順を整理します。
さらに、多くの人が踏む地雷である 「7日で認証が切れる問題」 の回避までまとめます。
※この手順は Google Sheets や Google Drive でも基本的に同じです。
✅️なお、この記事は昨日投稿した以下の記事の中のセルフホストのn8nでのGmailの認証設定の参考記事となります。
0. 事前準備(ここだけ確認)
以下が整っていれば、手順通りに進めるだけで設定できます。
n8n が HTTPS(独自ドメイン)で公開済み
n8n の URL(Base URL 相当)が正しく設定されている
(例:`https://あなたのn8nドメイン` でアクセスできる状態)Googleアカウントがある(Google Workspace でも @gmail.com でもOK)
※この前提が崩れていると、後半で `redirect_uri_mismatch` などのエラーになりやすいです。
1. はじめに(この記事でできること)
目的
n8nから Gmail を送信したい
応用:Google Sheets の読み書き、Google Drive の操作なども同様の手順で可能
セルフホスト特有の課題
セルフホスト版では、Google連携のために Google Cloud でプロジェクト作成+OAuth同意画面+認証情報(クライアントID)作成が必要です。
注意点(7日問題)
@gmail.com のような個人アカウントで「外部(External)」かつ「テスト(Testing)」のままだと、Googleの仕様により リフレッシュトークンの有効期限が7日間に制限され、毎週再認証が必要になります。
この記事では、その回避策も説明します。
2. Google Cloud 側での作業(ここがメイン)
以降は Google Cloud コンソールでの操作です。
コンソールにログインします。

STEP 1:プロジェクトを作成する
目的: n8n用の設定を入れる "箱" を作る
Google Cloud コンソールを開く
上部のプロジェクト選択 → 「新しいプロジェクト」
プロジェクト名を入力(例:`n8n-gmail`)→ 作成


STEP 2:必要なAPIを有効化する
目的: Gmail を使えるようにする
メニュー: 「API とサービス」→「ライブラリ」
ライブラリで Gmail API を検索して 有効にする
ポイント:
これを忘れると、OAuth認証が通っても "APIが無効" "アクセス権がない" 系のエラーになります。
※Google Sheets や Google Drive を使う場合も、同様にそれぞれのAPIを有効化してください。

STEP 3:OAuth 同意画面(Consent Screen)を設定する
目的: 「このアプリが何をするか」をGoogleに登録する
メニュー: 「API とサービス」→「OAuth 同意画面」



3-1. アプリ情報を入力
アプリ名(例:`n8n`)
ユーザーサポートメール(自分のメールでOK)
「次へ」を押します。

3-2. 対象(User Type) を選ぶ(ここが分岐点)
Google Workspace(組織管理されたアカウント)の場合
「内部(Internal)」 を選択できます
組織内のユーザーのみが使用でき、確認不要でそのまま運用できます
個人の @gmail.com の場合
「外部(External)」 しか選択できません
テストユーザーの追加と、後述する「Production化」が必要になります
「次へ」を押します。

3-3. 連絡先情報を入力
メールアドレスなど必要事項を入力
「次へ」を押します。

3-4. 終了画面で確認して作成
最後の「終了」画面が表示されます。
「Google API サービス: ユーザーデータに関するポリシー」にチェックを入れる
設定内容を確認
「作成」ボタンを押して OAuth 同意画面の設定を完了
これで OAuth 同意画面の設定は完了です。


OAuth 同意画面の設定が完了すると、「OAuth の概要」画面に戻ります。
この時点では「このプロジェクトの OAuth クライアントはまだ構成されていません」と表示されていますが、これは正常です。
次は、n8nに設定する Client ID と Client Secret を取得するために、OAuth クライアント ID を作成します。

STEP 4:認証情報(OAuth クライアントID)を作成する
目的: n8nに入れる「Client ID / Client Secret」を作る
メニュー: 「API とサービス」→「認証情報」→「認証情報を作成」
※Step3の最後に表示された画面の「OAuthクライアント作成」ボタンをクリックしても大丈夫です
「OAuth クライアント ID」 を選択
アプリケーションの種類: 「ウェブ アプリケーション」
承認済みのリダイレクト URI(最重要) を追加



リダイレクトURIの例
ポイント:
・n8nのCredential画面に表示される OAuth Redirect URL をコピーして貼り付けるのが一番確実
・プロトコル(https)、ドメイン、パス、末尾のスラッシュまで完全一致させてください。1文字でも違うと `redirect_uri_mismatch` エラーになります


クライアントIDが表示されるので控えておく
「APIとサービス」→「認証情報」→「OAuthクライアントID」に上記で作成したIDが表示されているので、クリック

クライアントシークレットが表示されるので控える

3. n8n 側での作業(Credentialを作る)
STEP 5:Google OAuth2 の Credential を作成する
目的: n8nに Client ID / Client Secret を登録し、Googleログインする
n8n の画面で Credentials を開く
「新規作成」→ Google系(例:Google OAuth2 / Gmail / Google Sheets など)を選択
Client ID / Client Secret を貼り付け
「Sign in with Google」 を押して認証
認証が通ったら保存
Service Account との違い(読者が迷いやすいので補足)
OAuth2(ユーザー認可):自分のGoogleアカウントとして操作できる(個人利用はこれが分かりやすい)
Service Account(サーバー間認証):共有ドライブや特定フォルダに権限付与して運用したい場合に強い
※ノード/用途によっては制約が出るので、まずはOAuth2から始めるのがおすすめ
4. 【最重要】7日で認証が切れる問題の回避
よくある現象
個人の @gmail.com で
OAuth 同意画面が 外部(External)
ステータスが テスト(Testing)
のままだと、Googleの仕様により リフレッシュトークンの有効期限が7日間に制限され、毎週再認証が必要になります。
回避策(Productionに切り替える)
Google Cloud コンソール → 「API とサービス」→「OAuth 同意画面」
「アプリを公開」(Publish App)を押す
ステータスを 本番(Production) にする
注意書き(ここは誤解されやすい)
自分(少人数)だけが使う目的なら、Productionに切り替えて運用することは可能です
ただし、要求スコープが強い場合は 未検証アプリの警告が出ることがあります
この警告は"危険"という意味ではなく、Google側の審査を受けていないという意味です
自分だけが使う場合は「詳細」→「安全でないページに移動」で問題なく利用できます
また、広く一般ユーザーに配布する用途では 検証が必要になる場合があります
5. よくあるエラーと対処法
エラー: `redirect_uri_mismatch`
原因: リダイレクトURIの不一致
対処: n8nのCredential画面に表示されるOAuth Redirect URLを完全コピーして、Google Cloudの認証情報に貼り直してください。プロトコル(https)、ドメイン、パス、末尾のスラッシュまで完全一致が必要です。
エラー: `access_not_configured`
原因: APIが有効化されていない
対処: STEP 2を再確認。Gmail API / Google Sheets API / Google Drive API など、該当するAPIを有効化してください。
エラー: `insufficient_permissions`
原因: 必要なスコープが不足している
対処: OAuth同意画面で必要なスコープを追加 → n8nで再認証を行ってください。
6. まとめ(チェックリスト)
最後に、ハマりポイントをチェックリスト化しておきます。
[ ] Gmail / Sheets / Drive の APIを有効化したか
[ ] OAuth 同意画面で User Type を正しく選んだか(Internal/External)
[ ] External の場合、テストユーザーに自分を追加したか
[ ] リダイレクトURIが完全一致しているか(プロトコル、ドメイン、パス、末尾スラッシュまで)
[ ] 7日問題が出る場合、同意画面を Production に切り替えたか
[ ] スコープは 最小権限になっているか(必要以上に強くしていないか)
おわりに
お疲れ様でした!
Google Cloud の設定画面、本当に迷いますよね...。
私も最初は何度も行ったり来たりして、「どこで何を設定したっけ?」と混乱しました。
でも一度設定してしまえば、あとはn8nで自由にGmailを使えるようになります。
Gmail自動送信など、自動化の幅が一気に広がります。
実際のワークフロー作成については、また別の記事で具体例を紹介していきますので、お楽しみに!
※Google Sheets や Google Drive を使いたい場合も、この記事と同じ手順でOAuth2設定を行い、それぞれのAPIを有効化すればOKです。
困ったことがあれば、コメント欄で気軽に質問してください。
一緒に解決していきましょう!
