コーヒ豆通販はこちら

【改訂版】n8n×Google Geminiで海外ニュースを自動取得・要約し、スプレッドシートに記録するAIワークフロー構築術

n8n × Google Gemini APIでニュース自動取得・要約・記録する方法 社会人の勉強

はじめに:なぜn8nとGemini自動化なのか

この記事では、ノーコードツール「n8n」とGoogleの高性能AI「Gemini」を連携させ、あなたが本当に興味のあるニュースを自動で取得・要約するAIワークフローを構築します。特に、ノードの接続順序と操作の選択肢で迷わない、ビギナー向けの完全な手順を提供します。

🚨 重要な事前知識:Gemini APIのコスト

  • 課金対象: Gemini APIはOpenAIと同様に従量課金制です。AIに送る入力(ニュース記事の内容)と、AIから返る出力(日本語の要約)のトークン数で費用が発生します。
  • コスト削減策: ノード設定で「Gemini 2.5 Flash」など、処理速度が速く安価なモデルを選択することで、コストを抑えることができます。

ワークフローの全体像とノード接続順序

構築するワークフローは、以下の6つのステップ(ノード)が一本の線で繋がった構造になります。

text{Schedule Trigger (起動)>Google Sheets (取得)>IF (絞込)>HTTP Request (ニュース取得)>Google Gemini (AI処理)>Google Sheets (記録)

ステップ選択すべきノード名実行する操作 (Operation)主要な設定項目目的
1. 起動Schedule Trigger操作設定は不要N/A決まった日時にワークフローを自動起動。
2. 検索ワード取得Google SheetsGet RowsN/Aスプレッドシートからキーワードを取得。
3. 絞り込みIF操作設定は不要N/A「検索が必要」なキーワードのみを抽出。
4. ニュース取得HTTP Request操作設定は不要Method: GETNews APIを通じて海外ニュースを取得。
5. AI処理Google GeminiGenerate ContentN/A記事を日本語で要約・翻訳。
6. 記録Google SheetsAppend RowN/AAI処理後の結果をニュース一覧シートに追記。

【解説】 この表は、構築するワークフロー全体の設計図です。ノードの主なアクションを「実行する操作」とし、Operationとは別に重要な設定項目を「主要な設定項目」欄に分離しました。

ステップ0:事前準備(APIキーとGoogle Sheets)

1. Gemini APIキーの作成(詳細手順)

AI連携の要となるAPIキーを以下の手順で作成します。

  1. Google AI Studioにアクセス: Google AI Studioにアクセスし、Googleアカウントでログインします。
  2. APIキーの作成画面へ移動: サイト内の「Get API key」または「APIキーを作成」メニューを選択します。
  3. キーを作成: 「Create API Key in new project」ボタン等をクリックし、キーを生成します。
  4. キーをコピー: 表示されたAPIキー(AIza…から始まる文字列)を必ずコピーし、安全な場所に控えてください。このキーは、画面を閉じると二度と表示されません。

2. News APIキーの取得(詳細手順)

海外ニュースのデータソースとなるAPIキーを取得します。

  1. News API公式サイトアクセス: 公式サイトの「Get API Key」ボタン等からアカウント登録ページへ進みます。
  2. アカウント登録: 氏名、メールアドレス、パスワードを入力し、個人利用(I am an individualなど)を選択して登録します。(クレジットカードは不要です)
  3. APIキーの確認: 登録完了後、アカウントページまたはメールアドレスにAPIキーが送付されるので、これを控えておきます。

3. Google Sheetsの準備

以下のシート名(タブの名前)でスプレッドシートを作成します。

シート名項目 (A列, B列, C列…)
01 検索検索ID, 検索ワード, 検索要否
02 一覧日付, 検索ワード, 記事内容, URL

【解説】 ワークフローで使用するGoogleスプレッドシートの構造を示しています。シート名はn8nでの指定に必要となるため、この通りの名称(01 検索、02 一覧)で作成してください。

ステップ1:ワークフローの起点とデータ取得

キャンバス上でノードを検索し、以下の順に接続していきます。

ステップ選択すべきノード名実行する操作 (Operation)主要な設定項目目的
1. 起動Schedule Trigger操作設定は不要N/A決まった日時にワークフローを自動起動。
2. 検索ワード取得Google SheetsGet RowsN/Aスプレッドシートからキーワードを取得。
3. 絞り込みIF操作設定は不要N/A「検索が必要」なキーワードのみを抽出。
4. ニュース取得HTTP Request操作設定は不要Method: GETNews APIを通じて海外ニュースを取得。
4.5. 記事の分割Split Out (Item Lists)Split Out ItemsField to Split Out: articles取得した記事の配列を、記事ごとのアイテムに分割。
5. AI処理Google GeminiGenerate ContentN/A記事を日本語で要約・翻訳。
6. 記録Google SheetsAppend RowN/AAI処理後の結果をニュース一覧シートに追記。

【解説】 この表は、ワークフローの最初の3つのノード(起動、データ取得、条件分岐)の設定方法を示しています。ステップ3のValue 2は、スプレッドシートの検索要否列に入力した文字と完全に一致させる必要があります。

ステップ2:ニュースの取得とAIによる要約(Google Gemini)

IFノードのTrue Branchから線を引いて、以下の2つのノードを接続します。

1. HTTP Request (News API) の設定

IFノードのTrue Branch側に「HTTP Request」ノードを追加します。

  • Methodを「GET」に設定します。(これがニュース取得の操作となります)
  • URLに、News APIの「Everything」エンドポイントのURLを貼り付け、動的な値を埋め込みます。

コード スニペット

https://newsapi.org/v2/everything?q={{ $json["検索ワード"] }}&sortBy=publishedAt&language=en&apiKey={APIキー}
  • q={検索ワード}の部分:IFノードの出力から検索ワードの値をドラッグ&ドロップ。
  • apiKey={APIキー}の部分:取得したご自身のNews APIキーを直接入力。

2. Split Out (Item Lists)ノードによる記事の分割

HTTP Requestノードの直後に「Item Lists」ノードを追加し、その機能を強調するために「Split Out」として解説します。

  • OperationSplit Out Items を選択します。
  • Field to Split Out: News APIのJSONの配列名である articles を、左側のインプットデータからドラッグ&ドロップで指定します。(例: {{ $json.articles }}
  • 【Split Out ノードの役割】 News APIの出力は、複数記事を1つの配列にまとめた単一のアイテムとしてn8nに渡されます。このノードは、その配列を記事の数だけ独立したアイテムに分割します。これにより、後続のGeminiノードは、記事を一つずつ順番に処理できるようになります。

3. Google Gemini の設定

Split Outノードの後に「Google Gemini」ノードを接続します。

ノード検索名選択すべきノード名実行する操作 (Operation)詳細な設定のポイント
google geminiGoogle GeminiGenerate Content1. CredentialでGemini APIキーを連携。2. Modelは「gemini-2.5-flash」または「gemini-2.5-pro」を選択。3. Promptにプロンプトと動的なタイトル・記事内容を組み込む。

【Gemini Credentialの設定】 Google Geminiノードの設定画面で「Credential to connect with」から「Create New Credential」を選択し、ステップ0-1で控えておいたAPIキーを貼り付けます。

【プロンプト設定】 Prompt欄に、以下の指示文とデータを入力します。Split Outノードを経由したため、ドラッグ&ドロップでインデックスなしの変数(titledescriptionなど)が取得できるようになります。

記事の内容をそのまま出力してください。

 {Split Outノードの出力から`title`をドラッグ&ドロップ}
{{ $json.title }}

 {Split Outノードの出力から`description`をドラッグ&ドロップ}
{{ $json.description }}

ステップ3:最終結果のGoogle Sheetsへの記録

Google Geminiノードから線を引いて、最後のノードを接続します。

ステップノード検索名選択すべきノード名実行する操作 (Operation)詳細な設定のポイント
6. 記録google sheetsGoogle SheetsAppend Row1. Sheetで「02 一覧」を指定。2. 下部のMappingで、AIの出力データなどを正確に紐付け。

【データマッピングの詳細】

Google SheetsノードのMappingで、シートの列とデータを紐付けます。

02 一覧シートの列取得元ノードとデータ項目
日付Split Outノードの出力から publishedAt
検索ワードGoogle Sheetsノード(最初のノード)から 検索ワード
記事内容Google Geminiノードから text (AIが生成した出力)
URLSplit Outノードの出力から url

【解説】 この表は、ワークフローの最終段階で、AIやNews APIから得られたデータを、Google Sheetsのどの列に挿入するかを示す「データマッピング」の詳細です。publishedAturlといった記事データは、Item Listsノードの出力から取得します。AIの出力データは、Geminiノードではtextフィールドから取得される点を確認してください。

ワークフローの最終実行

すべてのノード接続と設定を確認したら、n8nの画面右上の「Activate (アクティベート)」ボタンをオンにします。まずは「Test Workflow」を実行し、データが正しく流れ、スプレッドシートに記録されることを確認しましょう。

最後に
でもね思うんですよ。
実際GeminiやChatGPTで修正して保存する必要ないですよね苦笑。そのままリストを保存すれば済むことだし。無理やりコストを気にしながらLLMを回す必要ないかな。まぁ勉強したと思って。納得しましょう。
確認が必要なことに自動化は無理がありますよね。

ということで、自動化は定型で決まり。予約投稿とかね。

タイトルとURLをコピーしました