1. Xトレンド応答AIエージェント構築の概要と目的 [0]

1.1. 構築するボットの機能と利点 [0]

  1. ボットの機能: N8Nを使用して、完全に自動化されたX(旧Twitter)トレンド応答ボットを構築する [0]。

    1. トレンドトピックを取得する [8]。
    2. トップ投稿を分析する [1]。
    3. 独自のツイートを作成し投稿する [1]。
    4. ボットはトレンドを閲覧し、人間のように考え、プロのように自動的にツイートする [3]。
  2. 主要な利点:

    1. コーディング経験が不要である [4]。
    2. 有料APIが不要であり、100%無料でホスト可能である [4]。
    3. 完了後、Xアカウントが毎日自己成長する可能性がある [5]。
    4. 完全に自動化されており、コーディングの背景知識なしに構築できる [15]。
  3. 最終的な成果: 自分の代わりにXアカウントを成長させるソーシャルメディアアシスタントを即座に入手できる 。

1.2. ワークフローの全体的な流れ [6]

  1. ワークフローの構造: ワークフローはミニ工場のように機能する [7]。

  2. 処理ステップ:

    1. トレンドチェック: トレンドになっているトピックをチェックする [8]。
    2. ツイート検索: トピックごとにループし、Nita(Twitterデータの代替フロントエンド)を使用して最近のツイートを検索する [9]。
    3. コンテキスト収集: 文脈のために実際のツイートをスクレイピングする [10]。
    4. AI分析: そのデータをGoogle Geminiを搭載したAIエージェントにN8N経由で送信する [11]。
    5. Xへの投稿: AIの応答を受け取り、最終的なツイートをXに投稿する [12]。
  3. 自動化サイクル:

    1. その後、待機し、数時間ごとにサイクル全体を自動的に繰り返す [13]。
    2. これにより、ボットは常にトレンドを把握し、インテリジェントに考え、人間のようなコンテンツクリエイターのようにタイムラインに有益または機知に富んだ投稿を貢献し続ける [14]。

1.3. ワークフローファイルの提供 [16]

  1. ファイル提供: ワークフローのファイルがTelegramチャンネルに追加された [16]。
  2. アクセス方法: 説明欄のリンクを使用してアクセスし、N8Nキャンバスにワークフローを簡単にロードできる [17]。

2. ワークフローの初期設定とトリガー [18]

2.1. ワークフローの開始とスケジュール設定 [18]

  1. 新規ワークフローの作成: 最初に新しいワークフローを作成することから始める [18]。

  2. スケジュールトリガーノードの設定:

    1. ステップ1: スケジュールトリガーノードを追加する [19]。
    2. 機能: このノードはワークフローが実行されるタイミングを制御する [20]。
    3. 実行頻度: 1日2回トリガーするように設定する [22]。
    4. 午前3:00に1回 [23]。
    5. 午前9:00に1回 [24]。
    6. 目的: これにより、早朝と日中のトレンドを捉えることができる [25]。
  3. 時刻設定に関する注記:

    1. 筆者のN8Nはクラウドでホストされており、サーバーが米国(ニューヨーク時間)にあるため、設定時刻はナイジェリア時間に変換される [27]。
    2. 設定時刻(米国時間): 午前3:00と午前9:00 [26]。
    3. ナイジェリア時間: 午後8:00と午後2:00 [29]。
    4. 自己ホスト情報: Render上でN8Nを自己ホストする方法に関する動画が存在する [31]。
  4. クロンスプレッションの設定:

    1. スケジュールトリガーを開き、クロンスプレッションを設定する [33]。
    2. この設定(毎日3:00と9:00実行、ナイジェリア時間で8:00と14:00)はチュートリアルのドキュメントに追加されているため、Telegramチャンネルからダウンロードする必要がある [34]。
    3. カスタマイズ: ボットの投稿頻度を上げたい場合は、例えば毎時にカスタマイズすることも可能である [39]。

2.2. トレンド取得設定ノードの定義 [40]

  1. プロパティ設定ノードの追加:

    1. スケジュールトリガーに接続した後、Setノードを追加する [41]。
    2. このノードを「properties」と名付ける [42]。
  2. 定義する2つの要素: このノードは以下の2点を定義する [43]。

    1. トレンドを取得したい国 [44]。
    2. プルしたいトレンドの総数 [44]。
  3. 具体的な設定値:

    1. 国 (Country): Nigeriaに設定する [45]。
    2. 視聴者はこれをUnited StatesやIndiaなど自分の視聴者に合わせて変更できる [46]。
    3. 空欄のままにすると全世界のトレンドを取得する [48]。
    4. 総投稿数 (Total post): 5に設定する [49]。
    5. ワークフローが長くなりすぎるのを避けるため、値を小さく保つことが推奨される [50]。
    6. 最終確認: 国はNigeria、総投稿数は5に設定される [51]。

3. トレンドデータの取得と整形 [54]

3.1. トレンド24からのHTMLデータ取得 [54]

  1. HTTPリクエストノードの使用: HTTPリクエストノードを使用してデータを取得する [54]。
    1. データソース: Trends 24(国ごとのトレンドトピックをリストする無料ウェブサイト)からデータをフェッチする [55]。
    2. メソッド: GETメソッドを使用する [56]。
    3. URL設定: ウェブURLをペーストする [57]。
    4. URLは説明欄およびドキュメントに含まれている [58]。
    5. 動的URL生成:
    6. URL設定を固定 (fixed) から 式 (expression) に切り替える [59]。
    7. 国 (country) アイテムをURLの末尾にドラッグし、設定した国に応じてURLが動的に変化するようにする [60]。
    8. 認証: 特別なヘッダーや認証は不要である [61]。
    9. 実行結果: ノードを実行すると、大量のHTMLデータが返ってくる。これが生のトレンドデータである [62]。
    10. ノード名: このノードを「get trending post」と命名する [64]。

3.2. トレンドトピックの抽出と整形 [65]

  1. コードノードの追加: Trends 24からのHTML出力を処理し、トレンドトピックを抽出するためにコードノードを追加する [65]。

    1. 言語選択: JavaScriptを選択する [67]。
    2. コードの適用: 以前作成したワークフローに含まれるJavaScriptコードをコピーし、コードノードの入力に貼り付ける [68]。
  2. JavaScriptの処理内容:

    1. HTMLからすべてのリンクを抽出する [71]。
    2. トピック名のみが必要なため、ハッシュタグを除外するフィルタリングを行う [71]。
    3. リストを最初の5つにスライスする [71]。
  3. スライス変数の調整:

    1. スライス部分にはzeroともう一つの変数がある [73]。
    2. ワークフロー名を異なって命名した場合、2番目の変数を削除してもよい [74]。
    3. プロパティセクションに移動し、総投稿数 (total number of post) 変数をドラッグして、既存の変数を置き換える [75]。
  4. 結果の確認と命名:

    1. このノードを実行すると、5つのトレンドトピックのクリーンなリストが得られる [76]。
    2. ワークフローの可読性を確保するため、このノードを「format trending」にリネームする [78]。

4. 各トレンドトピックの個別処理とコンテキスト収集 [80]

4.1. トレンドごとのループ処理の設定 [80]

  1. ループ処理の目的: 抽出された5つのトレンドを個別に処理する [80]。

  2. ループオーバーアイテムノード:

    1. ループオーバーアイテムノードを使用する [81]。
    2. バッチサイズ: 1に設定したままにする [82]。
    3. 動作: 各トレンドを1つずつ取り出し、ワークフローの残りの部分を通過させ、次に進むために戻る動作を繰り返す [83]。
    4. 効果: これにより、各トレンドトピックを個別のタスクとして扱うことができる [84]。
    5. 注意: Replacementノードは削除する [85]。

4.2. Nitaを使用した関連ツイートの取得 [86]

  1. コンテキスト取得の目的: AIエージェントがトピックについて詳細な理解を持ち、トピック外のツイートをしないようにするため、トレンドのコンテキストを取得する [87]。

  2. HTTPリクエストノードの再利用:

    1. Nita(軽量なTwitterフロントエンド)を使用して、そのトレンドに関する最近のツイートを検索するために、別のHTTPリクエストノードを使用する [89]。
    2. チュートリアルのドキュメントにURLが含まれているため、Telegramチャンネルから取得する必要がある [91]。
  3. 動的なURL設定:

    1. HTTPリクエストノードに戻り、URLを式 (expression) に切り替える [94]。
    2. ドキュメントからコピーした式を貼り付ける [95]。
    3. このコードは、現在のトレンドを動的に挿入し、クリーンアップしてからNitaで検索する [96]。
    4. メソッド: 引き続きGETメソッドを使用する [97]。
    5. 実行: ノードを実行すると、ウェブページ全体のHTMLである結果が得られる [98]。
  4. コンテキストの理解:

    1. 取得したウェブURLにアクセスすると、人々が投稿している最近のツイートが表示される [101]。
    2. このツイート群をAIエージェントのコンテキストとして使用し、トレンドが何であるかを理解させる [103]。
    3. AIエージェントは10件のツイートがあればコンテキストを把握できる [104]。
    4. このHTTPリクエストノードを「get tweets」とリネームできる [105]。

4.3. ツイートのフォーマットと要約の生成 [106]

  1. HTMLからツイートオブジェクトへの変換 (コードノード 1):

    1. 別のコードノードを追加する [106]。
    2. 目的: 前のノードから得られたHTML結果をフォーマットするために使用する [107]。
    3. コード適用: ドキュメントからJavaScriptコードをコピーし、コードノードに貼り付ける [108]。
    4. 処理内容: このコードは、乱雑なHTMLを、コンテンツ、ユーザー名、作成者を含む実際のツイートオブジェクトの配列に変換する [111]。
    5. ツイート数の削減: さらに、ツイートを最後の10件に削減する [112]。
    6. リネーム: このノードを「format tweets」とリネームする [113]。
  2. ツイートの統合 (コードノード 2):

    1. さらに別のコードノードを追加する [114]。
    2. 目的: 直前に抽出したすべてのツイートを取り、1つの大きなテキストブロック(要約のようなもの)にマージする [115]。
    3. コード適用: ドキュメントから該当するJavaScriptコードをコピーし、コードノードに貼り付ける [116]。
    4. 実行結果: ノードを実行すると、コンテキストが作成されたテキストが得られる [117]。
    5. このコンテキストをAIエージェントに渡すことができる [118]。

5. AIエージェントによるツイート生成 [119]

5.1. AIエージェントノードの設定とGoogle Geminiの準備 [119]

  1. AIエージェントノードの追加: AIによる完璧なツイート作成のためにAIエージェントノードを追加する [119]。

  2. プロンプト設定:

    1. プロンプトのソースを「Define Below」に変更する [122]。
    2. オプションの追加をクリックし、システムメッセージ (system message) を追加する [123]。
    3. ドキュメントからユーザープロンプトとシステムプロンプトの両方をコピーし、式として貼り付ける [124]。
  3. チャットモデルの選択:

    1. チャットモデルを追加する [125]。
    2. Google Geminiチャットモデルを使用する [126]。
    3. 認証: 使用するには認証情報 (credential) が必要である [127]。
  4. Google Gemini APIキーの取得:

    1. Google Geminiチャットモデルを使用するためのAPIキーを取得するには、Google AI Studioにアクセスする(リンクは動画の説明欄にある) [129]。
    2. Google AI Studioで、サイドバーの下部にある「APIキーを取得 (Get API key)」をクリックする [131]。
    3. ページがロードされたら、「APIキーを作成 (Create API key)」をクリックし、キーに名前を付け、プロジェクトを選択してから作成する [132]。
    4. 取得したAPIキーをGemini認証情報にコピー&ペーストし、接続する [133]。
    5. モデル: モデルについては、現時点ではGemini 2.5 Flashモデルのままである(制限を超過しない限り無料であるため) [133]。
  5. AIエージェントのメモリ設定:

    1. AIエージェントにメモリを追加する [135]。
    2. Simple Memoryを使用する [136]。
    3. セッションID: 「Define Below」に変更し、キーを固定 (fixed) から式 (expression) に切り替える [137]。
    4. 式: ガイドに含まれる式をここに貼り付ける [138]。
    5. セッションIDの生成: この式は、トリガーごとにランダムで一意な文字列を生成し、それをセッションIDとして使用する [139]。
    6. 実行: このノードを実行する [140]。

5.2. AI応答の整形とクリーンアップ [141]

  1. AI応答の確認: AIエージェントからの応答が得られるが、これはJSON形式であり、適切にフォーマットされていない [141]。

  2. 応答のフォーマットとクリーンアップ:

    1. 応答をフォーマットしクリーンアップするために、別のコードノードを追加する [143]。
    2. ガイドからシンプルなJavaScriptコードをコピーし、コードノードに貼り付ける [144]。
    3. このコードが応答をクリーンアップする [145]。
    4. ノードを実行する [146]。
    5. ノード実行中に、ノード名をリネームすることも可能である [147]。
  3. 結果: フォーマットされた応答が得られ、これをXアカウントに投稿できる [148]。

6. Xへの投稿と自動ループの完了 [149]

6.1. X API認証情報の設定と投稿 [149]

  1. HTTPリクエストノードの追加: AIエージェントからの応答をXに投稿するためにHTTPリクエストノードを追加する [149]。

    1. ノード名: 他のものと区別できるように「post to X」と命名する [151]。
  2. APIエンドポイントとメソッド:

    1. URL: ガイドからコピーしたX API URLを貼り付ける [152]。
    2. メソッド: メソッドをGETからPOSTに変更する [153]。
  3. 認証設定:

    1. 認証 (Authentication) を選択し、定義済み (predefined) に変更する [154]。
    2. タイプ (Type) でX O2 APIを検索して選択する [155]。
    3. O2認証情報: これには認証情報が必要である [156]。
    4. 新しい認証情報 (new credential) を選択する [157]。
  4. X開発者認証情報の取得:

    1. 認証情報を取得するには、X開発者アカウントにサインアップまたはサインインする必要がある [159]。
    2. アカウントがない場合は、新しいプロジェクトを作成する [160]。
    3. ページ上の「キーと設定 (Keys and settings)」を選択する [161]。
    4. O2クライアントIDとクライアントシークレットのセクションまでスクロールダウンする [162]。
    5. クライアントIDを取得し、クライアントシークレットを生成する [163]。
    6. これらをN8N設定にコピー&ペーストし、保存する [164]。
    7. 保存後、Twitterアカウントへのサインインを求められる [165]。
    8. サインイン後、接続が確立される [166]。
  5. リクエストボディの設定:

    1. ボディを送信 (send body) をオンにして、POSTリクエストでツイートを送信できるようにする [167]。
    2. ボディコンテンツタイプ: JSONに設定する [168]。
    3. ボディ指定: JSONを使用するように設定する [169]。
    4. テキストフィールド: text = と入力し、ツイート(AIのフォーマット済み応答)をドラッグする [170]。
    5. コピー&ペースト用のバージョンはガイドで確認できる [171]。
    6. 実行: ノードを実行してXに投稿する [172]。

6.2. ワークフローのループバックと完了 [173]

  1. 待機ノードの追加: ボットが一度だけ実行されるのではなく、人間のように投稿を続けるために、投稿後に待機ノード (wait node) を追加する [173]。

  2. 待機時間の定義:

    1. 待機時間を80分に設定する [176]。
    2. これは、投稿後、ワークフローが80分間待機することを意味する [177]。
  3. ループの完了:

    1. 待機後、ループオーバーアイテムノードに戻り、次のトレンドに進む [178]。
    2. これが完了すると、数時間ごとに5つのツイート(各トレンドトピックにつき1つ)が投稿されることになる [179]。
  4. 結論:

    1. これで、N8NとAIを使用して完全に自動化されたXトレンド応答ボットが構築された [180]。
    2. 視聴者は、睡眠中もインテリジェントにトレンドコンテンツを投稿する個人のソーシャルメディアアシスタントを手に入れた [182]。
  5. フィードバックの依頼:

    1. チュートリアルが役立った場合は高評価を付けること [183]。
    2. さらなる自動化チュートリアルについては購読し、見たい他の自動化があればコメントを残すこと [184]。
    3. 視聴への感謝と次回の動画での再会を述べる [185]。