投稿とコメント
最上位コメントに返信
TikTok の自身の投稿で確認済みの最上位コメントのみ。他のプロバイダや確認済みの入れ子の対象は 501 unsupported_by_provider。完全な検証後は 404 post_not_found(39000)または comment_not_found(39001)となり得ますが、後者は全返信を検索した意味ではありません。403 post_inaccessible(39005)は原因や不在を示さず、検証未完了では書き込みません。accepted は表示、配信、Webhook を保証しません。書き込み後に結果を確認できなければ 502 reply_post_comment_failed(39004)となり、結果は不明です。自動再送しないでください。後で返信が見つからなくても未作成の証明にはなりません。
https://api.unifyport.ai/v1/accounts/{account_id}/posts/comments/reply対応チャネル
呼び出す前に
対象ワークスペースの X-Api-Key をサーバー側で使用します。実行前にすべてのプレースホルダーを置き換えます。
パラメーターの取得元
- account_id
- アカウント作成・取得応答の data.id を使います。識別子は X-Api-Key のワークスペースに属します。 アカウント取得
リクエストパラメータ
ヘッダー
X-Api-Keyワークスペース API キー。このヘッダーからワークスペースを特定します。
Content-TypeJSON のリクエストボディを送る場合は application/json を使用します。
パスパラメータ
account_idaccounts ルートで使用される識別子。
リクエストボディ
post_idプロバイダの投稿 ID を文字列のまま渡します。TikTok は先頭ゼロのない正の十進整数文字列を要求し、それ以外は 400 provider_invalid_request です。
minLength: 1 · pattern: \S
comment_id確認済み最上位コメントのプロバイダ ID。空白だけではない文字列をそのまま渡し、数値に変換しないでください。
minLength: 1 · pattern: \S
text返信本文には空白以外の文字が必要です。前後の空白も含め原文を保持します。
minLength: 1 · pattern: \S
結果の確認
accepted は受付だけを表し、表示、配信、Webhook の発生を保証しません。書き込み後の 502 reply_post_comment_failed では結果が不明な場合があるため、自動再送しないでください。後の取得で返信がなくても、未作成とは断定できません。
レスポンス 200 OK
{
"request_id": "<REQUEST_ID>",
"data": {
"status": "accepted"
}
}
レスポンスボディ
statusaccepted は受付のみを示し、表示、配信や Webhook の受信を保証しません。
enum: accepted
commentobject新規コメントの確実な受付結果が取得できた場合のみ含まれ、毎回あるとは限りません。
comment新規コメントの確実な受付結果が取得できた場合のみ含まれ、毎回あるとは限りません。
idプロバイダ識別子。空白だけではない文字列をそのまま保持し、数値に変換しないでください。
minLength: 1 · pattern: \S
post_idプロバイダ識別子。空白だけではない文字列をそのまま保持し、数値に変換しないでください。
minLength: 1 · pattern: \S
text確実に取得できた原文を空文字列も含め保持します。不明なら省略します。
authorobject取得できた場合の投稿者情報。
author取得できた場合の投稿者情報。
idプロバイダ識別子。空白だけではない文字列をそのまま保持し、数値に変換しないでください。
minLength: 1 · pattern: \S
display_name確実に取得できた原文を空文字列も含め保持します。不明なら省略します。
avatar_url確実に取得できた空でないアバター URL。不明なら省略します。
minLength: 1
created_at確実に取得できたコメント作成時刻。RFC3339 UTC 形式で、不明なら省略し、観測時刻で代用しません。
format: date-time
parent_comment_id親子関係を確認できた場合のみ提供します。省略されても返信可能な最上位コメントとは限りません。
minLength: 1 · pattern: \S
レスポンス
200200 OK
リクエスト成功。レスポンスボディの例を参照してください。
400Bad Request
リクエストボディ、パス、またはパラメータが不正です。
401Unauthorized
X-Api-Key ヘッダが欠落しているか無効です。
403Forbidden
リクエストは識別されましたが、この操作は許可されていません。
404Not Found
要求されたリソースが見つかりません。error.code と現在の操作を合わせて確認してください。
409Conflict
要求された操作が、既存のプロバイダアカウントまたはリソースと競合しています。
501Not Implemented
選択したプロバイダはこの操作を実装していません。
502Bad Gateway
プロバイダアダプタまたは上流サービスが操作を完了できませんでした。
失敗時の対応
投稿、確認済みの最上位コメント、エラー分類を確認します。書き込み結果が不明なら request_id を保存して調査し、その後に再送を判断します。後の取得で返信がないことだけを再試行の根拠にしないでください。 エラーリファレンス
HTTP ステータス、error.code、error.numeric_code を現在の操作と合わせて確認します。数値コードは文字列です。request_id は調査用で、冪等性キーやタスク ID ではありません。
- invalid_request · 10000 · 400
JSON 本文と必須項目を確認してください。
対処と再試行: 操作とチャネルの条件に従ってパラメーターを修正してから再実行します。同じ無効なリクエストを繰り返しても解決しません。
JSON の例です。message は実際の原因によって変わります · 400 · 10000
{ "request_id": "req_example", "error": { "code": "invalid_request", "numeric_code": "10000", "message": "Invalid request parameters" } }- invalid_target_workspace · 11003 · 400
上書き対象のワークスペースが空、または形式が無効です。上書き用ヘッダーを削除し、対象ワークスペースの API Key を使用してください。
発生条件: ワークスペースを上書きする X-Workspace-Id リクエストヘッダーを送った場合に適用されます。
対処と再試行: 操作とチャネルの条件に従ってパラメーターを修正してから再実行します。同じ無効なリクエストを繰り返しても解決しません。
JSON の例です。message は実際の原因によって変わります · 400 · 11003
{ "request_id": "req_example", "error": { "code": "invalid_target_workspace", "numeric_code": "11003", "message": "Invalid target workspace" } }- provider_invalid_request · 30001 · 400
チャネル固有の項目と形式を確認してください。
対処と再試行: 操作とチャネルの条件に従ってパラメーターを修正してから再実行します。同じ無効なリクエストを繰り返しても解決しません。
JSON の例です。message は実際の原因によって変わります · 400 · 30001
{ "request_id": "req_example", "error": { "code": "provider_invalid_request", "numeric_code": "30001", "message": "Provider rejected the request" } }- invalid_api_key · 11001 · 401
API Key が正しく有効か確認してください。
対処と再試行: request_id と構造化されたコードを保存し、現在の操作を調査してから次の対応を決めます。
JSON の例です。message は実際の原因によって変わります · 401 · 11001
{ "request_id": "req_example", "error": { "code": "invalid_api_key", "numeric_code": "11001", "message": "Invalid API key" } }- missing_api_key · 11000 · 401
X-Api-Key ヘッダーを追加してください。
対処と再試行: request_id と構造化されたコードを保存し、現在の操作を調査してから次の対応を決めます。
例 · 401 · 11000
{ "request_id": "req_xxx", "error": { "code": "missing_api_key", "numeric_code": "11000", "message": "Missing X-Api-Key header" } }- post_inaccessible · 39005 · 403
アカウントと、この API で実際に必要な対象の識別子を確認します。post_not_found は投稿の不存在が確認されたことを表します。comment_not_found は検証後に対象の最上位コメントが見つからないことを表し、すべての返信を検索したとは限りません。post_inaccessible はアクセス不能を表し、不存在や原因を確定しません。エラーを保存し、調査してから次の操作を選びます。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 403 · 39005
{ "request_id": "req_example", "error": { "code": "post_inaccessible", "numeric_code": "39005", "message": "Post is not accessible" } }- workspace_override_forbidden · 11002 · 403
この API Key に許可されていないワークスペースの上書きを要求しています。上書き用ヘッダーを削除し、対象ワークスペースの API Key を使用してください。
発生条件: ワークスペースを上書きする X-Workspace-Id リクエストヘッダーを送った場合に適用されます。
対処と再試行: request_id と構造化されたコードを保存し、現在の操作を調査してから次の対応を決めます。
JSON の例です。message は実際の原因によって変わります · 403 · 11002
{ "request_id": "req_example", "error": { "code": "workspace_override_forbidden", "numeric_code": "11002", "message": "Workspace override is not allowed" } }- account_not_found · 20020 · 404
account_id を確認し、アカウントが属するワークスペースの X-Api-Key を使います。このワークスペースにないアカウントには現在のキーでアクセスできません。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 404 · 20020
{ "request_id": "req_example", "error": { "code": "account_not_found", "numeric_code": "20020", "message": "Account not found" } }- comment_not_found · 39001 · 404
アカウントと、この API で実際に必要な対象の識別子を確認します。post_not_found は投稿の不存在が確認されたことを表します。comment_not_found は検証後に対象の最上位コメントが見つからないことを表し、すべての返信を検索したとは限りません。post_inaccessible はアクセス不能を表し、不存在や原因を確定しません。エラーを保存し、調査してから次の操作を選びます。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 404 · 39001
{ "request_id": "req_example", "error": { "code": "comment_not_found", "numeric_code": "39001", "message": "Comment not found" } }- post_not_found · 39000 · 404
アカウントと、この API で実際に必要な対象の識別子を確認します。post_not_found は投稿の不存在が確認されたことを表します。comment_not_found は検証後に対象の最上位コメントが見つからないことを表し、すべての返信を検索したとは限りません。post_inaccessible はアクセス不能を表し、不存在や原因を確定しません。エラーを保存し、調査してから次の操作を選びます。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 404 · 39000
{ "request_id": "req_example", "error": { "code": "post_not_found", "numeric_code": "39000", "message": "Post not found" } }- target_workspace_not_found · 11004 · 404
上書きで指定したワークスペースが存在しないか利用できません。所有範囲を確認し、上書き用ヘッダーを削除して対象ワークスペースの API Key を使用します。再試行で権限は増えません。
発生条件: ワークスペースを上書きする X-Workspace-Id リクエストヘッダーを送った場合に適用されます。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 404 · 11004
{ "request_id": "req_example", "error": { "code": "target_workspace_not_found", "numeric_code": "11004", "message": "Target workspace not found" } }- account_binding_not_found · 30006 · 409
有効なチャネル接続への紐付けがありません。アカウントの状態を確認してください。
対処と再試行: 認証と実行状態を照会し、目的の状態とチャネルの対応範囲に応じて更新・起動・再接続を選びます。接続の問題だけではログアウトしたとは判断できません。接続が必要な業務操作の前に running を確認してください。
JSON の例です。message は実際の原因によって変わります · 409 · 30006
{ "request_id": "req_example", "error": { "code": "account_binding_not_found", "numeric_code": "30006", "message": "Account is not bound to an available server" } }- provider_not_ready · 30009 · 409
接続が未準備です。認可と runtime_status を確認してから再試行を判断してください。
対処と再試行: 認証と実行状態を照会し、目的の状態とチャネルの対応範囲に応じて更新・起動・再接続を選びます。接続の問題だけではログアウトしたとは判断できません。接続が必要な業務操作の前に running を確認してください。
JSON の例です。message は実際の原因によって変わります · 409 · 30009
{ "request_id": "req_example", "error": { "code": "provider_not_ready", "numeric_code": "30009", "message": "Provider client is not ready" } }- unsupported_by_provider · 30003 · 501
チャネルが未対応です。対応表から利用可能な操作を選んでください。
対処と再試行: ドキュメントで対応しているチャネルと操作を選びます。同じリクエストを繰り返しても機能やベータ権限は追加されません。
例 · 501 · 30003
{ "request_id": "req_xxx", "error": { "code": "unsupported_by_provider", "numeric_code": "30003", "message": "Operation not supported by this provider" } }- provider_unavailable · 30002 · 502
チャネルサービスを利用できません。状態を確認するか後で再試行してください。書き込みは前回の結果を先に確認してください。
対処と再試行: 再送する前に元のメッセージや返信が作成されたか確認します。タイムアウトやエラー応答後は結果不明の場合があります。後の照会で返信が見つからなくても、書き込まれなかった証拠にはなりません。自動再送しないでください。
例 · 502 · 30002
{ "request_id": "req_example_provider_unavailable", "error": { "code": "provider_unavailable", "numeric_code": "30002", "message": "Provider service unavailable" } }- reply_post_comment_failed · 39004 · 502
投稿、確認済みの最上位コメント、エラー分類を確認します。書き込み結果が不明なら request_id を保存して調査し、その後に再送を判断します。後の取得で返信がないことだけを再試行の根拠にしないでください。
対処と再試行: 再送する前に元のメッセージや返信が作成されたか確認します。タイムアウトやエラー応答後は結果不明の場合があります。後の照会で返信が見つからなくても、書き込まれなかった証拠にはなりません。自動再送しないでください。
JSON の例です。message は実際の原因によって変わります · 502 · 39004
{ "request_id": "req_example", "error": { "code": "reply_post_comment_failed", "numeric_code": "39004", "message": "Failed to confirm comment reply; result may be unknown, do not automatically retry" } }