Bài đăng và bình luận
Trả lời bình luận cấp đầu
Chỉ trả lời bình luận cấp đầu đã xác minh trên bài đăng TikTok của mình; nhà cung cấp khác và đích lồng nhau đã xác minh trả 501 unsupported_by_provider. Xác minh đầy đủ có thể trả 404 post_not_found (39000) hoặc comment_not_found (39001); mã sau không có nghĩa đã tìm mọi trả lời. 403 post_inaccessible (39005) không chỉ ra nguyên nhân hay nghĩa là không tồn tại; chưa xác minh xong sẽ không ghi. accepted không bảo đảm hiển thị, gửi đến hay Webhook. Không xác nhận được kết quả sau khi ghi trả 502 reply_post_comment_failed (39004), kết quả chưa biết; không tự gửi lại. Đọc sau không thấy trả lời không chứng minh chưa từng tạo.
https://api.unifyport.ai/v1/accounts/{account_id}/posts/comments/replyKênh được hỗ trợ
Trước khi gọi
Dùng X-Api-Key của workspace sở hữu tài nguyên trên máy chủ. Thay mọi giá trị mẫu trước khi chạy.
Nguồn tham số
- account_id
- Lấy data.id từ phản hồi tạo hoặc truy vấn tài khoản. ID thuộc workspace của X-Api-Key. Lấy tài khoản
Tham số yêu cầu
Tiêu đề
X-Api-KeyAPI key của không gian làm việc. Không gian làm việc được xác định từ tiêu đề này.
Content-TypeDùng application/json khi gửi nội dung yêu cầu JSON.
Tham số đường dẫn
account_idĐịnh danh dùng cho route accounts.
Nội dung yêu cầu
post_idID bài đăng của nhà cung cấp, truyền nguyên chuỗi. TikTok yêu cầu chuỗi số nguyên thập phân dương không có số 0 đầu; nếu không trả 400 provider_invalid_request.
minLength: 1 · pattern: \S
comment_idID nhà cung cấp của bình luận cấp đầu đã xác minh; truyền nguyên chuỗi không chỉ chứa khoảng trắng, không đổi thành số.
minLength: 1 · pattern: \S
textNội dung trả lời phải có ký tự không phải khoảng trắng; giữ nguyên cả khoảng trắng đầu và cuối.
minLength: 1 · pattern: \S
Hiểu kết quả
accepted chỉ xác nhận tiếp nhận, không bảo đảm hiển thị, giao nhận hay Webhook. 502 reply_post_comment_failed sau khi ghi có thể để lại kết quả chưa rõ; không tự động gửi lại. Không thấy phản hồi ở lần đọc sau cũng không chứng minh chưa từng tạo.
Phản hồi 200 OK
{
"request_id": "<REQUEST_ID>",
"data": {
"status": "accepted"
}
}
Nội dung phản hồi
statusaccepted chỉ xác nhận đã tiếp nhận, không bảo đảm hiển thị, gửi đến hay nhận Webhook.
enum: accepted
commentobjectChỉ kèm khi có xác nhận đáng tin cậy cho bình luận mới tạo, không bảo đảm luôn có.
commentChỉ kèm khi có xác nhận đáng tin cậy cho bình luận mới tạo, không bảo đảm luôn có.
idĐịnh danh nhà cung cấp; giữ nguyên chuỗi không chỉ chứa khoảng trắng, không chuyển thành số.
minLength: 1 · pattern: \S
post_idĐịnh danh nhà cung cấp; giữ nguyên chuỗi không chỉ chứa khoảng trắng, không chuyển thành số.
minLength: 1 · pattern: \S
textGiữ nguyên văn bản khi lấy được đáng tin cậy, kể cả chuỗi rỗng; bỏ qua nếu không biết.
authorobjectThông tin tác giả khi có.
authorThông tin tác giả khi có.
idĐịnh danh nhà cung cấp; giữ nguyên chuỗi không chỉ chứa khoảng trắng, không chuyển thành số.
minLength: 1 · pattern: \S
display_nameGiữ nguyên văn bản khi lấy được đáng tin cậy, kể cả chuỗi rỗng; bỏ qua nếu không biết.
avatar_urlURL ảnh đại diện không rỗng lấy được đáng tin cậy; bỏ qua nếu không biết.
minLength: 1
created_atThời điểm tạo bình luận đáng tin cậy theo RFC3339 UTC; bỏ qua nếu không biết, không thay bằng thời điểm quan sát.
format: date-time
parent_comment_idChỉ cung cấp khi quan hệ cha con đã xác minh. Thiếu trường này không chứng minh đây là bình luận cấp đầu có thể trả lời.
minLength: 1 · pattern: \S
Phản hồi
200200 OK
Yêu cầu thành công. Xem ví dụ nội dung phản hồi.
400Bad Request
Body, đường dẫn hoặc tham số yêu cầu không hợp lệ.
401Unauthorized
Header X-Api-Key thiếu hoặc không hợp lệ.
403Forbidden
Yêu cầu đã được nhận diện nhưng thao tác không được phép.
404Not Found
Không tìm thấy tài nguyên được yêu cầu. Kiểm tra error.code cùng với thao tác hiện tại.
409Conflict
Thao tác đang yêu cầu xung đột với tài khoản hoặc tài nguyên nhà cung cấp đã có.
501Not Implemented
Provider đã chọn chưa triển khai thao tác này.
502Bad Gateway
Adapter hoặc upstream provider không thể hoàn tất thao tác.
Khi yêu cầu thất bại
Kiểm tra bài đăng, bình luận cấp đầu đã xác nhận và phân loại lỗi. Nếu kết quả ghi chưa rõ, giữ request_id và điều tra trước khi gửi lại. Thiếu phản hồi ở lần đọc sau chưa đủ để quyết định thử lại. Tham chiếu mã lỗi
Đọc trạng thái HTTP, error.code và error.numeric_code theo thao tác đang gọi. Mã số có kiểu chuỗi. Giữ request_id để chẩn đoán; đây không phải khóa chống lặp hay mã tác vụ.
- invalid_request · 10000 · 400
Kiểm tra JSON và các trường bắt buộc.
Xử lý và thử lại: Sửa tham số theo thao tác và điều kiện của kênh rồi mới gọi lại. Lặp lại yêu cầu sai y nguyên không khắc phục lỗi.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 400 · 10000
{ "request_id": "req_example", "error": { "code": "invalid_request", "numeric_code": "10000", "message": "Invalid request parameters" } }- invalid_target_workspace · 11003 · 400
Đích ghi đè workspace trống hoặc sai định dạng. Bỏ tiêu đề ghi đè và dùng API Key thuộc workspace đích.
Điều kiện: Áp dụng khi yêu cầu có tiêu đề X-Workspace-Id để ghi đè workspace.
Xử lý và thử lại: Sửa tham số theo thao tác và điều kiện của kênh rồi mới gọi lại. Lặp lại yêu cầu sai y nguyên không khắc phục lỗi.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 400 · 11003
{ "request_id": "req_example", "error": { "code": "invalid_target_workspace", "numeric_code": "11003", "message": "Invalid target workspace" } }- provider_invalid_request · 30001 · 400
Kiểm tra các trường và định dạng riêng của kênh.
Xử lý và thử lại: Sửa tham số theo thao tác và điều kiện của kênh rồi mới gọi lại. Lặp lại yêu cầu sai y nguyên không khắc phục lỗi.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 400 · 30001
{ "request_id": "req_example", "error": { "code": "provider_invalid_request", "numeric_code": "30001", "message": "Provider rejected the request" } }- invalid_api_key · 11001 · 401
Kiểm tra API Key có đúng và được bật hay không.
Xử lý và thử lại: Giữ request_id và mã lỗi có cấu trúc; kiểm tra thao tác hiện tại trước khi chọn hành động tiếp theo.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 401 · 11001
{ "request_id": "req_example", "error": { "code": "invalid_api_key", "numeric_code": "11001", "message": "Invalid API key" } }- missing_api_key · 11000 · 401
Thêm tiêu đề X-Api-Key.
Xử lý và thử lại: Giữ request_id và mã lỗi có cấu trúc; kiểm tra thao tác hiện tại trước khi chọn hành động tiếp theo.
Ví dụ · 401 · 11000
{ "request_id": "req_xxx", "error": { "code": "missing_api_key", "numeric_code": "11000", "message": "Missing X-Api-Key header" } }- post_inaccessible · 39005 · 403
Kiểm tra tài khoản và các mã định danh đích mà API này thực sự yêu cầu. post_not_found xác nhận bài đăng không tồn tại. comment_not_found chỉ có nghĩa là không tìm thấy bình luận cấp đầu đích sau khi xác minh, không có nghĩa đã tìm mọi phản hồi. post_inaccessible nghĩa là không truy cập được, không chứng minh vắng mặt hay xác định nguyên nhân. Giữ lỗi và điều tra trước khi chọn bước tiếp theo.
Xử lý và thử lại: Kiểm tra mã đích, chủ sở hữu tài nguyên và workspace hiện tại. Không coi đích đã xác nhận thiếu hoặc không truy cập được là lỗi dịch vụ tạm thời để tự thử lại.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 403 · 39005
{ "request_id": "req_example", "error": { "code": "post_inaccessible", "numeric_code": "39005", "message": "Post is not accessible" } }- workspace_override_forbidden · 11002 · 403
Yêu cầu cố ghi đè workspace mà API Key không được phép dùng. Bỏ tiêu đề ghi đè và dùng API Key thuộc workspace đích.
Điều kiện: Áp dụng khi yêu cầu có tiêu đề X-Workspace-Id để ghi đè workspace.
Xử lý và thử lại: Giữ request_id và mã lỗi có cấu trúc; kiểm tra thao tác hiện tại trước khi chọn hành động tiếp theo.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 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
Kiểm tra account_id và dùng X-Api-Key của không gian làm việc sở hữu tài khoản. Khóa hiện tại không truy cập được tài khoản không tìm thấy trong không gian này.
Xử lý và thử lại: Kiểm tra mã đích, chủ sở hữu tài nguyên và workspace hiện tại. Không coi đích đã xác nhận thiếu hoặc không truy cập được là lỗi dịch vụ tạm thời để tự thử lại.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 404 · 20020
{ "request_id": "req_example", "error": { "code": "account_not_found", "numeric_code": "20020", "message": "Account not found" } }- comment_not_found · 39001 · 404
Kiểm tra tài khoản và các mã định danh đích mà API này thực sự yêu cầu. post_not_found xác nhận bài đăng không tồn tại. comment_not_found chỉ có nghĩa là không tìm thấy bình luận cấp đầu đích sau khi xác minh, không có nghĩa đã tìm mọi phản hồi. post_inaccessible nghĩa là không truy cập được, không chứng minh vắng mặt hay xác định nguyên nhân. Giữ lỗi và điều tra trước khi chọn bước tiếp theo.
Xử lý và thử lại: Kiểm tra mã đích, chủ sở hữu tài nguyên và workspace hiện tại. Không coi đích đã xác nhận thiếu hoặc không truy cập được là lỗi dịch vụ tạm thời để tự thử lại.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 404 · 39001
{ "request_id": "req_example", "error": { "code": "comment_not_found", "numeric_code": "39001", "message": "Comment not found" } }- post_not_found · 39000 · 404
Kiểm tra tài khoản và các mã định danh đích mà API này thực sự yêu cầu. post_not_found xác nhận bài đăng không tồn tại. comment_not_found chỉ có nghĩa là không tìm thấy bình luận cấp đầu đích sau khi xác minh, không có nghĩa đã tìm mọi phản hồi. post_inaccessible nghĩa là không truy cập được, không chứng minh vắng mặt hay xác định nguyên nhân. Giữ lỗi và điều tra trước khi chọn bước tiếp theo.
Xử lý và thử lại: Kiểm tra mã đích, chủ sở hữu tài nguyên và workspace hiện tại. Không coi đích đã xác nhận thiếu hoặc không truy cập được là lỗi dịch vụ tạm thời để tự thử lại.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 404 · 39000
{ "request_id": "req_example", "error": { "code": "post_not_found", "numeric_code": "39000", "message": "Post not found" } }- target_workspace_not_found · 11004 · 404
Không tìm thấy workspace được ghi đè hoặc workspace không khả dụng. Kiểm tra chủ sở hữu, bỏ tiêu đề ghi đè và dùng API Key của workspace đích; gọi lặp không cấp thêm quyền.
Điều kiện: Áp dụng khi yêu cầu có tiêu đề X-Workspace-Id để ghi đè workspace.
Xử lý và thử lại: Kiểm tra mã đích, chủ sở hữu tài nguyên và workspace hiện tại. Không coi đích đã xác nhận thiếu hoặc không truy cập được là lỗi dịch vụ tạm thời để tự thử lại.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 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
Tài khoản chưa gắn với kết nối kênh hoạt động; kiểm tra trạng thái.
Xử lý và thử lại: Kiểm tra trạng thái xác thực và runtime rồi chọn làm mới, khởi động hoặc kết nối lại theo mục tiêu và khả năng kênh. Lỗi kết nối không tự chứng minh đã đăng xuất. Xác nhận running trước thao tác nghiệp vụ cần kết nối.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 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
Kết nối chưa sẵn sàng. Kiểm tra ủy quyền và runtime_status trước khi thử lại.
Xử lý và thử lại: Kiểm tra trạng thái xác thực và runtime rồi chọn làm mới, khởi động hoặc kết nối lại theo mục tiêu và khả năng kênh. Lỗi kết nối không tự chứng minh đã đăng xuất. Xác nhận running trước thao tác nghiệp vụ cần kết nối.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 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
Kênh không hỗ trợ thao tác; chọn thao tác trong bảng hỗ trợ.
Xử lý và thử lại: Chọn kênh và thao tác được tài liệu ghi là hỗ trợ. Lặp yêu cầu không bổ sung tính năng hay cấp quyền beta.
Ví dụ · 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
Dịch vụ kênh chưa khả dụng. Kiểm tra trạng thái hoặc thử sau; xác nhận kết quả trước khi thử ghi lại.
Xử lý và thử lại: Trước khi gửi lại, xác nhận tin nhắn hoặc phản hồi gốc đã được tạo chưa. Hết giờ hoặc phản hồi lỗi có thể khiến kết quả chưa rõ; truy vấn sau không thấy phản hồi cũng không chứng minh chưa ghi. Không tự động gửi lại.
Ví dụ · 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
Kiểm tra bài đăng, bình luận cấp đầu đã xác nhận và phân loại lỗi. Nếu kết quả ghi chưa rõ, giữ request_id và điều tra trước khi gửi lại. Thiếu phản hồi ở lần đọc sau chưa đủ để quyết định thử lại.
Xử lý và thử lại: Trước khi gửi lại, xác nhận tin nhắn hoặc phản hồi gốc đã được tạo chưa. Hết giờ hoặc phản hồi lỗi có thể khiến kết quả chưa rõ; truy vấn sau không thấy phản hồi cũng không chứng minh chưa ghi. Không tự động gửi lại.
JSON minh họa; message thay đổi theo nguyên nhân thực tế · 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" } }