API งานที่กำหนดเวลา

ชั้น API รองรับฟังก์ชันการกำหนดเวลา โดยรักษาออบเจ็กต์ Schedule เพื่อดำเนินงานอย่างอิสระ

หมายเหตุ: งานที่กำหนดเวลาที่สร้างผ่าน API สามารถเรียกค้น แก้ไข หรือลบได้ผ่านการเรียก API เท่านั้น

การตรวจสอบสิทธิ์

โปรดดูรายละเอียดใน วิธีการตรวจสอบสิทธิ์ ในภาพรวมของ REST API

คำอธิบายพารามิเตอร์ Schedule

งานที่กำหนดเวลาแต่ละงานประกอบด้วย 4 ส่วน: name, enabled, trigger และ push

พารามิเตอร์ ประเภท จำเป็นหรือไม่ คำอธิบาย
name String ไม่ ชื่อของงานที่กำหนดเวลา ไม่เกิน 255 ไบต์ ประกอบด้วยอักขระจีน ตัวอักษร ตัวเลข และขีดล่าง
enabled Boolean ไม่ แสดงสถานะปัจจุบันของงาน; ต้องเป็น true เมื่อสร้างงาน
trigger JSON Object ไม่ เงื่อนไขและเวลาที่กระตุ้นงานที่กำหนดเวลา ปัจจุบันรองรับงานครั้งเดียว (single), งานที่เกิดซ้ำ (periodical) และการส่งแบบอัจฉริยะ (intelligent) ดูรายละเอียดเพิ่มเติมที่ คำอธิบาย single
push JSON Object ไม่ ข้อมูลเนื้อหาที่จะส่ง ดูข้อมูลใน เอกสารการส่งแอปพลิเคชัน

คำอธิบาย 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 เราจะติดตามเวลาที่ผู้ใช้เคลื่อนไหวล่าสุด ระบบจะบันทึกข้อมูลเหล่านี้และส่งการแจ้งเตือนให้ผู้ใช้แต่ละคนในเวลาที่เหมาะสมตามเขตเวลาของอุปกรณ์ผู้ใช้ สำหรับผู้ใช้ที่ไม่มีประวัติการเคลื่อนไหว คุณต้องเลือกว่าจะส่งทันทีหรือส่งในเวลาที่กำหนด (ตามเขตเวลาของผู้ใช้ปลายทาง)
  • ส่งทันที: now
  • ส่งตามเวลา: รูปแบบต้องเป็นไปตาม "yyyy-MM-dd HH:mm:ss" และต้องเป็นรูปแบบ 24 ชั่วโมง
  • การสร้างงานที่กำหนดเวลา

    ที่อยู่ API

    POST v4/schedules

    ข้อจำกัด

    • จำนวนงานที่กำหนดเวลาที่มีผล (ยังไม่หมดอายุ) ถูกจำกัดไว้ที่ 1000 โดยค่าเริ่มต้น หากเกินจำนวนนี้ การสร้างงานใหม่จะล้มเหลว
    • งานที่กำหนดเวลาสามารถมีช่วงเวลาสูงสุดได้ไม่จำกัด แต่แนะนำว่าไม่ควรเกิน 1 ปี

    ตัวอย่างคำขอ

    ส่วนหัวคำขอ

    POST /v4/schedules Authorization: Basic (base64 auth string) Content-Type: application/json Accept: application/json
                  
                  POST /v4/schedules
    Authorization: Basic (base64 auth string)
    Content-Type: application/json
    Accept: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    เนื้อหาคำขอ

    ตัวอย่างคำของานที่กำหนดเวลาครั้งเดียว

    { "name":"Timed Push Example_single", "enabled":true, "trigger":{ "single":{ "time":"2022-11-23 19:20:00", "zone_type":1 } }, "push":{ "from":"push", "to":{ "registration_id":[ "1a0018970ab49abda3e", "100d85590955c1d2793" ] }, "body":{ "platform":"android", "notification":{ "alert":"Scheduled task from API", "android":{ "title":"Scheduled task from API", "extras":{ "key1":"value1" } } }, "options":{ "time_to_live":60 } }, "request_id":"12345", "custom_args":{ "Engagelab": "push to you" } } }
                  
                  {
        "name":"Timed Push Example_single",
        "enabled":true,
        "trigger":{
            "single":{
                "time":"2022-11-23 19:20:00",
                "zone_type":1
            }
        },
        "push":{
            "from":"push",
            "to":{
                "registration_id":[
                    "1a0018970ab49abda3e",
                    "100d85590955c1d2793"
                ]
            },
            "body":{
                "platform":"android",
                "notification":{
                    "alert":"Scheduled task from API",
                    "android":{
                        "title":"Scheduled task from API",
                        "extras":{
                            "key1":"value1"
                        }
                    }
                },
                "options":{
                    "time_to_live":60
                }
            },
            "request_id":"12345",
            "custom_args":{
                 "Engagelab": "push to you"
        }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างคำของานที่กำหนดเวลาซ้ำ

    { "name":"Timed Push Example_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":"android", "notification":{ "alert":"repeats periodic tasks", "android":{ "title":"repeats periodic tasks", "extras":{ "key1":"value1" } } }, "options":{ "time_to_live":60 } }, "request_id":"67890", "custom_args":{ "Engagelab": "push to you" } } }
                  
                  {
        "name":"Timed Push Example_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":"android",
                "notification":{
                    "alert":"repeats periodic tasks",
                    "android":{
                        "title":"repeats periodic tasks",
                        "extras":{
                            "key1":"value1"
                        }
                    }
                },
                "options":{
                    "time_to_live":60
                }
            },
            "request_id":"67890",
            "custom_args":{
                 "Engagelab": "push to you"
        }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างคำขอการส่งแบบอัจฉริยะ

    { "name":"Intelligent delivery", "enabled":true, "trigger":{ "intelligent": { "backup_time":"2024-01-01 00:00:00" } } , "push":{ "from":"push", "to":{ "registration_id":[ "1a0018970ab49abda3e", "100d85590955c1d2793" ] }, "body":{ "platform":"android", "notification":{ "alert":"Scheduled task from API", "android":{ "title":"Scheduled task from API", "extras":{ "key1":"value1" } } }, "options":{ "time_to_live":60 } }, "request_id":"12345", "custom_args":{ "Engagelab": "push to you" } } }
                  
                  {
        "name":"Intelligent delivery",
        "enabled":true,
        "trigger":{
            "intelligent": {
            "backup_time":"2024-01-01 00:00:00" 
            }
        } ,
        "push":{
            "from":"push",
            "to":{
                "registration_id":[
                    "1a0018970ab49abda3e",
                    "100d85590955c1d2793"
                ]
            },
            "body":{
                "platform":"android",
                "notification":{
                    "alert":"Scheduled task from API",
                    "android":{
                        "title":"Scheduled task from API",
                        "extras":{
                            "key1":"value1"
                        }
                    }
                },
                "options":{
                    "time_to_live":60
                }
            },
            "request_id":"12345",
            "custom_args":{
                 "Engagelab": "push to you"
        }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายข้อมูลคำขอ

    • zone_type ต้องกรอกค่าที่ระบุ (1 หรือ 2); มิฉะนั้น การส่งจะเป็นไปตามเขตเวลาของเซิร์ฟเวอร์
    • เมื่อสร้างงานที่กำหนดเวลา enabled ต้องเป็น true หากสร้าง enabled: false งานจะล้มเหลว
    • push ต้องเป็นการดำเนินการส่งที่ถูกต้องและถูกกฎหมาย; มิฉะนั้น การสร้างจะล้มเหลว

    ตัวอย่างการตอบกลับ

    การตอบกลับสำเร็จ

    HTTP/1.1 200 OK Content-Type: application/json
                  
                  HTTP/1.1 200 OK
    Content-Type: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    { "schedule_id": "a9b85590-6cec-4f91-b277-2d82b0e20ef6", "name": "Timed Task Name" }
                  
                  {
        "schedule_id": "a9b85590-6cec-4f91-b277-2d82b0e20ef6",
        "name": "Timed Task Name"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตอบกลับล้มเหลว

    HTTP/1.1 400 BAD REQUEST Content-Type: application/json; charset=utf-8
                  
                  HTTP/1.1 400 BAD REQUEST
    Content-Type: application/json; charset=utf-8
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    { "error": { "code": 28400, "message": "error message" } }
                  
                  {
        "error": {
            "code": 28400,
            "message": "error message"
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การดึงรายการงานที่กำหนดเวลาที่มีผล

    • ดึงรายการงานที่กำหนดเวลาที่มีผล (ยังไม่หมดอายุ) ในปัจจุบัน

    ที่อยู่ API

    GET v4/schedules?page=

    ตัวอย่างคำขอ

    ส่วนหัวคำขอ

    GET /v4/schedules?page= Authorization: Basic (base64 auth string) Content-Type: application/json Accept: application/json
                  
                  GET /v4/schedules?page=
    Authorization: Basic (base64 auth string)
    Content-Type: application/json
    Accept: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • ส่งคืนรายละเอียดรายการงานที่กำหนดเวลาของหน้าที่ร้องขอในปัจจุบัน หากไม่ได้ระบุหมายเลขหน้า จะเป็นหน้าที่ 1 โดยค่าเริ่มต้น
    • การจัดเรียงตามเวลาที่สร้าง โดย schedule-service
    • หากหมายเลขหน้าที่ร้องขอเกินจำนวนหน้าทั้งหมด page จะเป็นค่าที่ร้องขอ และ schedules จะว่างเปล่า
    • แต่ละหน้าส่งคืนงานสูงสุด 50 งาน หากจำนวนงานจริงในหน้าที่ร้องขอน้อยกว่า 50 งาน จะส่งคืนจำนวนงานจริง

    ตัวอย่างการตอบกลับ

    การตอบกลับสำเร็จ

    HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8
                  
                  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 }, {} // รายการข้อมูลรายละเอียด ] }
                  
                  {
        "total_count": 1000,
        "total_pages": 5,
        "page": 4,
        "schedules": [
            {
                "schedule_id": "0eac1b80-c2ac-4b69-948b-c65b34b96512",
                "name": "",
                "enabled": true
            },
            {} // รายการข้อมูลรายละเอียด
        ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • แสดงจำนวนงานที่กำหนดเวลาทั้งหมด 1000 งาน รวม 5 หน้า ปัจจุบันเป็นหน้า 4 รวมข้อมูลงานที่กำหนดเวลา 50 รายการ
    • schedules ที่ส่งคืนคือรายการข้อมูลรายละเอียดของงานที่กำหนดเวลา

    การดึงรายละเอียดงานที่กำหนดเวลา

    • ดึงรายละเอียดงานที่กำหนดเวลาของผู้ใช้ปัจจุบันที่มี id เป็น {schedule_id}

    ที่อยู่ API

    GET v4/schedules/{schedule_id}

    ตัวอย่างคำขอ

    ส่วนหัวคำขอ

    GET /v4/schedules/{schedule_id} Authorization: Basic (base64 auth string) Content-Type: application/json Accept: application/json
                  
                  GET /v4/schedules/{schedule_id}
    Authorization: Basic (base64 auth string)
    Content-Type: application/json
    Accept: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างการตอบกลับ

    การตอบกลับสำเร็จ

    HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8
                  
                  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": "0eac1b80-c2ac-4b69-948b-c65b34b96512",
        "name": "ตัวอย่างการส่งที่กำหนดเวลา",
        "enabled": true,
        "trigger": {...},
        "push": {...}
    }]
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    รับ ID ข้อความทั้งหมดของงานที่กำหนดเวลาไว้

    • ดึงรายการ ID ข้อความทั้งหมดของงานที่กำหนดเวลา {schedule_id} ที่เป็นของผู้ใช้ปัจจุบัน

    API

    GET v4/schedules/{schedule_id}/msg-ids

    ตัวอย่างคำขอ

    ส่วนหัวของคำขอ

    GET /v4/schedules/{schedule_id}/msg-ids Authorization: Basic (base64 auth string) Content-Type: application/json Accept: application/json
                  
                  GET /v4/schedules/{schedule_id}/msg-ids
    Authorization: Basic (base64 auth string)
    Content-Type: application/json
    Accept: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างการตอบกลับ

    การตอบกลับสำเร็จ

    HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8
                  
                  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}" ] }
                  
                  {
        "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}"
        ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    อัปเดตงานที่กำหนดเวลาไว้

    • อัปเดตงานที่กำหนดเวลาที่ระบุโดยใช้ ID งาน

    API

    PUT v4/schedules/{schedule_id}

    ตัวอย่างคำขอ

    ส่วนหัวของคำขอ

    PUT /v4/schedules/{schedule_id} Authorization: Basic (base64 auth string) Content-Type: application/x-www-form-urlencoded Accept: application/json
                  
                  PUT /v4/schedules/{schedule_id}
    Authorization: Basic (base64 auth string)
    Content-Type: application/x-www-form-urlencoded
    Accept: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    เนื้อหาคำขอ

    { "name": "task", "enabled": true, "trigger": {...}, "push": {...} }
                  
                  {
      "name": "task",
      "enabled": true,
      "trigger": {...},
      "push": {...}
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    หมายเหตุ:

    • งานที่กำหนดเวลาที่หมดอายุแล้วไม่สามารถอัปเดตได้
    • งานที่กำหนดเวลาโดยเขตเวลาของปลายทางไม่สามารถอัปเดตเป็นเขตเวลาหลักได้ และในทางกลับกัน
    • การอัปเดตสามารถรวมถึงการเปลี่ยนแปลงใน "name", "enabled", "trigger" หรือ "push" ไม่รองรับการอัปเดตบางส่วน

    ตัวอย่างการอัปเดตที่ไม่ถูกต้อง

    // ไม่ถูกต้อง: อัปเดตเฉพาะแพลตฟอร์มเป็น iOS: { "push": { "body": { "platform": "ios" } } }
                  
                  // ไม่ถูกต้อง: อัปเดตเฉพาะแพลตฟอร์มเป็น iOS:
    {
        "push": {
            "body": {
                "platform": "ios"
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    // ไม่ถูกต้อง: อัปเดตเฉพาะวันที่สิ้นสุด: { "trigger": { "periodical": { "end": "2024-03-10 00:00:00" } } }
                  
                  // ไม่ถูกต้อง: อัปเดตเฉพาะวันที่สิ้นสุด:
    {
        "trigger": {
            "periodical": {
                "end": "2024-03-10 00:00:00"
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างการอัปเดตที่ถูกต้อง

    เมื่ออัปเดต จำเป็นต้องรวมฟิลด์ย่อยที่เกี่ยวข้องทั้งหมดภายใต้ฟิลด์ push เพื่อให้แน่ใจว่าการอัปเดตเป็นไปตามข้อกำหนดการอัปเดตแบบสมบูรณ์ ตัวอย่างต่อไปนี้แสดงการเปลี่ยนแพลตฟอร์มเป็น iOS พร้อมการอัปเดตการกำหนดค่าฟิลด์ push แบบสมบูรณ์:

    // ถูกต้อง: อัปเดตแพลตฟอร์มเป็น iOS: { "name": "ตัวอย่างการส่งตามกำหนดเวลา", "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":"ios", "notification":{ "alert":"งานตามกำหนดเวลาของ API Terminal", "ios":{ "alert": { "title": "สวัสดี", "body": "ยินดีต้อนรับ" }, "extras":{ "key1":"value1" } } }, "options": { "time_to_live": 60 } }, "request_id": "12345", "custom_args": { "Engagelab": "ส่งถึงคุณ" } } } // ถูกต้อง: ขยายวันที่สิ้นสุดของตัวกระตุ้นแบบเป็นรอบออกไปอีกหนึ่งเดือน: { "name": "Scheduled Push Example", "enabled": true, "trigger": { "periodical": { "start": "2024-01-01 00:00:00", // รักษาเวลาเริ่มต้นเดิม "end": "2024-03-10 00:00:00", // ขยายออกไปอีกหนึ่งเดือนถึงวันที่ 10 มีนาคม "time": "12:00:00", // รักษาเวลาทริกเกอร์เดิม "time_unit": "day", // รักษาหน่วยเวลาเดิม "point": [], // รักษาการกำหนดค่าจุดเดิม "zone_type": 1 // รักษาประเภทเขตเวลาเดิม } }, "push": { "from": "push", "to": { "registration_id": [ "1a0018970ab49abda3e", "100d85590955c1d2793" ] }, "body": { "platform": "android", "notification": { "alert": "API terminal scheduled task", "android": { "title": "API terminal scheduled task", "extras": { "key1": "value1" } } }, "options": { "time_to_live": 60 } }, "request_id": "12345", "custom_args": { "Engagelab": "push to you" } } }
                  
                  // ถูกต้อง: อัปเดตแพลตฟอร์มเป็น iOS:
    
    {
        "name": "ตัวอย่างการส่งตามกำหนดเวลา",
        "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":"ios",
                "notification":{
                    "alert":"งานตามกำหนดเวลาของ API Terminal",
                    "ios":{
                        "alert": {
                            "title": "สวัสดี",
                            "body": "ยินดีต้อนรับ"
                        },
                        "extras":{
                            "key1":"value1"
                        }
                    }
                },
                "options": {
                    "time_to_live": 60
                }
            },
            "request_id": "12345",
            "custom_args": {
            "Engagelab": "ส่งถึงคุณ"
        }
        }
    }
    
    
    // ถูกต้อง: ขยายวันที่สิ้นสุดของตัวกระตุ้นแบบเป็นรอบออกไปอีกหนึ่งเดือน:
    
    {
        "name": "Scheduled Push Example",
        "enabled": true,
        "trigger": {
            "periodical": {
                "start": "2024-01-01 00:00:00",  // รักษาเวลาเริ่มต้นเดิม
                "end": "2024-03-10 00:00:00",  // ขยายออกไปอีกหนึ่งเดือนถึงวันที่ 10 มีนาคม
                "time": "12:00:00",  // รักษาเวลาทริกเกอร์เดิม
                "time_unit": "day",  // รักษาหน่วยเวลาเดิม
                "point": [],  // รักษาการกำหนดค่าจุดเดิม
                "zone_type": 1  // รักษาประเภทเขตเวลาเดิม
            }
        },
        "push": {
            "from": "push",
            "to": {
                "registration_id": [
                    "1a0018970ab49abda3e",
                    "100d85590955c1d2793"
                ]
            },
            "body": {
                "platform": "android",
                "notification": {
                    "alert": "API terminal scheduled task",
                    "android": {
                        "title": "API terminal scheduled task",
                        "extras": {
                            "key1": "value1"
                        }
                    }
                },
                "options": {
                    "time_to_live": 60
                }
            },
            "request_id": "12345",
            "custom_args": {
                "Engagelab": "push to you"
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ในการอัปเดตเหล่านี้ ตรวจสอบให้แน่ใจว่า push ยังคงมีผล มิฉะนั้นการอัปเดตจะล้มเหลว ในการดำเนินการอัปเดต ให้ส่งโครงสร้างที่สมบูรณ์เสมอเพื่อหลีกเลี่ยงความล้มเหลวเนื่องจากการอัปเดตบางส่วน

    ตัวอย่างการตอบกลับ

    การตอบกลับสำเร็จ

    泰语

    HTTP/1.0 200 CREATED Content-Type: application/json
                  
                  HTTP/1.0 200 CREATED
     Content-Type: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    { "name": "ตัวอย่างการส่งแบบเป็นระยะ", "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": "ios", "notification": { "alert": "งานตามกำหนดการของ API terminal", "ios": { "alert": { "title": "สวัสดี", "body": "ยินดีต้อนรับ" }, "extras": { "key1": "value1" } } }, "options": { "time_to_live": 60 } }, "request_id": "12345", "custom_args": { "Engagelab": "ส่งถึงคุณ" } } }
                  
                  {
        "name": "ตัวอย่างการส่งแบบเป็นระยะ",
        "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": "ios",
                "notification": {
                    "alert": "งานตามกำหนดการของ API terminal",
                    "ios": {
                        "alert": {
                            "title": "สวัสดี",
                            "body": "ยินดีต้อนรับ"
                        },
                        "extras": {
                            "key1": "value1"
                        }
                    }
                },
                "options": {
                    "time_to_live": 60
                }
            },
            "request_id": "12345",
            "custom_args": {
                "Engagelab": "ส่งถึงคุณ"
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ข้อมูลการตอบกลับ

    { "name": "Timed Push Example", "enabled": true, "trigger": {...}, "push": {...} }
                  
                  {
        "name": "Timed Push Example",
        "enabled": true,
        "trigger": {...},
        "push": {...}
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตอบกลับล้มเหลว

    • หาก schedule_id ไม่ถูกต้องหรือไม่ใช่ ID ที่ถูกต้อง:
    HTTP/1.0 404 Not Found Content-Type: application/json
                  
                  HTTP/1.0 404 Not Found
    Content-Type: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • หากการดำเนินการอัปเดตไม่ถูกต้อง:
    HTTP/1.0 400 BAD REQUEST Content-Type: application/json
                  
                  HTTP/1.0 400 BAD REQUEST
    Content-Type: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ลบงานที่กำหนดเวลาไว้

    API

    DELETE v4/schedules/{schedule_id}

    schedule_id คือ ID ของงานที่กำหนดเวลาที่มีอยู่ หาก schedule_id ไม่ถูกต้องหรือไม่ใช่ ID ที่ถูกต้อง ผลลัพธ์จะเป็นข้อผิดพลาด 404

    ตัวอย่างคำขอ

    DELETE /v4/schedules/{schedule_id} Authorization: Basic (base64 auth string) Content-Type: application/json Accept: application/json
                  
                  DELETE /v4/schedules/{schedule_id}
    Authorization: Basic (base64 auth string)
    Content-Type: application/json
    Accept: application/json
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างการตอบกลับ

    การตอบกลับสำเร็จ

    HTTP/1.0 200 OK Content-Type: application/json Content-Length: 0
                  
                  HTTP/1.0 200 OK
    Content-Type: application/json
    Content-Length: 0
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตอบกลับล้มเหลว

    HTTP/1.0 404 Not Found Content-Type: application/json Content-Length: 0
                  
                  HTTP/1.0 404 Not Found
    Content-Type: application/json
    Content-Length: 0
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    { "error": { "code": 28404, "message": "error message" } }
                  
                  {
      "error": {
        "code": 28404,
        "message": "error message"
      }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    รหัสข้อผิดพลาด

    รหัส HTTP คำอธิบาย ข้อความข้อผิดพลาด คำอธิบายโดยละเอียด
    28000 200 การส่งคืนที่ถูกต้อง - รหัสสถานะสำเร็จ
    28100 400 พารามิเตอร์ไม่ถูกต้อง ตารางงานไม่ถูกต้อง: ส่วนไม่ถูกต้อง; หมดอายุ; หมดเวลา; ข้อมูลคำขอไม่ใช่ JSON; อัปเดตงานเป้าหมาย; ลบงานเป้าหมาย; คำขอตารางเวลาไม่มีอยู่
  • พารามิเตอร์ไม่ถูกต้องหรือไม่ถูกต้อง
  • การส่งเกินขีดจำกัด (เช่น การส่งกระจายเกินขีดจำกัด, งานตามกำหนดเวลาเกินขีดจำกัด, งานที่ถูกจำกัดอัตราเกินขีดจำกัด)
  • เนื้อหาพารามิเตอร์ยาวเกินไป
  • 28101 401 การตรวจสอบสิทธิ์ล้มเหลว การตรวจสอบสิทธิ์พื้นฐานล้มเหลว appkey และ masterscrect ไม่ตรงกัน
    28102 400 พารามิเตอร์การส่งไม่ถูกต้อง พารามิเตอร์การส่งเป็นค่าว่างหรือไม่ถูกต้อง พารามิเตอร์การส่งไม่ถูกต้อง มีการส่งคืนข้อมูลข้อผิดพลาดเฉพาะ
    28103 400 พารามิเตอร์เวลาการส่งไม่ถูกต้อง รูปแบบเวลาหรือเวลาทริกเกอร์ผิดพลาด พารามิเตอร์เวลาการส่งไม่ถูกต้อง มีการส่งคืนข้อมูลข้อผิดพลาดเฉพาะ
    28104 404 งานตารางเวลาที่ร้องขอไม่มีอยู่ การดำเนินการตารางเวลาที่ร้องขอไม่มีอยู่ งานที่เกี่ยวข้องถูกส่งไปแล้ว หรือ ID ตารางเวลาไม่ถูกต้อง
    28105 404 ไม่มีเป้าหมายการส่งสำหรับเวลาที่ตั้งไว้ งานการส่งไม่ถูกต้อง ไม่มีเป้าหมายการส่งสำหรับเวลาที่กำหนด ข้อผิดพลาดพารามิเตอร์เวลาการส่ง
    28200 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ ข้อผิดพลาดภายในเซิร์ฟเวอร์ เกิดข้อผิดพลาดที่ไม่คาดคิด
    28203 503 ข้อผิดพลาดภายในเซิร์ฟเวอร์ กรุณาลองใหม่ภายหลัง การดำเนินการหมดเวลา กรุณาลองใหม่อีกครั้ง ข้อผิดพลาดการสื่อสารกับเซิร์ฟเวอร์ตารางเวลา
    icon
    ติดต่อฝ่ายขาย