会話
会話履歴の取得を要求
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)です。
https://api.unifyport.ai/v1/accounts/{account_id}/conversations/history/request呼び出す前に
対象ワークスペースの X-Api-Key をサーバー側で使用します。実行前にすべてのプレースホルダーを置き換えます。
パラメーターの取得元
- account_id
- アカウント作成・取得応答の data.id を使います。識別子は X-Api-Key のワークスペースに属します。 アカウント取得
リクエストパラメータ
ヘッダー
X-Api-Keyワークスペース API キー。このヘッダーからワークスペースを特定します。
Content-TypeJSON のリクエストボディを送る場合は application/json を使用します。
パスパラメータ
account_idconversations ルートで使用される識別子。
リクエストボディ
conversation_id^[0-9]+@lid$ に一致する WhatsApp の標準個人チャット LID。before と同じ会話に属する必要があります。電話番号や他の会話タイプは使用できません。
pattern: ^[0-9]+@lid$
beforeobject必須同じ会話内の単一のネイティブコンテンツメッセージの位置。全フィールドはそのメッセージから取得し、null は不可です。合成された type=call の通話記録は 3 フィールドが揃っていても無効です。リクエストに type を含めないでください。
before同じ会話内の単一のネイティブコンテンツメッセージの位置。全フィールドはそのメッセージから取得し、null は不可です。合成された type=call の通話記録は 3 フィールドが揃っていても無効です。リクエストに type を含めないでください。
message_id空白以外の文字を含むネイティブコンテンツメッセージの id。合成通話記録の ID は前後の空白を除去しても無効です。トップレベルのイベント id や HTTP request_id で代用できません。
minLength: 1 · pattern: \S
sent_atそのメッセージの RFC3339 送信日時。Unix 秒は 0 より大きい必要があります。イベントの occurred_at や現在時刻で代用できません。
format: date-time
direction現在のアカウントから見た方向。inbound は受信、outbound は送信です。
enum: inbound, outbound
limit要求件数であり、実際の取得件数は保証されません。省略時のみ既定値は 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
}
}
レスポンスボディ
statusaccepted confirms request acceptance only, not receipt of history or completion.
enum: accepted
conversation_idStandard conversation ID for this history request.
limitEffective requested count limit for this history request, from 1 to 50.
minimum: 1 · maximum: 50
レスポンス
202202 Accepted
リクエスト成功。レスポンスボディの例を参照してください。
400Bad Request
リクエストボディ、パス、またはパラメータが不正です。
401Unauthorized
X-Api-Key ヘッダが欠落しているか無効です。
404Not Found
要求されたプロバイダリソースが見つかりません。
409Conflict
要求された操作が、既存のプロバイダアカウントまたはリソースと競合しています。
500Internal Server Error
サービスで予期しないエラーが発生しました。
501Not Implemented
選択したプロバイダはこの操作を実装していません。
502Bad Gateway
プロバイダアダプタまたは上流サービスが操作を完了できませんでした。
失敗時の対応
HTTP 状態と error.code/numeric_code を確認し、request_id を保存します。原因に応じてパラメーター修正・認証・状態確認を行い、送信や書き込みの再試行前に前回の結果を確認します。 エラーリファレンス
- invalid_request · 10000 · 400
- 必須項目、形式、チャネルの条件を確認して修正します。
- invalid_api_key · 11001 · 401
- X-Api-Key とワークスペースの有効性を確認します。