ตั้งค่าตัวระบุช่องทาง
ตัวระบุช่องทางคือค่าตัวระบุบนช่องทางเข้าถึง และสามารถใช้เป็นเป้าหมายของช่องทางนั้นได้ ทั้งการตั้งค่าและการยกเลิกการผูกทำงานตาม EUID และรหัสช่องทาง
ที่อยู่เรียกใช้งานแบบเต็มคือ Base URL ของศูนย์ข้อมูลบวกกับเส้นทาง API ด้านล่าง ดู ภาพรวม REST API สำหรับวิธีรับ Base URL, API Key และ API Secret
การตรวจสอบการเรียกใช้งาน
EngageLab REST API ใช้การตรวจสอบแบบ HTTP Basic Authentication: โดยเพิ่ม Authorization ใน HTTP Header:
Authorization: Basic ${base64_auth_string}
อัลกอริธึมการสร้าง base64_auth_string คือ: base64(api_key:api_secret)
- ชื่อ Header คือ "Authorization" และค่าคือคู่ "username:password" ที่ถูกแปลงเป็น base64 (คั่นด้วยเครื่องหมายโคลอน)
- ในกรณีของ MA API, username คือ APIKey และ password คือ APISecret โปรดเพิ่มแหล่งข้อมูลประเภท API ในแหล่งข้อมูลเพื่อรับ APIKey และ APISecret
ตั้งค่าตัวระบุช่องทาง
ที่อยู่สำหรับการเรียกใช้งาน
POST /v1/user/channel
ตัวอย่างการเรียกใช้งาน
Header ของคำขอ
> POST /v1/user/channel
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
เนื้อหาคำขอ
{
"euid": 10362473,
"channel_id": 8801,
"ma_rid": "1a0018970d1c9f8f8e2",
"value": [
"channel_identifier_1",
"channel_identifier_2"
]
}
พารามิเตอร์ของคำขอ
| ฟิลด์ | ประเภท | จำเป็นต้องมี | คำอธิบาย |
|---|---|---|---|
euid |
Long | ใช่ | รหัสผู้ใช้ที่ไม่ซ้ำกัน ต้องเป็นผู้ใช้ที่มีอยู่แล้วในโปรเจกต์ปัจจุบัน |
channel_id |
Long | ใช่ | รหัสช่องทางเข้าถึง ต้องเป็นช่องทางที่มีอยู่แล้วในโปรเจกต์ปัจจุบัน |
ma_rid |
String | ไม่ | MA Registration ID หากส่งค่า ตัวระบุช่องทางที่เขียนในคำขอนี้จะถูกผูกกับ MA RID นี้ และระบบจะบันทึกแพลตฟอร์ม เมื่อ MA RID นี้ย้ายไปยัง EUID อื่น ตัวระบุช่องทางที่ผูกไว้จะย้ายตามไปด้วย หากไม่ส่ง ส่งสตริงว่าง หรือส่งแต่ช่องว่าง การเขียนครั้งนี้จะไม่สร้างการผูก หากตัวระบุที่เขียนในคำขอนี้มีการผูกอยู่แล้ว การผูกเดิมจะถูกลบ หากอ่านแพลตฟอร์มจากค่านี้ไม่ได้ การตั้งค่าจะล้มเหลว |
value |
Array<String> | ใช่ | รายการค่าตัวระบุช่องทางที่จะตั้งค่า รายการต้องไม่ว่าง และแต่ละรายการต้องไม่เป็นค่าว่างหรือมีแต่ช่องว่าง ค่าจะถูกเก็บตามที่ส่งมา การเทียบแยกตัวพิมพ์ใหญ่เล็ก และไม่ตัดช่องว่างหัวท้าย ค่าที่ซ้ำในคำขอเดียวกันจะถูกตัดให้เหลือค่าเดียว |
ภายใต้ euid + channel_id เดียวกัน ตัวระบุค่าเดียวกันจะถูกเขียนใหม่ตามคำขอนี้: ระเบียนเก่าถูกลบ แล้วเขียนระเบียนใหม่ โดยเวลาที่แก้ไขถูกตั้งเป็นเวลาปัจจุบัน ตัวระบุที่มีอยู่แล้วแต่ไม่อยู่ในรายการนี้จะคงเดิม ค่าใหม่จะถูกเพิ่ม
สำหรับช่องทาง AppPush/WebPush ตัวระบุช่องทางเดียวกันภายใต้ channel_id เดียวกันเป็นของ EUID ได้เพียงรายการเดียว หลังจากเขียนค่าให้ EUID ใหม่สำเร็จแล้ว ระบบจะลบค่านั้นออกจาก EUID อื่นที่ยังถือค่านี้อยู่ ช่องทางประเภทอื่นไม่มีการย้ายความเป็นเจ้าของแบบนี้
พารามิเตอร์ที่ส่งกลับ
| ฟิลด์ | ประเภท | จำเป็นต้องมี | คำอธิบาย |
|---|---|---|---|
code |
Int | ใช่ | การเรียก API สำเร็จหรือไม่ 0 หมายถึงสำเร็จ |
message |
String | ใช่ | คำอธิบายผลการเรียก API |
ตัวอย่างเมื่อสำเร็จ
{
"code": 0,
"message": "success"
}
ยกเลิกการผูกตัวระบุช่องทาง
ที่อยู่สำหรับการเรียกใช้งาน
POST /v1/user/channel/unbind
ตัวอย่างการเรียกใช้งาน
Header ของคำขอ
> POST /v1/user/channel/unbind
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
เนื้อหาคำขอ
{
"euid": 10362473,
"channel_id": 8801,
"value": [
"channel_identifier_1",
"channel_identifier_2"
]
}
พารามิเตอร์ของคำขอ
| ฟิลด์ | ประเภท | จำเป็นต้องมี | คำอธิบาย |
|---|---|---|---|
euid |
Long | ใช่ | รหัสผู้ใช้ที่ไม่ซ้ำกัน |
channel_id |
Long | ใช่ | รหัสช่องทางเข้าถึง |
value |
Array<String> | ใช่ | รายการค่าตัวระบุช่องทางที่จะยกเลิกการผูก แต่ละค่าต้องตรงกับตัวระบุที่บันทึกไว้ทุกประการ การเทียบแยกตัวพิมพ์ใหญ่เล็ก และไม่ตัดช่องว่างหัวท้าย |
การยกเลิกการผูกจับคู่ด้วยค่าตัวระบุช่องทาง ไม่ใช่ ma_rid คำขอยกเลิกการผูกไม่มีฟิลด์ ma_rid API ลบระเบียนที่ตรงกับ euid + channel_id + value ทุกประการ หากไม่มีผู้ใช้ หรือผู้ใช้ไม่มีตัวระบุที่ตรงทุกประการ ระบบจะไม่แก้ไขข้อมูล และยังคงส่งกลับว่าสำเร็จ การยกเลิกการผูกไม่ตรวจว่า channel_id เป็นของโปรเจกต์ปัจจุบันหรือไม่
พารามิเตอร์ที่ส่งกลับ
| ฟิลด์ | ประเภท | จำเป็นต้องมี | คำอธิบาย |
|---|---|---|---|
code |
Int | ใช่ | การเรียก API สำเร็จหรือไม่ 0 หมายถึงสำเร็จ |
message |
String | ใช่ | คำอธิบายผลการเรียก API |
ตัวอย่างเมื่อสำเร็จ
{
"code": 0,
"message": "success"
}
รหัสข้อผิดพลาด
เมื่อการตรวจสอบทางธุรกิจล้มเหลว API ตั้งค่าจะส่งกลับรหัสข้อผิดพลาดต่อไปนี้พร้อมสถานะ HTTP 400 ฟิลด์ message ในเนื้อหาที่ส่งกลับเป็นคำอธิบายภาษาอังกฤษ ไม่ใช่คำอธิบายในตารางด้านล่าง API ยกเลิกการผูกจะส่งกลับ 55004 เฉพาะเมื่อพารามิเตอร์ที่จำเป็นไม่ถูกต้อง หรืออ่านเนื้อหาคำขอไม่ได้ หากไม่มีผู้ใช้หรือไม่มีตัวระบุ การยกเลิกการผูกยังคงส่งกลับว่าสำเร็จ
| รหัส | คำอธิบาย | รายละเอียด |
|---|---|---|
| 55004 | พารามิเตอร์ทางธุรกิจไม่ถูกต้อง | ตอนตั้งค่า หาก channel_id ไม่มีในโปรเจกต์ปัจจุบัน message จะเป็น channel_id does not exist in current project: {channel_id} ตอนตั้งค่า หากอ่านแพลตฟอร์มจาก ma_rid ไม่ได้ message จะเป็น ma_rid is invalid ทั้งตอนตั้งค่าและยกเลิกการผูก หากขาดฟิลด์ที่จำเป็น value ว่าง มีรายการว่าง หรืออ่านเนื้อหาคำขอไม่ได้ (ขณะนั้น message จะเป็น Invalid request payload format) ก็ส่งกลับรหัสนี้ |
| 55108 | EUID ไม่ถูกต้อง | ส่งกลับเฉพาะ API ตั้งค่า EUID ไม่มีในโปรเจกต์ปัจจุบัน message จะเป็น EUID does not exist: {euid} |
ตัวอย่างเมื่อล้มเหลว
ไม่มี channel_id:
{
"code": 55004,
"message": "channel_id does not exist in current project: 8801"
}
อ่าน ma_rid ไม่ได้:
{
"code": 55004,
"message": "ma_rid is invalid"
}
ไม่มี EUID:
{
"code": 55108,
"message": "EUID does not exist: 10362473"
}










