Skip to content

Xツイートまとめ 機能セットアップ

PR #1155 でマージされた「Xツイートまとめ」機能を動作させるには、以下の準備が必要です。

必要なもの

項目用途
X API Bearer TokenX(Twitter)からツイートを取得する
Claude API KeyAnthropic Claude でツイートを要約する

1. X API Bearer Token の取得

1-1. X Developer Portal へ登録

  1. X Developer Portal にアクセス
  2. X(Twitter)アカウントでサインイン
  3. 利用規約に同意して Developer アカウントを申請・有効化

1-2. プロジェクトとアプリを作成

  1. 左メニュー「Projects & Apps」→「Overview」→「+ Add App」をクリック
  2. アプリ名を入力(例: slot-kouryaku-summary
  3. 用途の質問に答えて作成を完了

1-3. Bearer Token を発行

  1. 作成したアプリの「Keys and tokens」タブを開く
  2. 「Bearer Token」欄の「Generate」または「Regenerate」をクリック
  3. 表示されたトークン(AAAAAAA... の形式)をコピーして、パスワードマネージャなどの安全な場所に保管してください。
    • Git で追跡されるファイルに直接書き込まない.gitignore で除外しているローカル用 env(例: .localenv)への記載は問題ありません)
    • Issue / PR / チケット / チャットツール(Slack 等)に貼り付けて共有しない
    • 画面キャプチャ(スクリーンショット)や画面共有でトークンが映り込まないようにする
    • ログやコンソール出力にトークンを出力しない

注意: 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. Claude API Key の取得

2-1. Anthropic Console へ登録

  1. Anthropic Console にアクセス
  2. アカウントを作成またはサインイン
  3. 支払い方法を設定(APIは従量課金制)

2-2. API Key を発行

  1. 左メニュー「API Keys」→「+ Create Key」をクリック
  2. キー名を入力(例: slot-kouryaku-summary
  3. 「Create Key」をクリック
  4. 表示された API Key(sk-ant-api... の形式)をコピーして、パスワードマネージャなどの安全な場所に保管してください。
    • Git で追跡されるファイルに直接書き込まない.gitignore で除外しているローカル用 env(例: .localenv)への記載は問題ありません)
    • Issue / PR / チケット / チャットツール(Slack 等)に貼り付けて共有しない
    • 画面キャプチャ(スクリーンショット)や画面共有でキーが映り込まないようにする
    • ログやコンソール出力にキーを出力しない

注意: API Key は一度しか表示されません。紛失した場合や誤って外部に漏えいした場合は、速やかに無効化して新しいキーを発行してください。

使用モデルと料金の目安

この機能は claude-3-haiku-20240307(最も低コストのモデル)を使用します。1回の要約生成あたりの入力トークン数はツイート数に依存します(20件で概ね 1,000〜3,000 トークン程度)。


3. WordPress への設定

ローカル環境でも利用できます。 ローカルの WordPress(例: Local by Flywheel)でテーマを有効にし、以下 3-3 の管理画面で API キーを登録すれば、ツイート取得・要約・下書き保存まで同じ手順で試せます。

3-1. デプロイ(新規環境の場合)

本番環境に初めてデプロイする場合は、通常のデプロイ手順を実行してください。

bash
./bin/build.sh

3-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.sh

3-3. WordPress 管理画面で API キーを登録

  1. WordPress 管理画面にログイン
  2. 左メニュー「Xツイートまとめ」→「設定」を開く
  3. 「X API Bearer Token」欄に取得した Bearer Token を入力
  4. 「Claude API Key」欄に取得した API Key を入力
  5. 設定を保存」をクリック

3-4. 接続テスト

設定ページの「接続テスト」ボタンで各 API への接続を確認できます。

  • X API テスト」: Bearer Token が正しく設定されていれば「接続に成功しました」と表示
  • Claude API テスト」: API Key が正しく設定されていれば「接続に成功しました」と表示

4. 動作確認(4ステップUIに沿ったフロー)

  1. Step 1: ツイートを取得(取得)
    • 管理画面「Xツイートまとめ」のメインページを開く
    • 検索方法(ユーザータイムライン or キーワード検索)を選択
    • 検索クエリと取得件数を入力して「ツイートを取得」をクリック
  2. Step 2: ツイートを確認(プレビュー)
    • 取得したツイート一覧が期待どおりに表示されていることを確認する
  3. Step 3: 要約を生成(要約)
    • 必要に応じて対象ツイートの選択や除外を行い、「要約を生成」をクリック
    • 生成された要約本文を確認し、必要があれば編集する
  4. Step 4: 下書きを保存(下書き)
    • 記事タイトルを入力し「下書きを保存」をクリック
    • WordPress 管理画面の「投稿」→「下書き」に新しい記事が保存されていることを確認する

トラブルシューティング

API キーが設定されていないエラー

「Bearer Token が設定されていません」「Claude API Key が設定されていません」というエラーが表示される場合は、3-3. API キーの登録 の手順を確認してください。

X API 接続テストが失敗する

接続テストは ユーザータイムライン(@X のツイート取得)で行うため、Free プランでも利用可能です。

  • HTTP 401 Unauthorized の場合

    • 使用するトークン: 「Keys and tokens」の 「Bearer Token」 を使用してください。API Key and SecretAccess 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 が返る場合はトークンかアプリの設定を見直してください。
      bash
      curl -s -w "\nHTTP_CODE:%{http_code}" -H "Authorization: Bearer YOUR_BEARER_TOKEN" "https://api.twitter.com/2/users/by/username/X"
    • 接続テスト失敗時の詳細なエラー内容は、UI には表示されません。PHP エラーログ(error_log)に出力される [TwitterFetchService] X API error: ... body= の行を確認してください。
  • HTTP 429 Too Many Requests の場合

    • X API のレート制限に達しています。Free プランではリクエスト数に上限があります。
    • 15分ほど時間をおいてから再度ツイート取得を試してください。連続して取得を繰り返すと 429 になりやすいです。

Claude API 接続テストが失敗する

  • 「credit balance is too low」と表示される場合
    • Anthropic のクレジット残高が不足しています。Anthropic Console の「Plans & Billing」でクレジットの購入またはプランのアップグレードを行ってください。
  • HTTP 400 の場合(上記以外)
    • API Key が正しくコピーされているか確認してください(先頭の sk-ant-api03- を含め、前後のスペース・改行なし)
    • Anthropic Console で該当キーが無効化されていないか確認し、必要なら新規キーを発行して差し替えてください
  • Anthropic Console で支払い方法が設定されているか確認してください
  • 利用規約・地域制限に抵触していないか確認してください

管理画面に「Xツイートまとめ」メニューが表示されない

DI キャッシュが古い可能性があります。3-2. DI キャッシュの削除 の手順を実行してください。


参考リンク