API งานที่กำหนดเวลา
ภาพรวม
API ระดับนี้รองรับฟังก์ชันการกำหนดเวลา
นี่คือโมดูลการดำเนินงานที่ค่อนข้างเป็นอิสระซึ่งรักษาวัตถุ Schedule
หมายเหตุ: เรียกใช้ฟังก์ชัน API เพื่อสอบถาม/อัปเดต/ลบข้อมูล Schedule
การตรวจสอบการเรียกใช้
สำหรับข้อมูลเพิ่มเติม โปรดดูที่ /docs/web-push/rest-api/rest-api-overview#authentication-method
คำอธิบายพารามิเตอร์ Schedule
ทุกงานที่กำหนดเวลารวมถึงฟิลด์สี่ฟิลด์ ได้แก่ name, enabled, trigger และ push
คีย์เวิร์ด | ประเภท | จำเป็นหรือไม่ | คำอธิบาย |
---|---|---|---|
name | string | จำเป็น | ชื่องานที่กำหนดเวลา ซึ่งต้องไม่เกิน 255 ไบต์ และประกอบด้วยอักษรจีน ตัวอักษร ตัวเลข และขีดล่าง |
enabled | bool | จำเป็น | สถานะปัจจุบันของงาน ต้องเป็น true เมื่อสร้างงาน |
trigger | JSOS Object | จำเป็น | เงื่อนไขการทริกเกอร์และเวลาสำหรับงานที่กำหนดเวลา ปัจจุบันรองรับงานครั้งเดียว (single ) งานเป็นระยะ (periodical ) และการส่งอัจฉริยะ (intelligent ) |
push | JSOS Object | จำเป็น | สำหรับข้อมูลเนื้อหาการ push |
คำอธิบาย Single
อธิบายเงื่อนไขการทริกเกอร์สำหรับงานที่กำหนดเวลา รวมถึงเวลาและประเภทของงานที่กำหนดเวลา
พารามิเตอร์ | ประเภท | จำเป็นหรือไม่ | คำอธิบาย |
---|---|---|---|
time | String | จำเป็น | เวลาทริกเกอร์สำหรับงานที่กำหนดเวลา ในรูปแบบเวลามาตรฐาน "yyyy-mm-dd hh:mm:ss" เช่น "2014-02-15 13:16:59" รูปแบบที่ไม่สมบูรณ์เช่น "2014-2-15 13:16:59" หรือ "2014-12-15 13:16" ไม่สามารถยอมรับได้ เวลาล่าสุดสำหรับงานที่กำหนดเวลาไม่สามารถเกินหนึ่งปี |
zone_type | Int | จำเป็น | ระบุประเภทของงานที่กำหนดเวลา: 1 สำหรับการทริกเกอร์ตามเขตเวลาที่ตั้งไว้โดยไซต์หลัก 2 สำหรับการทริกเกอร์ตามเขตเวลาของเทอร์มินัลผู้ใช้ |
คำอธิบาย Periodical
พารามิเตอร์ | ประเภท | จำเป็นหรือไม่ | คำอธิบาย |
---|---|---|---|
start | String | จำเป็น | เวลาเริ่มต้นที่มีผลของงานเป็นระยะ ในรูปแบบ "yyyy-MM-dd HH:mm:ss" อย่างเคร่งครัด และต้องเป็นนาฬิกา 24 ชั่วโมง |
end | String | จำเป็น | เวลาหมดอายุของงานเป็นระยะ รูปแบบเดียวกันกับด้านบน ช่วงเวลาสูงสุดสำหรับงานเป็นระยะไม่ควรเกินหนึ่งปี |
time | String | จำเป็น | เวลาเฉพาะที่งานเป็นระยะถูกทริกเกอร์ ในรูปแบบ "HH:mm:ss" อย่างเคร่งครัด และต้องเป็นนาฬิกา 24 ชั่วโมง |
time_unit | String | จำเป็น | หน่วยเวลาที่เล็กที่สุดสำหรับการดำเนินงานเป็นระยะ มีสามตัวเลือก: "day", "week" และ "month" ไม่คำนึงถึงตัวพิมพ์เล็กพิมพ์ใหญ่ |
point | String | จำเป็น | รายการที่สอดคล้องกับ time_unit: ดูตารางด้านล่าง |
zone_type | Int | จำเป็น | ระบุประเภทของงานที่กำหนดเวลา: 1 สำหรับการทริกเกอร์ตามเขตเวลาที่ตั้งไว้โดยไซต์หลัก 2 สำหรับการทริกเกอร์ตามเขตเวลาของเทอร์มินัลผู้ใช้ |
ข้อมูลรายละเอียดเกี่ยวกับพารามิเตอร์ point:
time_unit | point | คำอธิบาย |
---|---|---|
day | NULL | เมื่อ time_unit เป็น day point ไม่สามารถใช้ได้ |
week | "MON","TUE","WED","THU","FRI","SAT","SUN" | สำหรับ week point สามารถเป็นหนึ่งวันหรือหลายวันเพื่อระบุเวลาทริกเกอร์ ไม่คำนึงถึงตัวพิมพ์เล็กพิมพ์ใหญ่ |
month | "01","02","03" ... "31" | สำหรับ month point สอดคล้องกับวันที่ที่ถูกต้องของเดือน จะไม่ทริกเกอร์ในวันที่ไม่ถูกต้อง เช่น วันที่ 31 หรือ 30 ในเดือนกุมภาพันธ์ |
คำอธิบาย Intelligent
พารามิเตอร์ | ประเภท | จำเป็นหรือไม่ | ความหมาย |
---|---|---|---|
backup_time | String | จำเป็น | การส่งอัจฉริยะเป็นคุณลักษณะเฉพาะของ EngageLab ออกแบบมาเพื่อเพิ่มอัตราการคลิกของการแจ้งเตือน ทุกครั้งที่ผู้ใช้เข้าถึงบริการของคุณผ่านเว็บไซต์หรือแอปมือถือที่มี SDK ของ EngageLab ติดตั้งไว้ เราจะติดตามเวลาที่ใช้งานล่าสุดของผู้ใช้ ระบบจะบันทึกข้อมูลนี้ และตามนิสัยการใช้งานในอดีตของผู้ใช้ จะส่งการแจ้งเตือนไปยังผู้ใช้แต่ละคนในเวลาที่เหมาะสมตามเขตเวลาของเทอร์มินัลผู้ใช้แต่ละคน สำหรับผู้ใช้ที่ไม่มีข้อมูลประวัติการใช้งาน คุณต้องเลือกว่าจะส่งทันทีหรือระบุเวลาในการส่ง (ตามเขตเวลาของผู้ใช้ปลายทาง) |
สร้างงานที่กำหนดเวลา
คำขอ API งาน
POST v4/schedules
ข้อจำกัดการเรียก
- จำนวนรวมของงานที่กำหนดเวลาที่ถูกต้อง (ยังไม่หมดอายุ) คือ 1000 ตามค่าเริ่มต้น หากเกินจำนวนนี้ งานที่กำหนดเวลาใหม่จะแจ้งล้มเหลว
- เวลาสูงสุดของงานไม่จำกัด แต่แนะนำไม่ให้เกิน 1 ปี
ตัวอย่างคำขอ
ส่วนหัวคำขอ
POST /v4/schedules
Authorization: Basic (สตริง base64 auth)
Content-Type: application/json
Accept: application/json
เนื้อหาคำขอ
{
"name":"ตัวอย่างการ push ที่กำหนดเวลา",
"enabled":true,
"trigger":{
"single":{
"time":"2022-11-23 19:20:00",
"zone_type":1
}
},
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"web",
"notification":{
"web": {
"alert": "ยินดีต้อนรับสู่ engagelab",
"title": "ยินดีต้อนรับสู่ engagelab",
"url": "https://www.engagelab.com/",
"extras": {
"key1": "value1"
}
}
},
"message":{
},
"options":{
"time_to_live":60
}
},
"request_id":"12345",
"custom_args":{
"Engagelab": "push ถึงคุณ"
}
}
}
คำอธิบายเนื้อหาคำขอ
- zone_type เป็นฟิลด์ที่จำเป็น ค่าคือ 1 หรือ 2 มิฉะนั้นจะถูก push ตามเขตเวลาของเซิร์ฟเวอร์
- ฟิลด์ enabled ต้องเป็น true เมื่อสร้างครั้งแรก ไม่สามารถสร้างงานด้วย enabled: false มิฉะนั้นการสร้างจะล้มเหลว
- push ต้องเป็นการดำเนินการ push ที่ถูกต้องและถูกกฎหมาย มิฉะนั้นการสร้างจะล้มเหลว
ตัวอย่างการส่งกลับ:
ส่งกลับสำเร็จ
< HTTP/1.1 200 OK
< Server: fasthttp
< Date: Thu, 01 Dec 2022 07:17:45 GMT
< Content-Type: application/json
< Content-Length: 85
{
"schedule_id": "a9b85590-6cec-4f91-b277-2d82b0e20ef6",
"name": "ชื่องานที่กำหนดเวลา"
}
ส่งกลับข้อผิดพลาด
HTTP/1.1 400 BAD REQUEST
Content-Type: application/json; charset=utf-8
{
"error": {
"code": 28400,
"message": "ข้อความแสดงข้อผิดพลาด"
}
}
ตัวอย่างคำของานที่กำหนดเวลาซ้ำ
{
"name":"ตัวอย่างการ Push ที่กำหนดเวลา_periodical",
"enabled":true,
"trigger":{
"periodical": {
"start": "2024-01-01 00:00:00",
"end": "2024-02-10 00:00:00",
"time": "12:00:00",
"time_unit": "day",
"point": [],
"zone_type": 1
}
},
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"web",
"notification":{
"web": {
"alert": "ยินดีต้อนรับสู่ engagelab",
"title": "ยินดีต้อนรับสู่ engagelab",
"url": "https://www.engagelab.com/",
"extras": {
"key1": "value1"
}
}
},
"message":{
},
"options":{
"time_to_live":60
}
},
"request_id":"67890",
"custom_args":{
"Engagelab": "push ถึงคุณ"
}
}
}
รับรายการงานที่กำหนดเวลาที่ถูกต้อง
- รับรายการงานที่กำหนดเวลาที่ถูกต้อง (ยังไม่หมดอายุ) ในปัจจุบัน
คำขอ API URL
GET v4/schedules?page=
ตัวอย่างคำขอ
ส่วนหัวคำขอ
GET /v4/schedules?page=
Authorization: Basic (สตริง base64 auth)
Content-Type: application/json
Accept: application/json
- ส่งกลับรายละเอียดรายการงานที่กำหนดเวลาของหน้าคำขอปัจจุบัน หากไม่ระบุหน้า หน้าจะเป็น 1
- กฎการเรียงลำดับ: เวลาสร้าง เสร็จสิ้นโดยบริการ schedule
- หากจำนวนหน้าที่ร้องขอมากกว่าจำนวนหน้าทั้งหมด หน้าจะเป็นค่าที่ร้องขอและ schedule จะว่างเปล่า
- แต่ละหน้าสามารถส่งกลับได้สูงสุด 50 งาน หากจำนวนงานจริงในหน้าคำขอน้อยกว่า 50 จะส่งกลับจำนวนงานจริง
ตัวอย่างการส่งกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"total_count": 1000,
"total_pages": 5
"page": 4, // หน้าปัจจุบัน
"schedules": [
{
"schedule_id": "0eac1b80-c2ac-4b69-948b-c65b34b96512",
"name": "",
"enabled":true
},
{}, // รายการข้อมูลรายละเอียด]
}
- งานที่กำหนดเวลา 1000 งาน หน้าทั้งหมด 5 หน้า หน้าปัจจุบันคือ 4 รวมข้อมูลงานที่กำหนดเวลา 50 งาน
- อาร์เรย์ schedules คือรายการรายละเอียดงานที่กำหนดเวลา
รับรายละเอียดงานที่กำหนดเวลา
- รับรายละเอียดของงานที่กำหนดเวลาด้วยรหัสงาน schedule ปัจจุบันของผู้ใช้ {schedule_id}
คำขอ API URL
GET v4/schedules/{schedule_id}
ตัวอย่างคำขอ
ส่วนหัวคำขอ
GET /v4/schedules/{schedule_id}
Authorization: Basic (สตริง base64 auth)
Content-Type: application/json
Accept: application/json
ตัวอย่างการส่งกลับ
ส่งกลับสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ส่งกลับข้อมูล
[{
"schedule_id": "0eac1b80-c2ac-4b69-948b-c65b34b96512",
"name": "ตัวอย่างงานที่กำหนดเวลา",
"enabled": true,
"trigger": {...},
"push": {...}
}]
- หาก schedule_id ไม่มีอยู่ จะส่งกลับ 404 หรือจะส่งกลับรายละเอียดของงานที่กำหนดเวลา
รับรหัสข้อความทั้งหมดของงานที่กำหนดเวลา
- รับรหัสข้อความทั้งหมดของงานที่กำหนดเวลาปัจจุบันของผู้ใช้ที่มีรหัส {schedule_id}
คำขอ API URL
GET v4/schedules/{schedule_id}/msg-ids
ตัวอย่างคำขอ
ส่วนหัวคำขอ
GET /v4/schedules/{schedule_id}/msg-ids
Authorization: Basic (สตริง base64 auth)
Content-Type: application/json
Accept: application/json
ตัวอย่างการตอบสนอง
ตอบสนองสำเร็จ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ข้อมูลการตอบสนอง
รูปแบบข้อมูลการส่งกลับได้รับการอัปเดตหลังจากคุณลักษณะงานที่กำหนดเวลาซ้ำออนไลน์ในวันที่ 22 กุมภาพันธ์ 2024 เพิ่มการส่งกลับข้อมูล MsgIds เพื่อแทนที่ msgids แบบเดิม โปรดตรวจสอบให้แน่ใจว่ารหัสของคุณเข้ากันได้
ฟิลด์ ts ระบุเวลาที่งานที่กำหนดเวลาดำเนินการสำเร็จ แม่นยำถึงมิลลิวินาที
{
"count": 1,
"MsgIds": [
"{\"msg_id\":\"1088009\",\"error\":{\"code\":0,\"message\":\"\"},\"needRetry\":false,\"ts\":1707278411611}",
"{\"msg_id\":\"0\",\"error\":{\"code\":1011,\"message\":\"Cannot find sending target\"},\"needRetry\":false,\"ts\":1707278411611}"
]
}
อัปเดตงานที่กำหนดเวลา
- อัปเดตงานที่กำหนดเวลาของรหัสที่ระบุ
คำขอ API URL
PUT v4/schedules/{schedule_id}
ตัวอย่างคำขอ
PUT /v4/schedules/{schedule_id}
Authorization: Basic (สตริง base64 auth)
Content-Type: application/x-www-form-urlencoded
Accept: application/json
{
"name": "งาน",
"enabled": true,
"trigger": {...},
"push": {...}
}
- ไม่สามารถอัปเดตงานที่กำหนดเวลาที่หมดอายุแล้ว
- งานที่กำหนดเวลาที่ถูก push โดยเขตเวลาของเทอร์มินัลและงานที่กำหนดเวลาที่ถูก push โดยเขตเวลาหลักไม่สามารถอัปเดตซึ่งกันและกันได้ และในทางกลับกัน
- สามารถอัปเดตหนึ่งหรือหลายฟิลด์ในอาร์เรย์ ["name", "enabled", "trigger", "push"] เนื้อหาการอัปเดตไม่สามารถเป็นบางส่วน ต้องเป็นเนื้อหาทั้งหมด ดังรายการด้านล่าง:
{
"name":"ตัวอย่างงานที่กำหนดเวลา",
"enabled":true,
"trigger":{
"single":{
"time":"2022-11-23 19:20:00",
"zone_type":1
}
},
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"web",
"notification":{
"web": {
"alert": "ยินดีต้อนรับสู่ engagelab",
"title": "ยินดีต้อนรับสู่ engagelab",
"url": "https://www.engagelab.com/",
"extras": {
"key1": "value1"
}
}
},
"message":{
},
"options":{
"time_to_live":60
}
},
"request_id":"12345",
"custom_args":{
"Engagelab": "push ถึงคุณ"
}
}
}
- ต่อไปนี้เป็นตัวอย่างการอัปเดตที่ไม่ถูกต้องและการอัปเดตที่ถูกต้อง:
## ไม่ถูกต้อง: อัปเดตเฉพาะ alert ในฟิลด์ push:
{
"push": {
"alert": "งานที่กำหนดเวลาเว็บ"
}
}
## ถูกต้อง: อัปเดต alert ในฟิลด์ push:
{
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"งานที่กำหนดเวลาเว็บ",
"notification":{
"web": {
"alert": "ยินดีต้อนรับสู่ engagelab",
"title": "ยินดีต้อนรับสู่ engagelab",
"url": "https://www.engagelab.com/",
"extras": {
"key1": "value1"
}
}
},
"message":{
},
"options":{
"time_to_live":60
}
},
"request_id":"12345",
"custom_args":{
"Engagelab": "push ถึงคุณ"
}
}
}
## ฟิลด์ push ต้องถูกต้อง มิฉะนั้นการอัปเดตจะล้มเหลว
ตัวอย่างการส่งกลับ
ส่งกลับสำเร็จ
HTTP/1.0 200 CREATED
Content-Type: application/json
{
"name":"ตัวอย่างการ Push ที่กำหนดเวลา",
"enabled":true,
"trigger":{
"single":{
"time":"2022-11-23 19:20:00",
"zone_type":1
}
},
"push":{
"from":"push",
"to":{
"registration_id":[
"1a0018970ab49abda3e",
"100d85590955c1d2793"
]
},
"body":{
"platform":"web",
"notification":{
"web": {
"alert": "ยินดีต้อนรับสู่ engagelab",
"title": "ยินดีต้อนรับสู่ engagelab",
"url": "https://www.engagelab.com/",
"extras": {
"key1": "value1"
}
}
},
"message":{
},
"options":{
"time_to_live":60
}
},
"request_id":"12345",
"custom_args":{
"Engagelab": "push ถึงคุณ"
}
}
}
ส่งกลับข้อผิดพลาด
- schedule_id ไม่ถูกต้อง
HTTP/1.0 404 Not Found
Content-Type: application/json
- การดำเนินการอัปเดตที่ไม่ถูกต้อง
HTTP/1.0 400 BAD REQUEST
Content-Type: application/json
ลบงานที่กำหนดเวลา
คำขอ API URL
DELETE v4/schedules/{schedule_id}
schedule_id
คือรหัสของงาน schedule ที่มีอยู่ หากschedule_id
ไม่ถูกต้องหรือไม่ใช่รหัสที่ถูกต้อง ผลลัพธ์จะเป็นข้อผิดพลาด 404
ตัวอย่างคำขอ
DELETE /v4/schedules/{schedule_id}
Authorization: Basic (สตริง base64 auth)
Content-Type: application/json
Accept: application/json
ตัวอย่างการส่งกลับ
ส่งกลับสำเร็จ
HTTP/1.0 200
Content-Type: application/json
Content-Length: 0
ส่งกลับข้อผิดพลาด
HTTP/1.0 404 Not Found
Content-Type: application/json
Content-Length: 0
{
"error":{
"code":28404,
"message":"ข้อความแสดงข้อผิดพลาด"
}
}
รหัสข้อผิดพลาด
รหัส | HTTP | คำอธิบาย | ข้อความแสดงข้อผิดพลาด | คำอธิบายโดยละเอียด |
---|---|---|---|---|
- | 200 | ส่งกลับสำเร็จ | - | สถานะสำเร็จ |
28100 | 400 | พารามิเตอร์ไม่ถูกต้อง | งาน schedule-task ไม่ถูกต้อง: ส่วนไม่ถูกต้อง; ถึงกำหนดแล้ว; หมดอายุแล้ว; ข้อมูลคำขอไม่ใช่ json; อัปเดตงานเป้าหมาย; ลบงานเป้าหมาย; คำขอ schedule ไม่มีอยู่ | |
28101 | 401 | การตรวจสอบสิทธิ์ล้มเหลว | การตรวจสอบสิทธิ์พื้นฐานล้มเหลว | appkey, masterscrect ไม่ตรงกับ schedule server |
28104 | 404 | งาน schedule ไม่มีอยู่ | การดำเนินการ schedule ที่ร้องขอไม่มีอยู่ | งานที่สอดคล้องกันถูกส่งแล้ว หรือรหัส schedule ไม่ถูกต้อง |
28105 | 404 | ตั้งเวลาโดยไม่มีเป้าหมายการ push ที่สอดคล้องกัน | งาน push ไม่ถูกต้อง ไม่มีเป้าหมายการ push สำหรับเวลาที่กำหนด | พารามิเตอร์เวลา push ไม่ถูกต้อง |
28200 | 500 | ข้อผิดพลาดภายใน | ข้อผิดพลาดภายในเซิร์ฟเวอร์ | เกิดข้อผิดพลาดที่ไม่คาดคิด |
28203 | 503 | ข้อผิดพลาดระบบภายใน โปรดลองอีกครั้งในภายหลัง | การดำเนินการหมดเวลา โปรดลองอีกครั้งในภายหลัง | ข้อผิดพลาดการสื่อสารกับ schedule-server |