API แท็กและนามแฝง
API อุปกรณ์ใช้สำหรับการสอบถาม ตั้งค่า อัปเดต และลบข้อมูลแท็กและนามแฝงของอุปกรณ์บนฝั่งเซิร์ฟเวอร์ เมื่อใช้งานควรระวังไม่ให้แท็กที่ตั้งไว้จากฝั่งเซิร์ฟเวอร์ถูกเขียนทับโดยฝั่งไคลเอนต์
- หากคุณไม่คุ้นเคยกับแท็ก ตรรกะของนามแฝงแนะนำให้ใช้เพียงฝั่งไคลเอนต์หรือเซิร์ฟเวอร์เท่านั้น
- หากใช้ทั้งสองฝั่งพร้อมกัน โปรดยืนยันว่าแอปพลิเคชันของคุณสามารถจัดการการซิงโครไนซ์ของแท็กและนามแฝงได้
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแท็กและนามแฝง โปรดดูเอกสาร API ของแพลตฟอร์มไคลเอนต์ที่เกี่ยวข้อง
กฎและข้อจำกัดในการใช้แท็ก
- ข้อจำกัดจำนวนแท็ก: ภายใต้ appkey เดียวกัน สามารถสร้างแท็กได้สูงสุด 100,000 แท็ก
- ข้อจำกัดความยาวแท็ก: ความยาวสูงสุดของแต่ละแท็กคือ 40 ไบต์ อักขระที่อนุญาตได้แก่ ตัวอักษร (คำนึงถึงตัวพิมพ์ใหญ่เล็ก), ตัวเลข, ขีดล่าง และอักษรจีน
- ข้อจำกัดการผูกแท็กกับอุปกรณ์: อุปกรณ์แต่ละเครื่องสามารถผูกกับแท็กได้สูงสุด 100 แท็ก
- ข้อจำกัดจำนวนอุปกรณ์: ภายใต้แท็กเดียว สามารถเพิ่มอุปกรณ์ได้สูงสุด 100,000 เครื่อง
หากคุณเป็นสมาชิกแผนแบบชำระเงินและต้องการปรับขีดจำกัดการใช้งานของ AppKey ที่ชำระเงิน โปรดติดต่อทีมธุรกิจของเราที่: Sales@engagelab.com
กฎและข้อจำกัดในการใช้นามแฝง
- การจับคู่อุปกรณ์กับนามแฝง: นามแฝงหนึ่งชื่อสามารถจับคู่กับอุปกรณ์ได้เพียงหนึ่งเครื่องเท่านั้น ไม่สามารถจับคู่กับหลายเครื่อง ในทางกลับกัน อุปกรณ์แต่ละเครื่องภายในขอบเขตของ appkey สามารถจับคู่กับนามแฝงได้เพียงหนึ่งชื่อเท่านั้น ไม่สามารถจับคู่กับหลายชื่อ
- ข้อจำกัดจำนวนนามแฝง: ภายใต้ appkey เดียวกัน สามารถสร้างนามแฝงได้สูงสุด 100,000 ชื่อ
- ข้อจำกัดความยาวนามแฝง: ความยาวสูงสุดของแต่ละนามแฝงคือ 40 ไบต์ อักขระที่อนุญาตได้แก่ ตัวอักษร (คำนึงถึงตัวพิมพ์ใหญ่เล็ก), ตัวเลข, ขีดล่าง และอักษรจีน
หากคุณเป็นสมาชิกแผนแบบชำระเงินและต้องการปรับขีดจำกัดการใช้งานของ AppKey ที่ชำระเงิน โปรดติดต่อทีมธุรกิจของเราที่: Sales@engagelab.com
ภาพรวม API
API อุปกรณ์ใช้สำหรับการสอบถาม ตั้งค่า อัปเดต และลบข้อมูลแท็กและนามแฝงของอุปกรณ์บนฝั่งเซิร์ฟเวอร์
ประกอบด้วยสามชุด API: อุปกรณ์, แท็ก และนามแฝง โดย:
- อุปกรณ์ ใช้สำหรับสอบถาม/ตั้งค่าคุณสมบัติต่าง ๆ ของอุปกรณ์ รวมถึงแท็กและนามแฝง
- แท็ก ใช้สำหรับสอบถาม/ตั้งค่า/ลบแท็กของอุปกรณ์
- นามแฝง ใช้สำหรับสอบถาม/ตั้งค่า/ลบนามแฝงของอุปกรณ์
ข้อมูลสำคัญที่จำเป็นต้องใช้คือรหัสลงทะเบียน (registration ID):
registration_id ของอุปกรณ์จะได้รับหลังจากที่ไคลเอนต์ถูกอินทิเกรต ดูเอกสาร API บนเว็บสำหรับรายละเอียด
เซิร์ฟเวอร์ไม่ได้ให้ API เพื่อรับค่า registrationID ของอุปกรณ์ นักพัฒนาต้องรับ registration ID จากไคลเอนต์และอัปโหลดไปยังเซิร์ฟเวอร์นักพัฒนาเพื่อจัดเก็บ
สอบถามจำนวนแท็กภายใต้ AppKey
URL ปลายทาง
GET /v4/tags_count
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
GET /v4/tags_count
Authorization: Basic (สตริง base64 auth)
Accept: application/json
ตัวอย่างคำสั่ง
curl -X GET http://127.0.0.1/v4/tags_count?tags=tag1&tags=tag2&platform=ios -u "appKey:appSecret"
พารามิเตอร์การร้องขอ
- Tag: สตริงแท็กที่ต้องการสอบถาม เป็นฟิลด์ที่จำเป็น อนุญาตให้สอบถามได้สูงสุด 1,000 แท็กต่อครั้ง (tags=tag1&tags=tag2&tags=tag3)
- platform: แพลตฟอร์มที่ต้องการสอบถาม เป็นฟิลด์ที่จำเป็น ค่าที่อนุญาตคือ android, ios ไม่อนุญาตให้ใช้ค่าอื่น
ตัวอย่างการตอบกลับ
- การตอบกลับที่สำเร็จจะส่งคืนออบเจ็กต์ JSON ที่มีฟิลด์
tagsCount
นี่คือคอลเลกชันคู่คีย์-ค่าที่คีย์คือชื่อแท็กและค่าคือจำนวนของแท็กนั้น - หากการร้องขอล้มเหลว จะส่งคืนออบเจ็กต์ 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"
}
}
สอบถามนามแฝงและแท็กของอุปกรณ์
- รับคุณสมบัติทั้งหมดของอุปกรณ์ปัจจุบัน รวมถึงแท็กและนามแฝง
URL การเรียก
GET /v4/devices/{registration_id}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
GET /v4/devices/{registration_id}
Authorization: Basic (สตริง base64 auth)
Accept: application/json
พารามิเตอร์การร้องขอ
- ไม่มี
ตัวอย่างการตอบกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งกลับ
{"tags": ["tag1", "tag2"],
"alias": "alias1"
}
- หากไม่พบสถิติ ค่าจะเป็น null มิฉะนั้นจะเป็นค่าของสถิติ
ตั้งค่านามแฝงและแท็กของอุปกรณ์
- อัปเดตคุณสมบัติที่ระบุของอุปกรณ์ปัจจุบัน ปัจจุบันรองรับแท็กและนามแฝง
URL การเรียก
POST /v4/devices/{registration_id}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
POST /v4/devices/{registration_id}
Authorization: Basic (สตริง base64 auth)
Accept: application/json
ข้อมูลการร้องขอ
{
"tags": {
"add": [
"tag1",
"tag2"
],
"remove": [
"tag3",
"tag4"
]
},
"alias": "alias1",
}
พารามิเตอร์การร้องขอ
- tags: รองรับ add, remove หรือสตริงว่าง เมื่อพารามิเตอร์ tags เป็นสตริงว่าง หมายถึงการล้างแท็กทั้งหมด ภายใต้ add/remove จะเพิ่มหรือลบแท็กที่ระบุ
- alias: อัปเดตคุณสมบัติ alias ของอุปกรณ์ เมื่อ alias เป็นสตริงว่าง จะลบนามแฝงของอุปกรณ์ที่ระบุ
ตัวอย่างการตอบกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งกลับ
success
ส่งกลับล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
ลบอุปกรณ์
- ลบอุปกรณ์
URL การเรียก
DELETE /v4/devices/{registration_id}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
DELETE /v4/devices/{registration_id}
Authorization: Basic (สตริง base64 auth)
Accept: application/json
ข้อมูลการร้องขอ
- ไม่มี
พารามิเตอร์การร้องขอ
- ไม่มี
ตัวอย่างการตอบกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งกลับ
success
ส่งกลับล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
สอบถามรายการแท็ก
- รับรายการแท็กทั้งหมดของแอปพลิเคชันปัจจุบัน
URL การเรียก
GET /v4/tags/
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
GET /v4/tags/
Authorization: Basic (สตริง base64 auth)
Accept: application/json
พารามิเตอร์การร้องขอ
- ไม่มี
ตัวอย่างการร้องขอ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งกลับ
{
"tags": [
"tag1",
"tag2"
]
}
- ค่าของสถิติจะเป็น null หากไม่พบสถิติ มิฉะนั้นจะเป็นค่าของสถิติ
สอบถามความสัมพันธ์การผูกอุปกรณ์กับแท็ก
- สอบถามว่าอุปกรณ์อยู่ภายใต้แท็กหรือไม่
URL การเรียก
GET /v4/tags/{tag_value}/registration_ids/{registration_id}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
GET /v4/tags/{tag_value}/registration_ids/090c1f59f89
Authorization: Basic (สตริง base64 auth)
Accept: application/json
พารามิเตอร์การร้องขอ
- registration_id จำเป็น registration_id ของอุปกรณ์
ตัวอย่างการตอบกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งกลับ
{"result": true/false}
อัปเดตแท็ก
- เพิ่มหรือลบอุปกรณ์สำหรับแท็ก
URL การเรียก
POST /v4/tags/{tag_value}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
POST /v4/tags/{tag_value}
Authorization: Basic (สตริง base64 auth)
Accept: application/json
ข้อมูลการร้องขอ
{
"registration_ids":{
"add": [
"registration_id1",
"registration_id2"
],
"remove": [
"registration_id1",
"registration_id2"
]
}
}
พารามิเตอร์การร้องขอ
- action ประเภทการดำเนินการ มีสองตัวเลือก: "add", "remove" ซึ่งระบุว่าการร้องขอเป็น "เพิ่ม" หรือ "ลบ"
- registration_ids registration_id ของอุปกรณ์ที่จะเพิ่ม/ลบ
- add/remove รองรับอุปกรณ์ได้สูงสุด 1,000 เครื่องแต่ละรายการ
ตัวอย่างการตอบกลับ
ส่งกลับสำเร็จ
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\"]}"
}
}
ลบแท็ก
ลบแท็กและความสัมพันธ์ระหว่างแท็กกับอุปกรณ์
URL การเรียก
DELETE /v4/tags/{tag_value}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
DELETE /v4/tags/{tag_value}?platform=web
Authorization: Basic (สตริง base64 auth)
Accept: application/json
พารามิเตอร์การร้องขอ
- platform เป็นพารามิเตอร์ที่ไม่จำเป็น หากไม่ระบุ จะถือว่าเป็นทุกแพลตฟอร์ม
ตัวอย่างการตอบกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-
ข้อมูลที่ส่งกลับ
success
ส่งกลับล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
สอบถามนามแฝง (ความสัมพันธ์การผูกกับอุปกรณ์)
GET /v4/aliases/{alias_value}
- รับอุปกรณ์ภายใต่นามแฝงที่ระบุ
URL การเรียก
GET /v4/aliases/{alias_value}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
GET /v4/aliases/{alias_value}?platform=web
Authorization: Basic (สตริง base64 auth)
Accept: application/json
พารามิเตอร์การร้องขอ
- platform เป็นพารามิเตอร์ที่ไม่จำเป็น หากไม่ระบุ จะถือว่าเป็นทุกแพลตฟอร์ม
ตัวอย่างการตอบกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลที่ส่งกลับ
{
"registration_ids": [
"registration_id1",
"registration_id2"
]
}
- ค่าของสถิติจะเป็น null หากไม่พบสถิติ มิฉะนั้นจะเป็นค่าของสถิติ
ลบนามแฝง
ลบนามแฝงและความสัมพันธ์การผูกระหว่างนามแฝงกับอุปกรณ์
DELETE /v4/aliases/{alias_value}
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
DELETE /v4/aliases/{alias_value}?platform=web
Authorization: Basic (สตริง base64 auth)
Accept: application/json
พารามิเตอร์การร้องขอ
- platform เป็นพารามิเตอร์ที่ไม่จำเป็น หากไม่ระบุ จะถือว่าเป็นทุกแพลตฟอร์ม
ตัวอย่างการตอบกลับ
- สำเร็จ
success
- ล้มเหลว
{
"error":{
"code":27002,
"message":"unknown error"
}
}
รับสถานะออนไลน์ของผู้ใช้
URL การเรียก
POST /v4/devices/status/
ตัวอย่างการร้องขอ
ส่วนหัวการร้องขอ
POST /v4/devices/status/
Authorization: Basic (สตริง base64 auth)
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
อินเทอร์เฟซสอบถามข้อมูลโควต้าแท็ก/นามแฝง
สอบถามข้อมูลโควต้าที่เกี่ยวข้องของ AppKey, แพลตฟอร์ม และแท็กที่ระบุ จำนวนแท็กในการสอบถามครั้งเดียวไม่เกิน 1,000
URL การเรียก
GET /v4/tags/quota-info?tags=tag1&platform=android
Authorization: Basic (สตริง base64 auth)
Accept: application/json
ตัวอย่างการร้องขอ
curl --location 'https://webpushapi-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: หมายถึงโควต้าทั้งหมดของแท็กภายใต้แอปพลิเคชัน
- useTagQuota: หมายถึงโควต้าแท็กที่ใช้ไป
- totalAliasQuota: หมายถึงโควต้าทั้งหมดของนามแฝงภายใต้แอปพลิเคชัน
- useAliasQuota: หมายถึงโควต้านามแฝงที่ใช้ไป
- tagUidQuota: หมายถึงโควต้าจำนวนอุปกรณ์สำหรับแท็กเดียว
- useUidQuota: หมายถึงรายละเอียดจำนวนอุปกรณ์ที่ผูกกับแต่ละแท็ก
ส่งกลับล้มเหลว
{
"error": {
"code": 27002,
"message": "Illegal parameter"
}
}
รหัสสถานะ HTTP
เอกสารอ้างอิง: https://www.engagelab.com/docs/web-push/rest-api/http-status-code
รหัสการตอบกลับทางธุรกิจ
รหัส | คำอธิบาย | คำอธิบายโดยละเอียด | รหัสสถานะ HTTP |
---|---|---|---|
21004 | ข้อผิดพลาดการตรวจสอบสิทธิ์ | appkey ไม่ถูกต้อง | 401 |
27000 | ข้อผิดพลาดหน่วยความจำระบบ | โปรดลองอีกครั้ง | 500 |
27001 | ข้อผิดพลาดพารามิเตอร์ | ข้อมูลการตรวจสอบว่างเปล่า | 401 |
27002 | ข้อผิดพลาดพารามิเตอร์ | พารามิเตอร์ไม่ถูกต้อง | 400 |
27004 | ข้อผิดพลาดพารามิเตอร์ | การตรวจสอบล้มเหลว | 401 |
27005 | ข้อผิดพลาดพารามิเตอร์ | รูปแบบ regisID ไม่ถูกต้อง | 400 |
21008 | ข้อผิดพลาดพารามิเตอร์ | app_key ไม่ใช่สตริง 24 ตัวอักษรหรือไม่มีอยู่ | 400 |
27010 | ข้อผิดพลาดพารามิเตอร์ | นามแฝงถูกผูกกับ regid อื่นแล้ว | 400 |
27011 | ข้อจำกัดระบบ | จำนวนแท็กที่ผูกกับอุปกรณ์เกินขีดจำกัด อุปกรณ์สามารถผูกกับแท็กได้สูงสุด 100 แท็ก | 401 |
27012 | ข้อผิดพลาดพารามิเตอร์ | แท็กที่อุปกรณ์ต้องการผูกไม่มีอยู่ | 401 |
27013 | ข้อผิดพลาดพารามิเตอร์ | จำนวนแท็กในแอปพลิเคชันเกินขีดจำกัด แอปพลิเคชันสามารถสร้างแท็กได้สูงสุด 100,000 แท็ก | 401 |
27014 | ข้อจำกัดระบบ | จำนวนการผูกอุปกรณ์ในแท็กเกินขีดจำกัด แท็กสามารถผูกกับอุปกรณ์ได้สูงสุด 100,000 เครื่อง | 401 |
27015 | ข้อผิดพลาดพารามิเตอร์ | นามแฝงที่ผูกกับอุปกรณ์ไม่มีอยู่ | 401 |
27016 | ข้อจำกัดระบบ | จำนวนนามแฝงในแอปพลิเคชันเกินขีดจำกัด แอปพลิเคชันสามารถสร้างนามแฝงได้สูงสุด 100,000 ชื่อ | 401 |
27017 | ข้อผิดพลาดพารามิเตอร์ | ความยาวของแท็กเกิน 40 ตัวอักษร | 401 |