「せっかく自動投稿Botを作ったのに、3日でアカウントが凍結された…」
「APIの制限が厳しすぎて、何が正解かわからない…」
X(旧Twitter)のAPI仕様変更以降、機械的なBotへの風当たりは強くなる一方です。しかし、エンジニアの視点で見れば、凍結されるBotには共通の「機械的な特徴」があります。
逆に言えば、その特徴さえ消してしまえば、n8nを使って安全に自動運用を続けることは可能です。
本記事では、「AIによる投稿内容の揺らぎ」と「投稿時間のランダム化」を組み合わせた、限りなく人間に近い自動投稿システムの作り方を解説します。
【結論】凍結対策の鍵は「完全なランダム性」にあり
Xのアルゴリズムに目をつけられないための鉄則は以下の2点です。
- 重複コンテンツを避ける: 過去と同じ文章を二度と投稿しない(AIで毎回言い回しを変える)。
- 定時投稿を避ける: 「毎日9時00分00秒」のような機械的なリズムを崩す。
n8nを使えば、この2つを技術的に解決できます。
X API (Free Plan) の現状と準備
まず、2025年現在の無料API(Free Plan)の仕様を理解しておきましょう。
- できること: ツイートの投稿(月間1,500件まで)。
- できないこと: タイムラインの取得、リプライの検知(これらは有料のBasicプランが必要)。
つまり、「リプライに自動返信」は無料では無理ですが、「一方的な情報発信」なら無料枠で十分可能です。
事前準備: X Developer Portalでの設定
- X Developer Portal にアクセスし、ProjectとAppを作成します。
- User authentication settings を編集します。
- App permissions: 「Read and Write」を選択(これがないと投稿できません)。
- Type of App: 「Web App, Automated App or Bot」を選択。
- Callback URI / Redirect URL: n8nのTwitterノード設定画面に表示されるURL(例:
https://your-n8n.com/rest/oauth2-credential/callback)を貼り付けます。
- Client ID と Client Secret を取得してメモします。
【完全ガイド】Bot感を消すワークフロー構築手順
Step 1: 定時トリガー + 「ランダムな待ち時間」
「毎日9時」にトリガーを発火させますが、実際に投稿するのは9時05分かもしれないし、9時23分かもしれません。この「ズレ」を作ります。
- Schedule Trigger ノードを設置(例: 毎日9:00)。
- その直後に Wait ノードを繋ぎます。
- Waitノードの設定を変更します。
- Resume: After Time Interval
- Wait Amount: 右側の歯車アイコンから Expression を開き、以下の数式を入力します。
{{ Math.floor(Math.random() * 30) + 1 }}
※これで「1分〜30分」の間で毎回ランダムな待ち時間が発生します。
Step 2: AIによる「コンテンツのリライト」
スプレッドシートやRSSからネタを取得した後、そのまま投稿してはいけません。必ずAIを通します。
- OpenAI ノードを設置します。
- Prompt: 以下のような指示を与えます。
以下のトピックについて、X(Twitter)向けの投稿文を作成してください。
トピック: {{ $json.topic }}
# ルール
- 140文字以内。
- 絵文字を1つか2つ使うこと。
- 毎回違うトーン(時には真面目に、時にはフレンドリーに)で書くこと。
- ハッシュタグは2個まで。
これにより、同じニュース記事を扱う場合でも、毎回全く異なる文章が生成されます。
Step 3: Xへの投稿設定
- Twitter ノードを設置します。
- Authentication: OAuth2 API を選択し、事前準備で取得したClient ID/Secretを入力して接続します。
- Text: OpenAIノードが出力したテキスト(
{{ $json.content }})をマッピングします。
運用上の注意点とトラブルシューティング
Q: “403 Forbidden” エラーが出る
原因: X Developer Portal側で、権限が「Read only」になっている可能性が高いです。
対策: App Settingsに戻り、「Read and Write」に変更して保存した後、n8n側で認証情報(Credential)を再接続(Reconnect)してください。
Q: API制限(429 Too Many Requests)にかかる
無料プランの上限は「1日50ツイート」かつ「月間1,500ツイート」です。テスト実行で何度も連打するとすぐに上限に達します。
自動化は「1日3〜5ツイート」程度に抑えるのが安全圏です。
まとめ:人間らしさは「不完全さ」に宿る
Bot判定を避ける究極のコツは、「きっちりしすぎないこと」です。
- 時間をずらす(Waitノード)
- 表現を変える(AIノード)
この2つをn8nに組み込むだけで、あなたのBotは驚くほど人間らしく振る舞い始めます。まずは無料のFreeプラン範囲内で、小さく運用を開始してみてください。
参考文献・リンク
- X API Documentation – 最新のAPI仕様
- n8n Docs: Twitter Node


コメント