Tag Alias API
Device API ใช้สำหรับการสอบถาม, ตั้งค่า, อัปเดต และลบข้อมูล tag และ alias ของอุปกรณ์ในฝั่งเซิร์ฟเวอร์ เมื่อใช้งาน คุณต้องระมัดระวังไม่ให้ tag ที่ตั้งค่าไว้ในฝั่งเซิร์ฟเวอร์ถูกเขียนทับโดยฝั่งไคลเอนต์
- หากคุณไม่คุ้นเคยกับ tag, logic ของ alias แนะนำให้ใช้เพียงอย่างใดอย่างหนึ่งระหว่างฝั่งไคลเอนต์หรือฝั่งเซิร์ฟเวอร์
- หากคุณใช้ทั้งสอง โปรดตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณสามารถจัดการการซิงโครไนซ์ของ tags และ aliases ได้
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ tag และ alias โปรดดูคำอธิบาย API ของแพลตฟอร์มไคลเอนต์ที่เกี่ยวข้อง
กฎและข้อจำกัดสำหรับการใช้งาน TAG
- ข้อจำกัดจำนวน TAG: ภายใต้ appkey เดียว คุณสามารถสร้าง Tags ได้สูงสุด 100,000 Tags
- ข้อจำกัดความยาว TAG: ความยาวสูงสุดของแต่ละ Tag คือ 40 ไบต์ ตัวอักษรที่ใช้ได้รวมถึงตัวอักษร (แยกแยะตัวพิมพ์เล็กและพิมพ์ใหญ่), ตัวเลข, ขีดล่าง และตัวอักษรจีน
- ข้อจำกัดการผูก TAG กับอุปกรณ์: อุปกรณ์แต่ละเครื่องสามารถผูก Tags ได้สูงสุด 100 Tags
- ข้อจำกัดจำนวนอุปกรณ์: ภายใต้ Tag เดียว คุณสามารถเพิ่มอุปกรณ์ได้สูงสุด 100,000 เครื่อง
หากคุณเป็นสมาชิกแผนชำระเงินของเราและต้องการปรับข้อจำกัดการใช้งานของ AppKey แบบชำระเงิน โปรดติดต่อทีมธุรกิจของเราที่: Sales@engagelab.com
กฎและข้อจำกัดสำหรับการใช้งาน alias
- การจับคู่ Device กับ alias: alias หนึ่งสามารถจับคู่กับอุปกรณ์ได้เพียงเครื่องเดียว ไม่สามารถจับคู่กับหลายเครื่องได้ เช่นเดียวกัน อุปกรณ์แต่ละเครื่องในช่วง appkey สามารถจับคู่กับ alias ได้เพียงหนึ่งเดียว ไม่สามารถจับคู่กับหลาย alias ได้
- ข้อจำกัดจำนวน alias: ภายใต้ appkey เดียว คุณสามารถสร้าง aliases ได้สูงสุด 100,000 aliases
- ข้อจำกัดความยาว alias: ความยาวสูงสุดของแต่ละ alias คือ 40 ไบต์ ตัวอักษรที่ใช้ได้รวมถึงตัวอักษร (แยกแยะตัวพิมพ์เล็กและพิมพ์ใหญ่), ตัวเลข, ขีดล่าง และตัวอักษรจีน
หากคุณเป็นสมาชิกแผนชำระเงินของเราและต้องการปรับข้อจำกัดการใช้งานของ AppKey แบบชำระเงิน โปรดติดต่อทีมธุรกิจของเราที่: Sales@engagelab.com
ภาพรวม API
Device API ใช้สำหรับการสอบถาม, ตั้งค่า, อัปเดต และลบข้อมูล tag และ alias ของอุปกรณ์ในฝั่งเซิร์ฟเวอร์
มันประกอบด้วย 3 APIs: device, tag, alias:
- device ใช้สำหรับสอบถาม/ตั้งค่าคุณสมบัติต่างๆ ของอุปกรณ์ รวมถึง tags และ alias
- tag ใช้สำหรับสอบถาม/ตั้งค่า/ลบ tag ของอุปกรณ์
- alias ใช้สำหรับสอบถาม/ตั้งค่า/ลบ alias ของอุปกรณ์
Registration ID เป็นข้อมูลสำคัญที่ต้องใช้งาน:
Registration_id ของอุปกรณ์จะได้รับหลังจากการรวมฝั่งไคลเอนต์ ดูเอกสาร API สำหรับ Android และ iOS สำหรับรายละเอียด
ฝั่งเซิร์ฟเวอร์ไม่ได้ให้ API เพื่อรับค่า Registration ID ของอุปกรณ์ นักพัฒนาจำเป็นต้องรับ Registration ID จากฝั่งไคลเอนต์และอัปโหลดไปยังเซิร์ฟเวอร์ของนักพัฒนาเพื่อจัดเก็บ
ที่อยู่สำหรับเรียกใช้งาน
https://pushapi-sgp.engagelab.com/v4/devices
การสอบถามจำนวน Tags ภายใต้ AppKey
URL ปลายทาง
GET /v4/tags_count
ตัวอย่างคำขอ
Headers ของคำขอ
GET /v4/tags_count
Authorization: Basic (base64 auth string)
Accept: application/json
ตัวอย่างคำขอ
curl -X GET http://127.0.0.1/v4/tags_count?tags=tag1&tags=tag2&platform=ios -u "appKey:appSecret"
พารามิเตอร์คำขอ
- Tag: สอบถาม tag string ที่ระบุ เป็นฟิลด์ที่จำเป็น อนุญาตให้สอบถามได้สูงสุด 1000 tags ในครั้งเดียว (tags=tag1&tags=tag2&tags=tag3)
- platform: สอบถามแพลตฟอร์มที่ระบุ เป็นฟิลด์ที่จำเป็น ค่าเลือกได้คือ android, ios ค่าอื่นๆ ไม่อนุญาต
ตัวอย่างการตอบกลับ
- การตอบกลับที่สำเร็จจะส่งคืนวัตถุ JSON ที่มีฟิลด์
tagsCount
นี่คือคู่คีย์-ค่า โดยที่คีย์คือชื่อ tag และค่าคือจำนวนของ tag นั้น - หากคำขอล้มเหลว จะส่งคืนวัตถุ JSON ที่มีข้อมูลข้อผิดพลาด ฟิลด์
code
ระบุรหัสข้อผิดพลาด และฟิลด์message
ระบุข้อความข้อผิดพลาด
การตอบกลับสำเร็จ
{
"tagsCount": {
"tag1": 0,
"tag2": 1,
"tag3": 2
}
}
การตอบกลับล้มเหลว
{
"error": {
"code": 21008,
"message": "app_key is not a 24 size string or does not exist"
}
}
การสอบถาม alias และ label ของอุปกรณ์
- รับคุณสมบัติทั้งหมดของอุปกรณ์ปัจจุบัน รวมถึง tags และ alias
ที่อยู่สำหรับเรียกใช้งาน
GET /v4/devices/{registration_id}
ตัวอย่างคำขอ
Headers ของคำขอ
GET /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
พารามิเตอร์คำขอ
- ไม่มี
ตัวอย่างการตอบกลับ
การตอบกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลการตอบกลับ
{"tags": ["tag1", "tag2"],
"alias": "alias1"
}
- หากไม่พบสถิติ จะเป็น null มิฉะนั้นจะเป็นค่าของสถิติ
การตั้งค่า alias และ label ของอุปกรณ์
- อัปเดตคุณสมบัติที่ระบุของอุปกรณ์ปัจจุบัน ปัจจุบันรองรับ tags และ alias
ที่อยู่สำหรับเรียกใช้งาน
POST /v4/devices/{registration_id}
ตัวอย่างคำขอ
Headers ของคำขอ
POST /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
ข้อมูลคำขอ
{
"tags": {
"add": [
"tag1",
"tag2"
],
"remove": [
"tag3",
"tag4"
]
},
"alias": "alias1",
}
พารามิเตอร์คำขอ
- tags: รองรับ add, remove หรือ string ว่าง เมื่อพารามิเตอร์ tags เป็น string ว่าง หมายถึงการลบ tags ทั้งหมด; ภายใต้ add/remove จะเพิ่มหรือลบ tag ที่ระบุ
- alias: อัปเดตคุณสมบัติ alias ของอุปกรณ์; เมื่อ alias เป็น string ว่าง จะลบ alias ของอุปกรณ์ที่ระบุ
ตัวอย่างการตอบกลับ
การตอบกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลการตอบกลับ
success
การตอบกลับล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
การลบอุปกรณ์
- ลบอุปกรณ์
ที่อยู่สำหรับเรียกใช้งาน
DELETE /v4/devices/{registration_id}
ตัวอย่างคำขอ
Headers ของคำขอ
DELETE /v4/devices/{registration_id}
Authorization: Basic (base64 auth string)
Accept: application/json
ข้อมูลคำขอ
- ไม่มี
พารามิเตอร์คำขอ
- ไม่มี
ตัวอย่างการตอบกลับ
การตอบกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลการตอบกลับ
success
การตอบกลับล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
รายการแท็กคำค้นหา
- รับรายการแท็กทั้งหมดของแอปพลิเคชันปัจจุบัน
ที่อยู่การเรียก
GET /v4/tags/
ตัวอย่างคำขอ
ส่วนหัวคำขอ
GET /v4/tags/
Authorization: Basic (base64 auth string)
Accept: application/json
พารามิเตอร์คำขอ
- ไม่มี
ตัวอย่างคำขอ
ส่งคืนสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งคืน
{
"tags": [
"tag1",
"tag2"
]
}
- ค่าของสถิติจะเป็น null หากไม่พบสถิติ มิฉะนั้นจะเป็นค่าของสถิติ
ค้นหาความสัมพันธ์การเชื่อมโยงระหว่างอุปกรณ์และแท็ก
- ตรวจสอบว่าอุปกรณ์อยู่ภายใต้แท็กหรือไม่
ที่อยู่การเรียก
GET /v4/tags/{tag_value}/registration_ids/{registration_id}
ตัวอย่างคำขอ
ส่วนหัวคำขอ
GET /v4/tags/{tag_value}/registration_ids/090c1f59f89
Authorization: Basic (base64 auth string)
Accept: application/json
พารามิเตอร์คำขอ
- registration_id จำเป็น, registration_id ของอุปกรณ์
ตัวอย่างการส่งคืน
ส่งคืนสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งคืน
{"result": true/false}
อัปเดตแท็ก
- เพิ่มหรือลบอุปกรณ์สำหรับแท็ก
ที่อยู่การเรียก
POST /v4/tags/{tag_value}
ตัวอย่างคำขอ
ส่วนหัวคำขอ
POST /v4/tags/{tag_value}
Authorization: Basic (base64 auth string)
Accept: application/json
ข้อมูลคำขอ
{
"registration_ids":{
"add": [
"registration_id1",
"registration_id2"
],
"remove": [
"registration_id1",
"registration_id2"
]
}
}
พารามิเตอร์คำขอ
- action ประเภทการกระทำ, มีสองตัวเลือก: "add", "remove", ซึ่งระบุว่าคำขอเป็น "เพิ่ม" หรือ "ลบ"
- registration_ids registration_id ของอุปกรณ์ที่ต้องการเพิ่ม/ลบ
- add/remove รองรับอุปกรณ์สูงสุด 1000 เครื่องต่อรายการ
ตัวอย่างการส่งคืน
ส่งคืนสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งคืน
success
ส่งคืนล้มเหลว
{
"error": {
"code": 27005,
"message": "registration id is illegal",
"data": "{\"invalid_regids\":[\"18071adc021ff8df80\",\"100d85592955c1f1058\"]}"
}
}
ลบแท็ก
ลบแท็กและความสัมพันธ์ระหว่างแท็กและอุปกรณ์
ที่อยู่การเรียก
DELETE /v4/tags/{tag_value}
ตัวอย่างคำขอ
ส่วนหัวคำขอ
DELETE /v4/tags/{tag_value}?platform=android,ios
Authorization: Basic (base64 auth string)
Accept: application/json
พารามิเตอร์คำขอ
- platform เป็นพารามิเตอร์ที่ไม่จำเป็น, หากไม่ได้ระบุไว้ จะเป็นค่าเริ่มต้นสำหรับทุกแพลตฟอร์ม
ตัวอย่างการส่งคืน
ส่งคืนสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-
ข้อมูลที่ส่งคืน
success
ส่งคืนล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
ค้นหา alias (ความสัมพันธ์การเชื่อมโยงกับอุปกรณ์)
GET /v4/aliases/{alias_value}
- รับอุปกรณ์ภายใต้ alias ที่ระบุ
ที่อยู่การเรียก
GET /v4/aliases/{alias_value}
ตัวอย่างคำขอ
ส่วนหัวคำขอ
GET /v4/aliases/{alias_value}?platform=android,ios
Authorization: Basic (base64 auth string)
Accept: application/json
พารามิเตอร์คำขอ
- platform เป็นพารามิเตอร์ที่ไม่จำเป็น, หากไม่ได้ระบุไว้ จะเป็นค่าเริ่มต้นสำหรับทุกแพลตฟอร์ม
ตัวอย่างการส่งคืน
ส่งคืนสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งคืน
{
"registration_ids": [
"registration_id1",
"registration_id2"
]
}
- ค่าของสถิติจะเป็น null หากไม่พบสถิติ มิฉะนั้นจะเป็นค่าของสถิติ
ลบ Alias
ลบ alias และความสัมพันธ์การเชื่อมโยงระหว่าง alias และอุปกรณ์
DELETE /v4/aliases/{alias_value}
ตัวอย่างคำขอ
ส่วนหัวคำขอ
DELETE /v4/aliases/{alias_value}?platform=android,ios
Authorization: Basic (base64 auth string)
Accept: application/json
พารามิเตอร์คำขอ
- platform เป็นพารามิเตอร์ที่ไม่จำเป็น, หากไม่ได้ระบุไว้ จะเป็นค่าเริ่มต้นสำหรับทุกแพลตฟอร์ม
ตัวอย่างการส่งคืน
- สำเร็จ
success
- ล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
รับสถานะออนไลน์ของผู้ใช้
ที่อยู่สำหรับเรียกใช้งาน
POST /v4/devices/status/
ตัวอย่างคำขอ
ส่วนหัวของคำขอ
POST /v4/devices/status/
Authorization: Basic (base64 auth string)
Accept: application/json
ข้อมูลคำขอ
{
"registration_ids": [
"010b81b3582",
"0207870f1b8",
"0207870f9b8"
]
}
พารามิเตอร์คำขอ
- registration_ids หมายเลข registration_id ของผู้ใช้ที่ต้องการตรวจสอบสถานะออนไลน์ รองรับการตรวจสอบสูงสุด 1,000 registration_ids
- ต้องมี Appkey ที่เปิดใช้งานบริการนี้แล้วจึงจะสามารถเรียกใช้ API นี้ได้
ตัวอย่างการตอบกลับ
การตอบกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลการตอบกลับ
[
{
"regid": "010b81b3582",
"online": true
},
{
"regid": "0207870f1b8",
"online": false,
"last_online_time": "2014-12-16 10:57:07"
},
{
"regid": "0207870f9b8",
"online": false
}
]
คำอธิบายข้อมูลการตอบกลับ
- online
- true: ออนไลน์ไม่เกิน 10 นาที
- false: ออฟไลน์เกิน 10 นาที
- last_online_time
- หาก online เป็น true ฟิลด์นี้จะไม่ถูกส่งกลับ
- หาก online เป็น false และฟิลด์นี้ไม่ถูกส่งกลับ หมายถึงเวลาที่ออนไลน์ล่าสุดคือสองวันก่อน
- regid ที่ไม่ถูกต้องหรือไม่ใช่ regid ของ appkey จะไม่ผ่านการตรวจสอบ
อินเทอร์เฟซการสอบถามโควต้าข้อมูล TAG/alias
สอบถามข้อมูลโควต้าที่เกี่ยวข้องของ AppKey, แพลตฟอร์ม และ tag ที่ระบุ จำนวน tag ที่สามารถสอบถามได้ในครั้งเดียวไม่เกิน 1,000
ที่อยู่สำหรับเรียกใช้งาน
GET /v4/tags/quota-info?tags=tag1&platform=android
Authorization: Basic (base64 auth string)
Accept: application/json
ตัวอย่างคำขอ
curl --location 'https://pushapi-sgp.engagelab.com/v4/tags/quota-info?platform=android&tags=tag1&tags=tag2' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YjA2MTBmZGE0M2JmNmFkMTczNGNjMWY2OmQyNGMzZDk1Yzk1M2M3YmFkNzRkM2Q5YQ=='
การตอบกลับสำเร็จ
{
"data": {
"totalTagQuota": 100000,
"useTagQuota": 1,
"totalAliasQuota": 100000,
"useAliasQuota": 3,
"tagUidQuotaDetail": [
{
"tagName": "tag1",
"totalUidQuota": 100000,
"useUidQuota": 0
},
{
"tagName": "tag2",
"totalUidQuota": 100000,
"useUidQuota": 0
}
]
}
}
คำจำกัดความของฟิลด์การตอบกลับ
- totalTagQuota: แสดงโควต้าทั้งหมดของ tag ในแอปพลิเคชัน
- useTagQuota: แสดงโควต้าของ tag ที่ถูกใช้งานแล้ว
- totalAliasQuota: แสดงโควต้าทั้งหมดของ alias ในแอปพลิเคชัน
- useAliasQuota: แสดงโควต้าของ alias ที่ถูกใช้งานแล้ว
- tagUidQuota: แสดงโควต้าจำนวนอุปกรณ์ของ tag แต่ละตัว
- useUidQuota: แสดงรายละเอียดจำนวนอุปกรณ์ที่ผูกกับ tag แต่ละตัว
การตอบกลับล้มเหลว
{
"error": {
"code": 27002,
"message": "Illegal parameter"
}
}
รหัสสถานะ HTTP
ดูเอกสารอ้างอิง: Http-Status-Code
รหัสการตอบกลับธุรกิจ
Code | คำอธิบาย | รายละเอียด | รหัสสถานะ HTTP |
---|---|---|---|
21004 | ข้อผิดพลาดการรับรองความถูกต้อง | appkey ไม่ถูกต้อง | 401 |
27000 | ข้อผิดพลาดหน่วยความจำระบบ | โปรดลองอีกครั้ง | 500 |
27001 | ข้อผิดพลาดพารามิเตอร์ | ข้อมูลการตรวจสอบว่างเปล่า | 401 |
27002 | ข้อผิดพลาดพารามิเตอร์ | พารามิเตอร์ไม่ถูกต้อง | 400 |
27004 | ข้อผิดพลาดพารามิเตอร์ | การตรวจสอบล้มเหลว | 401 |
27005 | ข้อผิดพลาดพารามิเตอร์ | รูปแบบ regisID ไม่ถูกต้อง | 400 |
21008 | ข้อผิดพลาดพารามิเตอร์ | app_key ไม่ใช่สตริง 24 ตัวอักษรหรือไม่มีอยู่จริง | 400 |
27010 | ข้อผิดพลาดพารามิเตอร์ | Alias ถูกผูกกับ regid อื่นแล้ว | 400 |
27011 | ข้อจำกัดของระบบ | จำนวน tag ที่อุปกรณ์ผูกไว้เกินขีดจำกัด อุปกรณ์สามารถผูก tag ได้สูงสุด 100 tag | 401 |
27012 | ข้อผิดพลาดพารามิเตอร์ | tag ที่อุปกรณ์ต้องการผูกไม่มีอยู่ | 401 |
27013 | ข้อผิดพลาดพารามิเตอร์ | จำนวน tag ในแอปพลิเคชันเกินขีดจำกัด แอปพลิเคชันสามารถสร้าง tag ได้สูงสุด 100,000 tag | 401 |
27014 | ข้อจำกัดของระบบ | จำนวนอุปกรณ์ที่ผูกใน tag เกินขีดจำกัด tag สามารถผูกอุปกรณ์ได้สูงสุด 100,000 อุปกรณ์ | 401 |
27015 | ข้อผิดพลาดพารามิเตอร์ | Alias ที่อุปกรณ์ผูกไม่มีอยู่ | 401 |
27016 | ข้อจำกัดของระบบ | จำนวน alias ในแอปพลิเคชันเกินขีดจำกัด แอปพลิเคชันสามารถสร้าง alias ได้สูงสุด 100,000 alias | 401 |
27017 | ข้อผิดพลาดพารามิเตอร์ | ความยาวของ tag เกิน 40 ตัวอักษร | 401 |