コンテンツにスキップ
Twexapi
日本語
Esc
移動開く⌘Jプレビュー
このページの内容

エラー処理

TwexAPI の HTTP エラー、MCP ツール失敗、クレジット制限、書き込みアクションのリトライから復旧する。

TwexAPI のエラーは 2 層に分かれます。MCP JSON-RPC エラー(ツール実行前の認証)と REST HTTP エラー(API に到達した後)。ステータスコード、レスポンスボディ、カーソル、ID を保持し、リトライと人間による確認を安全に保ちましょう。

REST レスポンスエンベロープ

成功時:

{
  "code": 200,
  "msg": "success",
  "data": {}
}

HTTP ステータスが 2xx でない場合、ボディに code があっても失敗として扱います。ボディ全体、リクエストパス、消費済みカーソルをログに残してください。

HTTP ステータス別の復旧

ステータス 意味 対処法
400 無効なクエリ、欠落フィールド、不正なボディ 入力を修正。そのままリトライしない。
401 API キー欠落または無効 dashboard から認証情報を差し替え。Authorization: Bearer 形式を確認。
403 クレジット枯渇、アカウント制限、アクション不可 Get Balance を確認。チャージするか、書き込みステップを外す。
404 ツイート、ユーザー、リスト、リソース未検出 ID、スクリーン名、カーソルの鮮度を確認。
422 構造化入力の検証失敗 エンドポイントページのスキーマフィールドを修正。そのままリトライしない。
429 レート制限超過 Rate Limits でバックオフ。next_cursor と完了行を保持。
5xx 一時的なサービスまたは上流取得失敗 指数バックオフと上限付きでリトライ。

クレジットと残高

従量課金の読み取り・書き込みはアカウントクレジットを消費します。多ページ処理では、長時間ジョブの前後に残高を確認しましょう。

curl --request GET \
  --url 'https://api.twexapi.io/balance' \
  --header 'Authorization: Bearer YOUR_API_KEY'

403 がクレジットやアクセスに言及する場合:

  1. API を叩き続けるスケジュールジョブを停止。
  2. ダッシュボードで残高を確認。
  3. クレジット復旧後、最後に保存したカーソルから再開。

ページネーション安全なリトライ

検索、フォロワー、タイムライン、DM 履歴では:

  • next_cursorhas_next_pagetask_id をエージェント会話の外に保存。
  • 4295xx 後は同じカーソルでリトライ(次ページではない)。
  • 400404422 後は ID とクエリパラメータを確認してからリトライ。

書き込みアクション

書き込みエンドポイント(ツイート、返信、いいね、フォロー、DM 送信)には以下が必要です。

  • 有効な TwexAPI API キー
  • リクエスト上の保存済み Twitter cookie または auth_token

復旧ルール:

状況 推奨アクション
書き込みで 401 リトライ前に API キーと cookie 認証情報を修正。
書き込みで 403 クレジットと接続アカウントの権限を確認。
成功が曖昧 読み取りエンドポイントでツイート、DM、エンゲージメント状態を確認してから重複実行。
エージェントワークフロー read_only: false の MCP 呼び出し前に人間の承認を必須に。

TwexAPI は別途の書き込みポーリング API を提供していません。副作用を繰り返す前に、べき等な読み取りチェック(ツイート参照、DM ステータス)を優先。cookie 設定と 403 復旧は。

MCP エラー

ツール実行前の認証失敗

MCP 認証が失敗すると、exploretwexapi_request は実行されません。

{
  "jsonrpc": "2.0",
  "error": {
    "code": 401,
    "message": "Missing MCP API token"
  }
}

MCP クライアントの x-api-key または Authorization: Bearer を修正し、ツール呼び出しを再実行してください。

twexapi_request 経由の API エラー

基盤 REST 呼び出しが失敗した場合、ツール結果を保持します。

{
  "status_code": 403,
  "endpoint": "get_global_trending_tweets",
  "method": "GET",
  "path": "/twitter/global-trending/tweets",
  "result": {
    "detail": "Credits exhausted or action not allowed."
  }
}

上記 HTTP 復旧表と同じ対応を適用。ルートが変わった可能性がある場合のみ explore を再呼び出し — モデルに新パスを推測させないでください。

SDK と CLI のエラー

生成 SDK は HTTP 失敗を言語ネイティブな例外にマップします。ジョブ境界で catch し、ステータスコードとレスポンスボディをログ、429/5xx はリトライポリシーへ。

Python 例:

import requests

try:
    response = requests.get(
        "https://api.twexapi.io/balance",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        timeout=30,
    )
    response.raise_for_status()
except requests.HTTPError as exc:
    status = exc.response.status_code
    body = exc.response.text
    if status == 429:
        # Back off, preserve cursor, retry later
        ...
    elif status in (400, 404, 422):
        # Fix input; do not retry unchanged
        ...
    raise

言語別パターンは各 SDK ページ を参照してください。

リトライバックオフテンプレート

4295xx には上限付き指数バックオフ:

retry_delays_seconds = [5, 15, 45, 120]

for delay in retry_delays_seconds:
    response = call_twexapi()
    if response.ok:
        break
    if response.status_code in (429, 500, 502, 503, 504):
        time.sleep(delay)
        continue
    break  # 4xx other than 429: stop and fix input

バックオフは Rate Limits と組み合わせ、429 直後にフル QPS でジョブを再開しないようにしましょう。

フレームワーク別メモ

実行環境 推奨事項
LangChain ハンドオフモデルを検証。401 でグラフを停止。
Prefect ジッター付きタスクリトライ。カーソルはタスク状態に保存。
n8n / Zapier / Make 401/403 は運用アラートへ。429 リプレイは遅延。
MCP agents 部分成功後に next_cursor を破棄しない。

関連ページ

このページは役に立ちましたか?