Appearance
Xツイートまとめ 機能セットアップ
「Xツイートまとめ」機能を動作させるには、以下の準備が必要です。
必要なもの
| 項目 | 用途 |
|---|---|
| X API Bearer Token | X(Twitter)からツイートを取得する |
| Gemini API Key | Google Gemini でツイートを要約する(ADM-032) |
1. X API Bearer Token の取得
1-1. X Developer Portal へ登録
- X Developer Portal にアクセス
- X(Twitter)アカウントでサインイン
- 利用規約に同意して Developer アカウントを申請・有効化
1-2. プロジェクトとアプリを作成
- 左メニュー「Projects & Apps」→「Overview」→「+ Add App」をクリック
- アプリ名を入力(例:
slot-kouryaku-summary) - 用途の質問に答えて作成を完了
1-3. Bearer Token を発行
- 作成したアプリの「Keys and tokens」タブを開く
- 「Bearer Token」欄の「Generate」または「Regenerate」をクリック
- 表示されたトークン(
AAAAAAA...の形式)をコピーして、パスワードマネージャなどの安全な場所に保管してください。- Git で追跡されるファイルに直接書き込まない(
.gitignoreで除外しているローカル用 env(例:.localenv)への記載は問題ありません) - タスク / PR / チケット / チャットツール(Slack 等)に貼り付けて共有しない
- 画面キャプチャ(スクリーンショット)や画面共有でトークンが映り込まないようにする
- ログやコンソール出力にトークンを出力しない
- Git で追跡されるファイルに直接書き込まない(
注意: Bearer Token は一度しか表示されません。紛失した場合や、GitHub・チャット等に誤って投稿してしまった場合は、必ず「Regenerate」で再発行し、古いトークンは速やかに無効化してください。
必要な API アクセスレベル
この機能は X API v2 の以下のエンドポイントを使用します:
| エンドポイント | 用途 | 必要な Access Level |
|---|---|---|
GET /2/tweets/search/recent | キーワード検索 | Basic 以上 |
GET /2/users/by/username/:username | ユーザー名 → ID変換 | Free 以上 |
GET /2/users/:id/tweets | ユーザータイムライン取得 | Free 以上 |
注意: 無料プラン(Free)では
tweets/search/recent(キーワード検索)が利用できません。キーワード検索を使う場合は Basic プラン以上が必要です。
2. Gemini API Key の取得
2-1. Google AI Studio へ登録
- Google AI Studio にアクセス
- Google アカウントでサインイン
- 「Create API key」でキーを発行する
2-2. API Key を保管
表示された API Key をコピーして、パスワードマネージャなどの安全な場所に保管してください。
- Git で追跡されるファイルに直接書き込まない(
.gitignoreで除外しているローカル用 env(例:.localenv)への記載は問題ありません) - タスク / PR / チケット / チャットツール(Slack 等)に貼り付けて共有しない
- 画面キャプチャ(スクリーンショット)や画面共有でキーが映り込まないようにする
- ログやコンソール出力にキーを出力しない
注意: キーが漏えいした場合は、Google AI Studio / Cloud Console で無効化し、新しいキーを発行してください。
使用モデル
サイト内 LLM(記事 AI・X 要約)は Gemini 固定です。既定モデルは gemini-2.5-flash(有料記事 AI 設定 ADM-028 で変更可)です。
3. WordPress への設定
ローカル環境でも利用できます。 ローカルの WordPress(例: Local by Flywheel)でテーマを有効にし、以下の管理画面でキーを登録すれば、ツイート取得・要約・下書き保存まで同じ手順で試せます。
3-1. デプロイ(新規環境の場合)
本番環境に初めてデプロイする場合は、通常のデプロイ手順を実行してください。
bash
./bin/build.sh3-2. DI キャッシュの削除
core_src/config/di.php に新しいバインディングが追加されたため、キャッシュを削除して再生成させます。
プロジェクトルートから以下のスクリプトを実行してください:
bash
./bin/clear-php-di-cache.sh本番環境など wp-content が標準パスにない場合は、環境変数で指定します:
bash
WP_CONTENT_DIR=/path/to/wp-content ./bin/clear-php-di-cache.sh3-3. WordPress 管理画面で API キーを登録
- WordPress 管理画面にログイン
- 左メニュー「サイト運営ダッシュボード」→「LLM APIキー設定」(ADM-032)を開き、Gemini API Key を入力して保存
- 「Xツイートまとめ」→「設定」(ADM-009)を開き、「X API Bearer Token」を入力して保存
- 必要なら X ユーザー一覧も同設定画面で登録する
3-4. 接続テスト
- ADM-009「X API テスト」: Bearer Token が正しければ成功メッセージを表示
- ADM-032「Gemini 接続テスト」: Gemini API Key が正しければ成功メッセージを表示
4. 動作確認(4ステップUIに沿ったフロー)
- Step 1: ツイートを取得(取得)
- 管理画面「Xツイートまとめ」のメインページを開く
- 検索方法(ユーザータイムライン or キーワード検索)を選択
- 検索クエリと取得件数を入力して「ツイートを取得」をクリック
- Step 2: ツイートを確認(プレビュー)
- 取得したツイート一覧が期待どおりに表示されていることを確認する
- Step 3: 要約を生成(要約)
- 必要に応じて対象ツイートの選択や除外を行い、「要約を生成」をクリック
- 生成された要約本文を確認し、必要があれば編集する
- Step 4: 下書きを保存(下書き)
- 記事タイトルを入力し「下書きを保存」をクリック
- WordPress 管理画面の「投稿」→「下書き」に新しい記事が保存されていることを確認する
トラブルシューティング
API キーが設定されていないエラー
「Bearer Token が設定されていません」「Gemini API Key が未設定です」というエラーが表示される場合は、3-3. API キーの登録 の手順を確認してください。
X API 接続テストが失敗する
接続テストは ユーザータイムライン(@X のツイート取得)で行います。Bearer Token が正しくても、クレジット残高が 0 だと HTTP 402 で失敗します。
HTTP 401 Unauthorized の場合
- 使用するトークン: 「Keys and tokens」の 「Bearer Token」 を使用してください。API Key and Secret や Access Token and Secret(OAuth 1.0a / OAuth 2.0 ユーザートークン)ではありません。
- 再発行: Developer Portal で「Bearer Token」の Regenerate を実行し、表示されたトークンをその場でコピーして設定画面に貼り付け・保存してください(Bearer Token は 1 アプリあたり 1 本のため、再発行すると古いトークンは無効になります)。
- プロジェクト・アプリ: 対象プロジェクトの Products で Free(または Basic)が付与されているか、アプリが停止・削除されていないか確認してください。
- トークンの動作確認(curl): トークンが X API で有効かどうか、WordPress 外で確認できます。ターミナルで以下を実行し(
YOUR_BEARER_TOKENを実際のトークンに置き換え)、"id":が含まれる JSON が返ればトークンは有効です。401 が返る場合はトークンかアプリの設定を見直してください。bashcurl -s -w "\nHTTP_CODE:%{http_code}" -H "Authorization: Bearer YOUR_BEARER_TOKEN" "https://api.twitter.com/2/users/by/username/X" - 接続テスト失敗時の詳細なエラー内容は、PHP エラーログ(
error_log)の[TwitterFetchService] X API error: ... body=に出力されます。クレジット不足(402)とレート制限(429)は管理画面にも案内を表示します。
HTTP 402 Payment Required / credits depleted の場合
- X API のクレジット残高が不足しています。Developer Portal の Billing / Credits でクレジットを追加してください。
- 接続テストはユーザータイムライン取得を行うため、クレジットが必要です。残高が 0 のままだとテストも取得も失敗します。
- 連打しても残高は増えません。管理画面側でも連続実行を制限しています。
HTTP 429 Too Many Requests の場合
- X API のレート制限に達しています。
- 15分ほど時間をおいてから再度ツイート取得を試してください。連続して取得を繰り返すと 429 になりやすいです。
Gemini API 接続テストが失敗する
- LLM APIキー設定(ADM-032)で Gemini API Key が保存されているか確認してください
- Google AI Studio で該当キーが無効化されていないか確認し、必要なら新規キーを発行して差し替えてください
- 接続テストは ADM-032 の「Gemini 接続テスト」から実行します(ADM-009 にはありません)
管理画面に「Xツイートまとめ」メニューが表示されない
DI キャッシュが古い可能性があります。3-2. DI キャッシュの削除 の手順を実行してください。
関連: 記事 AI からの店舗調査
同じ X API Bearer Token は、記事 AI の店舗調査ツール fetch_hall_x_posts でも使います。Grok(xAI)による調査ツールを含めた手順は 店舗調査(X API / Grok API)セットアップ を参照してください。