API リファレンス

会話

会話履歴の取得を要求

provider=whatsapp の個人チャットのみで過去の履歴を要求します。whatsapp-protocol は対象外です。account_id は空白やスラッシュ(エンコードされたものを含む)のない単一の空でないパス区間である必要があり、不正な場合は 400 invalid_request です。先に conversation.history を購読してください。利用可能なバッチは data.history.source=on_demand を伴って非同期に届きます。HTTP 202 と status=accepted は受理のみを示し、メッセージの受信や完了を意味しません。request_id は HTTP の調査用で、タスク ID やコールバックの関連付けには使えません。バッチは複数、重複、遅延する場合も、届かない場合もあります。続けて取得するには、受信済みのネイティブコンテンツメッセージのうち id、sent_at、direction が揃った最も古いものを before に使います。合成された type=call の記録を除外し、before に type を追加しないでください。次ページのカーソルや完了状態はありません。空のバッチ、limit 未満の件数、タイムアウトは履歴の終端を意味しません。HTTP タイムアウト後もコールバックが届く可能性があるため、自動再試行はしないでください。400 は invalid_request、provider_invalid_request(合成通話をアンカーにした場合を含む)、グループやチャンネルでは unsupported_conversation_type を返します。他のプロバイダーは 501 unsupported_by_provider です。有効なパスでもアカウントが存在しないか現在のワークスペース外なら 404 account_not_found(numeric_code=20020)、未分類の内部エラーは 500 request_conversation_history_failed(numeric_code=37016)です。

POSThttps://api.unifyport.ai/v1/accounts/{account_id}/conversations/history/request

呼び出す前に

対象ワークスペースの X-Api-Key をサーバー側で使用します。実行前にすべてのプレースホルダーを置き換えます。

パラメーターの取得元
account_id
アカウント作成・取得応答の data.id を使います。識別子は X-Api-Key のワークスペースに属します。 アカウント取得

リクエストパラメータ

ヘッダー

X-Api-Key
string必須

ワークスペース API キー。このヘッダーからワークスペースを特定します。

Content-Type
string必須

JSON のリクエストボディを送る場合は application/json を使用します。

パスパラメータ

account_id
string必須

conversations ルートで使用される識別子。

リクエストボディ

conversation_id
string必須

^[0-9]+@lid$ に一致する WhatsApp の標準個人チャット LID。before と同じ会話に属する必要があります。電話番号や他の会話タイプは使用できません。

pattern: ^[0-9]+@lid$

before
object必須

同じ会話内の単一のネイティブコンテンツメッセージの位置。全フィールドはそのメッセージから取得し、null は不可です。合成された type=call の通話記録は 3 フィールドが揃っていても無効です。リクエストに type を含めないでください。

message_id
string必須

空白以外の文字を含むネイティブコンテンツメッセージの id。合成通話記録の ID は前後の空白を除去しても無効です。トップレベルのイベント id や HTTP request_id で代用できません。

minLength: 1 · pattern: \S

sent_at
string必須

そのメッセージの RFC3339 送信日時。Unix 秒は 0 より大きい必要があります。イベントの occurred_at や現在時刻で代用できません。

format: date-time

direction
string必須

現在のアカウントから見た方向。inbound は受信、outbound は送信です。

enum: inbound, outbound

limit
integer

要求件数であり、実際の取得件数は保証されません。省略時のみ既定値は 50。null、0、整数以外、50 超は invalid_request になります。有効範囲は 1..50 です。

minimum: 1 · maximum: 50

結果の確認

記載された応答項目と HTTP 状態を確認します。204 成功には本文がありません。診断には X-Request-Id を使い、次は関連操作を参照します。

レスポンス 202 Accepted

{
  "request_id": "<REQUEST_ID>",
  "data": {
    "status": "accepted",
    "conversation_id": "100000000000002@lid",
    "limit": 50
  }
}

レスポンスボディ

status
string

accepted confirms request acceptance only, not receipt of history or completion.

enum: accepted

conversation_id
string

Standard conversation ID for this history request.

limit
integer

Effective requested count limit for this history request, from 1 to 50.

minimum: 1 · maximum: 50

レスポンス

202

202 Accepted

リクエスト成功。レスポンスボディの例を参照してください。

400

Bad Request

リクエストボディ、パス、またはパラメータが不正です。

401

Unauthorized

X-Api-Key ヘッダが欠落しているか無効です。

404

Not Found

要求されたプロバイダリソースが見つかりません。

409

Conflict

要求された操作が、既存のプロバイダアカウントまたはリソースと競合しています。

500

Internal Server Error

サービスで予期しないエラーが発生しました。

501

Not Implemented

選択したプロバイダはこの操作を実装していません。

502

Bad Gateway

プロバイダアダプタまたは上流サービスが操作を完了できませんでした。

失敗時の対応

HTTP 状態と error.code/numeric_code を確認し、request_id を保存します。原因に応じてパラメーター修正・認証・状態確認を行い、送信や書き込みの再試行前に前回の結果を確認します。 エラーリファレンス

invalid_request · 10000 · 400
必須項目、形式、チャネルの条件を確認して修正します。
invalid_api_key · 11001 · 401
X-Api-Key とワークスペースの有効性を確認します。