เอกสารอ้างอิง API

การอนุญาตบัญชี

นำเข้า session

นำเข้า URL เซสชันหรือข้อมูลรับรองเฉพาะช่องทางเพื่อเริ่มยืนยันตัวตน บัญชี TikTok session ใช้ tiktok.cookies หากเป็น pending ให้ตรวจสอบสถานะการยืนยันตัวตนและการทำงานจนเป็น authorized และ running HTTP 200 เพียงอย่างเดียวไม่ได้หมายความว่าการยืนยันตัวตนเสร็จแล้ว

POSThttps://api.unifyport.ai/v1/accounts/{account_id}/auth/session

ช่องทางที่รองรับ

TelegramXFacebookTikTokWhatsApp Protocol

ก่อนเรียกใช้

ใช้ X-Api-Key ของ workspace เจ้าของทรัพยากรบนเซิร์ฟเวอร์ แทนค่าตัวอย่างทั้งหมดก่อนเรียกใช้

เตรียมข้อมูลเซสชันตามช่องทาง Telegram และ X ใช้ URL หรือข้อมูลอ้างอิงเซสชันที่มีอยู่ ส่วนออบเจ็กต์ข้อมูล whatsapp-protocol ใช้เฉพาะ WhatsApp Protocol ทำตามคู่มือช่องทางและห้ามบันทึกข้อมูลเซสชันหรือคีย์ลงในล็อก

ที่มาของพารามิเตอร์
account_id
รับ data.id จากการสร้างหรือค้นหาบัญชี รหัสเป็นของ workspace ที่ระบุด้วย X-Api-Key ดูบัญชี

พารามิเตอร์คำขอ

ส่วนหัว

X-Api-Key
stringจำเป็น

API key ของพื้นที่ทำงาน ระบบจะระบุพื้นที่ทำงานจากส่วนหัวนี้

Content-Type
stringจำเป็น

ใช้ application/json เมื่อต้องส่งเนื้อหาของคำขอเป็น JSON

พารามิเตอร์ใน path

account_id
stringจำเป็น

ตัวระบุที่ใช้ใน route ของ authentication

เนื้อหาของคำขอ

session_url
string

URL หรือ reference ของ session artifact ที่มีอยู่ของผู้ให้บริการ Facebook ต้องใช้ session_url ไปยัง JSON ที่มีอาร์เรย์ cookies พร้อม c_user, xs และ datr การนำเข้าสำเร็จยังไม่ยืนยันว่า runtime พร้อม

format: uri

whatsapp-protocol
object

ข้อมูลรับรองสำหรับนำเข้าเซสชัน WhatsApp Protocol ส่งได้เฉพาะที่ /v1/accounts/{account_id}/auth/session ผ่านออบเจ็กต์ซ้อนนี้ ไม่ใช่ provider_data เมื่อระบุออบเจ็กต์นี้ ต้องมี phone, static_pub_key, static_pri_key, identity_pub_key และ identity_pri_key การตอบกลับไม่ส่งคืนคีย์โปรโตคอลหรือข้อมูลรับรองที่ละเอียดอ่อนอื่น phone ใช้ตรวจสอบความสอดคล้องของตัวตน ส่วนคีย์สาธารณะและคีย์ส่วนตัวของโปรโตคอลใช้เฉพาะสำหรับเริ่มต้นระบบต้นทาง แพลตฟอร์มใส่ edge_routing แบบตายตัว ห้ามผู้เรียกส่งฟิลด์นี้

phone
string

เมื่อนำเข้าเซสชันโดยระบุ whatsapp-protocol ต้องระบุ phone เป็นสตริงที่ไม่ว่างเพื่อใช้ตรวจสอบความสอดคล้องของตัวตน อินพุตที่จัดรูปแบบสามารถมีช่องว่าง ขีด วงเล็บ หรือเครื่องหมายบวกได้ เซิร์ฟเวอร์จะปรับให้เป็นสตริงตัวเลขบวก

minLength: 1

platform
integer

ค่าแพลตฟอร์มสำหรับนำเข้าเซสชัน WhatsApp Protocol (int32)

format: int32

app_version
string

เวอร์ชันแอปสำหรับนำเข้าเซสชัน WhatsApp Protocol

server_address
string

ที่อยู่เซิร์ฟเวอร์ของ provider สำหรับนำเข้าเซสชัน WhatsApp Protocol

fallback_server_addresses[]
string[]

รายการที่อยู่เซิร์ฟเวอร์สำรองสำหรับนำเข้าเซสชัน WhatsApp Protocol

country
string

รหัสประเทศสำหรับนำเข้าเซสชัน WhatsApp Protocol

device
integer

ค่าอุปกรณ์สำหรับนำเข้าเซสชัน WhatsApp Protocol (uint32)

format: uint32

static_pub_key
string

คีย์สาธารณะของโปรโตคอล เขียนได้อย่างเดียว

minLength: 1

static_pri_key
string

คีย์ส่วนตัวของโปรโตคอล เขียนได้อย่างเดียว

minLength: 1

identity_pub_key
string

คีย์สาธารณะของตัวตน เขียนได้อย่างเดียว

minLength: 1

identity_pri_key
string

คีย์ส่วนตัวของตัวตน เขียนได้อย่างเดียว

minLength: 1

hash
string

ฟิลด์ความเข้ากันได้ที่เลิกใช้แล้ว ปัจจุบันค่าจะถูกละเลยและไม่บันทึก แนะนำให้ละไว้

peer_kem_public
string

คีย์สาธารณะ KEM ของอีกฝ่าย เขียนได้อย่างเดียว

auth_hex_data
string

ข้อมูลยืนยันตัวตนปัจจุบันในรูปเลขฐานสิบหก เขียนได้อย่างเดียว

authhexdata
string

ฟิลด์ข้อมูลยืนยันตัวตนแบบเก่าในรูปเลขฐานสิบหกที่เลิกใช้แล้ว เขียนได้อย่างเดียว

pq_handshake_mode
string

โหมด PQ handshake สำหรับนำเข้าเซสชัน WhatsApp Protocol

use_xxkem_handshake
boolean

ระบุว่าจะใช้ XXKEM handshake สำหรับนำเข้าเซสชัน WhatsApp Protocol หรือไม่

tiktok
object

ใช้เฉพาะบัญชี TikTok ที่มี auth_mode=session เมื่อส่ง tiktok ต้องเป็นฟิลด์ระดับบนสุดเพียงฟิลด์เดียว ภายในรับเฉพาะ cookies และ user_id ที่ไม่บังคับ JSON ที่นำเข้าทั้งหมดต้องไม่เกิน 65536 ไบต์ การผ่านการตรวจรูปแบบไม่ได้หมายความว่าข้อมูลรับรองใช้ได้หรือให้สิทธิ์สำเร็จ หากต้องสแกน QR หรือใช้รหัสยืนยัน จะคืนสถานะรอที่เกี่ยวข้อง โดยโหมด session ยังไม่รองรับการโต้ตอบต่อในขั้นตอนเหล่านี้ ไม่รับประกันว่าการนำเข้าซ้ำจะเขียนทับการเข้าสู่ระบบที่มีอยู่หรือเปลี่ยน Cookie ขณะทำงานได้

user_id
string

ฟิลด์เสริมเพื่อความเข้ากันได้ ไม่ใช้ตรวจสอบหรือผูกตัวตน ตัวตนจริงขึ้นอยู่กับผลการให้สิทธิ์

cookies[]
object[]

จำเป็นเมื่อส่ง tiktok: อาร์เรย์แบบเขียนอย่างเดียวที่มี Cookie 1–128 รายการ ห้ามมีคู่ชื่อและโดเมนซ้ำกัน เก็บคุณสมบัติ Cookie อื่นที่ส่งออกไว้ ความใช้ได้ตัดสินจากผลการเข้าสู่ระบบ

minItems: 1 · maxItems: 128

name
string

ชื่อที่ไม่ว่างซึ่งจำเป็นสำหรับ TikTok Cookie แต่ละรายการ

minLength: 1

value
string

ค่าที่ไม่ว่างซึ่งจำเป็นสำหรับ TikTok Cookie แต่ละรายการ เขียนอย่างเดียว

minLength: 1

domain
string

โดเมนที่ไม่ว่างซึ่งจำเป็นสำหรับ TikTok Cookie แต่ละรายการ เก็บค่าที่ส่งออกไว้

minLength: 1

path
string

พาธที่จำเป็นสำหรับ TikTok Cookie แต่ละรายการ ต้องเริ่มด้วย /

pattern: ^/

expires
number

ค่า Unix timestamp หน่วยวินาทีที่ส่งออก หรือเครื่องหมาย Cookie แบบเซสชัน ไม่บังคับ และไม่ตรวจว่าหมดอายุหรือไม่ในขั้นตอนนำเข้า

secure
boolean

แฟล็ก Secure ที่ส่งออกของ TikTok Cookie ไม่บังคับ

http_only
boolean

แฟล็ก HttpOnly ที่ส่งออกของ TikTok Cookie ไม่บังคับ

same_site
string

ค่า SameSite ที่ส่งออกของ TikTok Cookie ไม่บังคับ

ทำความเข้าใจผลลัพธ์

อ่านผลยืนยันตัวตนแล้วตรวจสอบ runtime_status การนำเข้าเซสชันและการเชื่อมต่อออนไลน์เป็นคนละขั้นตอน

การตอบกลับ pending · TikTok session

{
  "request_id": "<REQUEST_ID>",
  "data": {
    "account_id": "acc_example",
    "provider": "tiktok",
    "action": "import_session",
    "status": "pending",
    "runtime_status": "starting"
  }
}

การตอบกลับ authorized

{
  "request_id": "<REQUEST_ID>",
  "data": {
    "account_id": "acc_example",
    "status": "authorized"
  }
}

เนื้อหาการตอบกลับ

account_id
string

บัญชีของผู้ให้บริการที่การตอบกลับนี้อ้างถึง

status
string

สถานะ flow การให้สิทธิ์ปัจจุบัน เช่น pending_auth, awaiting_qr_scan, awaiting_code, pending, passkey_required, passkey_pending, passkey_confirmation, passkey_confirmation_sent, authorized หรือ failed

การตอบกลับ

200

200 OK

คำขอสำเร็จ ดูตัวอย่างเนื้อหาตอบกลับด้านบน

400

Bad Request

เนื้อหาของคำขอ path หรือพารามิเตอร์ไม่ถูกต้อง

401

Unauthorized

ส่วนหัว X-Api-Key หายไปหรือไม่ถูกต้อง

403

Forbidden

ระบบระบุคำขอได้ แต่ไม่อนุญาตให้ดำเนินการนี้

404

Not Found

ไม่พบทรัพยากรที่ร้องขอ โปรดตรวจสอบ error.code ร่วมกับการดำเนินการปัจจุบัน

409

Conflict

การดำเนินการขัดแย้งกับบัญชีของผู้ให้บริการหรือทรัพยากรที่มีอยู่

500

Internal Server Error

บริการพบข้อผิดพลาดที่ไม่คาดคิด

502

Bad Gateway

อะแดปเตอร์หรือ upstream provider ไม่สามารถทำรายการให้เสร็จได้

เมื่อคำขอล้มเหลว

ตรวจ HTTP และ error.code/numeric_code เก็บ request_id แล้วแก้พารามิเตอร์ ยืนยันตัวตนต่อ หรือตรวจ runtime ตามสาเหตุ ตรวจผลครั้งก่อนก่อนส่งหรือเขียนซ้ำ อ้างอิงรหัสข้อผิดพลาด

อ่านสถานะ HTTP, error.code และ error.numeric_code ร่วมกับคำสั่งที่เรียก รหัสตัวเลขเป็นสตริง เก็บ request_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"
  }
}
unsupported_action · 30005 · 400

ไม่รู้จักการทำงานของบัญชีนี้ ให้ใช้การทำงานตามเอกสาร

วิธีจัดการและลองใหม่: เลือกช่องทางและคำสั่งที่เอกสารระบุว่ารองรับ การส่งซ้ำไม่เพิ่มความสามารถหรือเปิดสิทธิ์เบต้า

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 400 · 30005
{
  "request_id": "req_example",
  "error": {
    "code": "unsupported_action",
    "numeric_code": "30005",
    "message": "Action not supported"
  }
}
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"
  }
}
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"
  }
}
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_already_authorized · 20016 · 409

บัญชียืนยันตัวตนเสร็จแล้วและคำสั่งนี้ปฏิเสธการยืนยันซ้ำ ให้รีเฟรชสถานะแล้วใช้ผลที่เสร็จแล้ว อย่าวนยืนยันใหม่หรือยกเลิกซ้ำ

วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 20016
{
  "request_id": "req_example",
  "error": {
    "code": "account_already_authorized",
    "numeric_code": "20016",
    "message": "Account is already authorized; re-authentication is not required"
  }
}
account_binding_not_found · 30006 · 409

บัญชียังไม่มีการผูกกับการเชื่อมต่อช่องทางที่ใช้งานอยู่ ตรวจสถานะบัญชี

วิธีจัดการและลองใหม่: ตรวจสถานะยืนยันตัวตนและ runtime แล้วเลือกรีเฟรช เริ่ม หรือเชื่อมต่อใหม่ตามเป้าหมายและความสามารถของช่องทาง ปัญหาการเชื่อมต่อเพียงอย่างเดียวไม่ได้ยืนยันว่าออกจากระบบ ตรวจให้เป็น 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"
  }
}
duplicate_provider_account · 20015 · 409

ตัวตนช่องทางนี้ผูกกับอีกบัญชีในเวิร์กสเปซแล้ว

วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 20015
{
  "request_id": "req_example",
  "error": {
    "code": "duplicate_provider_account",
    "numeric_code": "20015",
    "message": "A provider account with the same identity already exists in this workspace"
  }
}
egress_configuration_pending · 20032 · 409

ยังยืนยันหรือโหลดการตั้งค่าเครือข่ายเริ่มต้นของแพลตฟอร์มไม่ได้ ไม่ได้หมายความว่าบัญชีออกจากระบบแล้ว

เงื่อนไข: การดำเนินการนี้ใช้ความจุเครือข่ายที่แพลตฟอร์มจัดสรรหรือการตั้งค่าเครือข่ายเริ่มต้นที่ผูกไว้กับบัญชี

วิธีจัดการและลองใหม่: เก็บ request_id และตรวจสอบบัญชีหรือผลการสร้างก่อนเขียนซ้ำ รอให้ความจุหรือการตั้งค่ากลับมาพร้อม หรือแจ้งฝ่ายสนับสนุน อย่าสร้างบัญชี เปลี่ยนเครือข่าย หรือเริ่มบัญชีใหม่ซ้ำโดยอัตโนมัติ

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 20032
{
  "request_id": "req_example",
  "error": {
    "code": "egress_configuration_pending",
    "numeric_code": "20032",
    "message": "Account network configuration is pending verification"
  }
}
provider_account_mismatch · 20017 · 409

ตัวตนช่องทางในคำขอไม่ตรงกับบัญชีที่ผูกไว้

วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 20017
{
  "request_id": "req_example",
  "error": {
    "code": "provider_account_mismatch",
    "numeric_code": "20017",
    "message": "Authenticated provider account does not match the bound account; re-scan with the original account"
  }
}
provider_not_ready · 30009 · 409

การเชื่อมต่อยังไม่พร้อม ตรวจการอนุญาตและ runtime_status ก่อนลองใหม่

วิธีจัดการและลองใหม่: ตรวจสถานะยืนยันตัวตนและ runtime แล้วเลือกรีเฟรช เริ่ม หรือเชื่อมต่อใหม่ตามเป้าหมายและความสามารถของช่องทาง ปัญหาการเชื่อมต่อเพียงอย่างเดียวไม่ได้ยืนยันว่าออกจากระบบ ตรวจให้เป็น running ก่อนทำงานที่ต้องใช้การเชื่อมต่อ

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 30009
{
  "request_id": "req_example",
  "error": {
    "code": "provider_not_ready",
    "numeric_code": "30009",
    "message": "Provider client is not ready"
  }
}
wallet_account_creation_in_progress · 20030 · 409

กำลังสร้างบัญชีที่ชำระเงินด้วยกระเป๋าเงินในพื้นที่ทำงานนี้ หรือบัญชีเป้าหมายยังเริ่มต้นไม่เสร็จ

วิธีจัดการและลองใหม่: เมื่อการสร้างบัญชีชนกัน ให้รอตาม Retry-After และใช้ Idempotency-Key เดิมหากระบุไว้ในคำขอครั้งแรก หากพบข้อผิดพลาดนี้ขณะยืนยันตัวตน ให้ใช้ billing.operation_id จากผลตอบกลับการสร้างบัญชีเรียก GET /v1/account-operations/{operation_id} รอจน data.state=SUCCEEDED แล้วลองทำรายการเดิมกับบัญชีเดิม

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 20030
{
  "request_id": "req_example",
  "error": {
    "code": "wallet_account_creation_in_progress",
    "numeric_code": "20030",
    "message": "Account creation is in progress; please wait"
  }
}
run_auth_action_failed · 20010 · 500

ดำเนินคำสั่งยืนยันตัวตน: คำสั่งยืนยันตัวตนล้มเหลว ตรวจขั้นตอนเดิมก่อน อย่าสรุปว่าต้องเริ่มยืนยันใหม่

วิธีจัดการและลองใหม่: ตรวจขั้นตอนยืนยันตัวตนปัจจุบันว่าต้องให้ผู้ใช้ทำอะไรหรือไม่ อย่าเริ่มยืนยันใหม่เพียงเพราะคำขอนี้ล้มเหลว และอย่าส่งซ้ำไปยังเซสชันที่หมดอายุหรือจบแล้ว

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 20010
{
  "request_id": "req_example",
  "error": {
    "code": "run_auth_action_failed",
    "numeric_code": "20010",
    "message": "Failed to run auth action"
  }
}
run_auth_action_failed · 20020 · 500

ตรวจ account_id และใช้ X-Api-Key ของเวิร์กสเปซเจ้าของบัญชี คีย์ปัจจุบันไม่สามารถเข้าถึงบัญชีที่ไม่พบในเวิร์กสเปซนี้

เงื่อนไข: ใช้เมื่อไม่พบบัญชี โดยคงสถานะ HTTP และ code ของคำสั่งเดิม และใช้ numeric_code ระบุว่าบัญชีไม่มีอยู่

วิธีจัดการและลองใหม่: ตรวจรหัสเป้าหมาย เจ้าของทรัพยากร และเวิร์กสเปซปัจจุบัน อย่าถือว่าเป้าหมายที่ยืนยันแล้วว่าไม่มีหรือเข้าไม่ถึงเป็นความขัดข้องชั่วคราวที่ควรลองซ้ำอัตโนมัติ

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 20020
{
  "request_id": "req_example",
  "error": {
    "code": "run_auth_action_failed",
    "numeric_code": "20020",
    "message": "Account not found"
  }
}
provider_adapter_not_found · 30004 · 502

บริการช่องทางไม่พร้อมใช้งาน ตรวจสถานะหรือลองภายหลัง และยืนยันผลเดิมก่อนลองเขียนข้อมูลซ้ำ

วิธีจัดการและลองใหม่: ตรวจขั้นตอนยืนยันตัวตนปัจจุบันว่าต้องให้ผู้ใช้ทำอะไรหรือไม่ อย่าเริ่มยืนยันใหม่เพียงเพราะคำขอนี้ล้มเหลว และอย่าส่งซ้ำไปยังเซสชันที่หมดอายุหรือจบแล้ว

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 502 · 30004
{
  "request_id": "req_example",
  "error": {
    "code": "provider_adapter_not_found",
    "numeric_code": "30004",
    "message": "Provider adapter unavailable"
  }
}
provider_unavailable · 30002 · 502

บริการช่องทางไม่พร้อมใช้งาน ตรวจสถานะหรือลองภายหลัง และยืนยันผลเดิมก่อนลองเขียนข้อมูลซ้ำ

วิธีจัดการและลองใหม่: ตรวจขั้นตอนยืนยันตัวตนปัจจุบันว่าต้องให้ผู้ใช้ทำอะไรหรือไม่ อย่าเริ่มยืนยันใหม่เพียงเพราะคำขอนี้ล้มเหลว และอย่าส่งซ้ำไปยังเซสชันที่หมดอายุหรือจบแล้ว

ตัวอย่าง · 502 · 30002
{
  "request_id": "req_example_provider_unavailable",
  "error": {
    "code": "provider_unavailable",
    "numeric_code": "30002",
    "message": "Provider service unavailable"
  }
}
provider_unavailable · 30020 · 502

คำขอซิงโครนัสของ whatsapp-protocol ระบุข้อจำกัดการเข้าสู่ระบบด้วย numeric_code=30020 อาจกระทบการนำเข้าเซสชัน runtime การส่ง และค้นหารายชื่อ โดยคงสถานะ HTTP และ code ของคำสั่งปัจจุบัน อย่านำสัญญาเหตุการณ์ WhatsApp 20102 มาใช้กับช่องทางนี้

วิธีจัดการและลองใหม่: หยุดส่งและลองใหม่อัตโนมัติ ให้ผู้ใช้ตรวจและแก้ข้อจำกัดในแอป WhatsApp ทางการ กลับมาทำงานหลังแก้ปัญหาและยืนยันตัวตนใหม่ตามที่จำเป็น สถานะ running ก่อนหน้าไม่ยืนยันว่าข้อจำกัดถูกยกเลิกแล้ว

ช่องทาง: WhatsApp Protocol

ตัวอย่าง · 502 · 30020
{
  "request_id": "req_example_account_restricted",
  "error": {
    "code": "provider_unavailable",
    "numeric_code": "30020",
    "message": "Account login is restricted. Check the official WhatsApp app for details."
  }
}