การตั้งค่าการเรียกกลับ

ภาพรวม

กำหนดค่าที่อยู่การเรียกกลับเพื่อรับการเรียกกลับข้อมูลสำหรับ "สถานะข้อความ" และ "การแจ้งเตือนข้อความ" จากบริการ EngageLab OTP ไปยังระบบธุรกิจ และดำเนินการสถิติข้อมูล การส่งซ้ำตามกลยุทธ์ หรือเรียกเตือนระบบตามข้อมูลการเรียกกลับ

  • สถานะข้อความ: สถานะของข้อความ OTP หลังจากที่ถูกส่ง รวมถึงสถานะที่ส่งแล้ว ส่งถึงแล้ว อ่านแล้ว และยืนยันแล้ว
  • การแจ้งเตือนข้อความ: ส่วนใหญ่เป็นเหตุการณ์ของระบบ เช่น อัตราการยืนยันต่ำ หรือยอดคงเหลือไม่เพียงพอ

กำหนดค่าการเรียกกลับ

ในหน้า [การจัดการการกำหนดค่า] - [การตั้งค่าการเรียกกลับ] คลิก "กำหนดค่าการเรียกกลับ" เพื่อกำหนดค่าการเรียกกลับสำหรับบริการ EngageLab OTP

ปุ่มกำหนดค่าการเรียกกลับ EngageLab OTP

รายละเอียดการกำหนดค่าการเรียกกลับ EngageLab OTP

ตามที่แสดงด้านบน กรอกข้อมูลสำหรับ "คำอธิบายการเรียกกลับ," "ที่อยู่การเรียกกลับ," "ชื่อผู้ใช้," "การอนุญาต," "เหตุการณ์การเรียกกลับ," และ "การตอบสนองข้อความ" ตามลำดับ

  • เลือกเหตุการณ์การเรียกกลับ และข้อมูลจะถูกส่งไปยังที่อยู่การเรียกกลับที่คุณกำหนดไว้เมื่อเกิดเหตุการณ์ที่เลือก
  • คลิกที่สถานะข้อความและการตอบสนองข้อความทางด้านขวาเพื่อดูตัวอย่างที่เกี่ยวข้อง

กำหนดค่าที่อยู่การเรียกกลับ

เมื่อกำหนดค่าที่อยู่การเรียกกลับ ระบบ EngageLab OTP จะส่งคำขอ HTTP POST ไปยังที่อยู่นั้น บริการนักพัฒนาที่เกี่ยวข้องกับที่อยู่นี้ต้องตอบกลับด้วยรหัสสถานะ HTTP 200 ภายใน 3 วินาทีหลังจากได้รับคำขอ POST มิฉะนั้น ระบบจะพิจารณาว่าที่อยู่นั้นไม่ถูกต้อง

  • บริการนักพัฒนาจำเป็นต้องตอบกลับด้วยรหัสสถานะ HTTP 200 เท่านั้น และไม่จำเป็นต้องส่งข้อความตอบกลับ

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

สมมติว่าที่อยู่การเรียกกลับที่กำหนดไว้คือ https://example.engagelabotp.callback.com เราจะส่งข้อความว่างไปยังที่อยู่นี้ โดยใช้คำสั่ง curl ดังนี้:

curl -X POST https://example.engagelabotp.callback.com -d ''
              
              curl -X POST https://example.engagelabotp.callback.com -d ''

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

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

บริการนักพัฒนาที่เกี่ยวข้องกับที่อยู่การเรียกกลับนี้จำเป็นต้องตอบกลับด้วยรหัสสถานะ HTTP 200 เมื่อได้รับคำขอ POST ดังนี้:

HTTP/1.1 200 OK Content-Length: 0
              
              HTTP/1.1 200 OK
Content-Length: 0

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การกำหนดค่ากลไกความปลอดภัยของที่อยู่การเรียกกลับ

  • การตั้งค่าชื่อผู้ใช้

นี่เป็นการดำเนินการที่เลือกได้ หากตั้งค่าชื่อผู้ใช้ จะต้องระบุรหัสลับด้วย

เพื่อให้มั่นใจว่าต้นทางของข้อความคือ EngageLab คุณสามารถเลือกดำเนินการตรวจสอบความปลอดภัยกับต้นทางของข้อมูล POST ได้

หลังจากกำหนดค่าชื่อผู้ใช้และรหัสลับ ข้อมูลที่ส่งโดย EngageLab จะรวม HTTP Header: X-CALLBACK-ID ค่าของ X-CALLBACK-ID คือ timestamp={timestamp};nonce={nonce};username={username};signature={signature}

ตัวอย่าง:

X-CALLBACK-ID: timestamp=1681991058;nonce=123123123123;username=test;signature=59682d71e2aa2747252e4e62c15f6f241ddecc8ff08999eda7e0c4451207a16b
              
              X-CALLBACK-ID: timestamp=1681991058;nonce=123123123123;username=test;signature=59682d71e2aa2747252e4e62c15f6f241ddecc8ff08999eda7e0c4451207a16b

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

โดยที่ timestamp คือเวลาประทับของข้อความการเรียกกลับ (มาตรฐาน), nonce คือหมายเลขสุ่ม, และ signature คือข้อมูลลายเซ็น ลายเซ็นถูกคำนวณดังนี้: signature=HMAC-SHA256(secret, timestamp+nonce+username)

ด้านล่างคือตัวอย่างโค้ด Python สำหรับการคำนวณ signature:

import hashlib, hmac def verify(username, secret, timestamp, nonce, signature): return signature == hmac.new( key=secret, msg='{}{}{}'.format(timestamp, nonce, username), digestmod=hashlib.sha256).hexdigest()
              
              import hashlib, hmac
def verify(username, secret, timestamp, nonce, signature):
    return signature == hmac.new(
        key=secret,
        msg='{}{}{}'.format(timestamp, nonce, username),
        digestmod=hashlib.sha256).hexdigest()

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  • การตั้งค่าการอนุญาต

นี่เป็นการดำเนินการที่เลือกได้ หากที่อยู่การเรียกกลับของคุณต้องการการตรวจสอบสิทธิ์สำหรับคำขอของ EngageLab โปรดระบุข้อมูลการตรวจสอบสิทธิ์ที่นี่ และ EngageLab จะรวมการอนุญาตนี้ในคำขอ

เนื้อหาคำขอการเรียกกลับ

เมื่อเหตุการณ์การเรียกกลับถูกกระตุ้น บริการระบบ EngageLab OTP จะส่งข้อมูลไปยังที่อยู่การเรียกกลับ

ตัวอย่างคำขอ "สถานะข้อความ"

สถานะข้อความ:

  • plan: กำหนดเวลาส่ง
  • sent: ส่งแล้ว
  • sent_failed: การส่งล้มเหลว
  • delivered: ส่งถึงแล้ว
  • delivered_failed: การส่งถึงล้มเหลว
  • verified: ยืนยันแล้ว
  • verified_failed: การยืนยันล้มเหลว
  • verified_timeout: การยืนยันหมดเวลา
{ "total": 2, // จำนวนทั้งหมด "rows": [{ // ข้อมูล "message_id": "1742442805608914944", // รหัสข้อความ "to": "+8615989574757", // ผู้รับ "server": "otp", // บริการ, กำหนดเป็น otp "channel": "otp", // ช่องทาง, กำหนดเป็น otp "itime": 1704265712, // เวลาสร้างข้อมูลนี้ "status": { // สถานะข้อความ "message_status": "plan", // สถานะข้อความ, plan สำหรับกำหนดเวลาส่ง, sent สำหรับส่งแล้ว, sent_failed สำหรับการส่งล้มเหลว "status_data": { // ข้อมูลสถานะ "msg_time": 1704265712, // เวลาส่งข้อความ "message_id": "1742442805608914944", // รหัสข้อความ "current_send_channel": "", // ช่องทางการส่งปัจจุบัน, ค่าเป็น sms, email, voice, whatsapp; ว่างเปล่าสำหรับ plan "template_key": "auto_create_templateu25az170295320745", // คีย์แม่แบบ "business_id": "100917676394736" // รหัสธุรกิจ }, "error_code": 0 } }, { "message_id": "1742442805608914944", "to": "+8615989574757", "server": "otp", "channel": "otp", "itime": 1704265712, "status": { "message_status": "sent_failed", "status_data": { "msg_time": 1704265712, "message_id": "1742442805608914944", "current_send_channel": "whatsapp", "template_key": "auto_create_templateu25az170295320745", "business_id": "100917676394736" }, "error_code":5001, // รหัสข้อผิดพลาด "error_detail":{ // รายละเอียดข้อผิดพลาด "message":"sender config is invalid" // ข้อความข้อผิดพลาด } } }] }
              
              {
    "total": 2,					// จำนวนทั้งหมด
    "rows": [{                  // ข้อมูล
        "message_id": "1742442805608914944",    // รหัสข้อความ
        "to": "+8615989574757",            // ผู้รับ
        "server": "otp",                    // บริการ, กำหนดเป็น otp
        "channel": "otp",                   // ช่องทาง, กำหนดเป็น otp
        "itime": 1704265712,                // เวลาสร้างข้อมูลนี้
        "status": {                         // สถานะข้อความ
            "message_status": "plan",       // สถานะข้อความ, plan สำหรับกำหนดเวลาส่ง, sent สำหรับส่งแล้ว, sent_failed สำหรับการส่งล้มเหลว
            "status_data": {                // ข้อมูลสถานะ
                "msg_time": 1704265712,     // เวลาส่งข้อความ
                "message_id": "1742442805608914944",    // รหัสข้อความ
                "current_send_channel": "",             // ช่องทางการส่งปัจจุบัน, ค่าเป็น sms, email, voice, whatsapp; ว่างเปล่าสำหรับ plan
                "template_key": "auto_create_templateu25az170295320745",    // คีย์แม่แบบ
                "business_id": "100917676394736"        // รหัสธุรกิจ
            },
            "error_code": 0
        }
    }, {
        "message_id": "1742442805608914944",
        "to": "+8615989574757",
        "server": "otp",
        "channel": "otp",
        "itime": 1704265712,
        "status": {
            "message_status": "sent_failed",
            "status_data": {
                "msg_time": 1704265712,
                "message_id": "1742442805608914944",
                "current_send_channel": "whatsapp",
                "template_key": "auto_create_templateu25az170295320745",
                "business_id": "100917676394736"
            },
            "error_code":5001,      // รหัสข้อผิดพลาด
            "error_detail":{    // รายละเอียดข้อผิดพลาด
                "message":"sender config is invalid"        // ข้อความข้อผิดพลาด
            }
        }
    }]
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตัวอย่างคำขอ "การแจ้งเตือนข้อความ"

เหตุการณ์:

  • insufficient_balance: ยอดคงเหลือต่ำกว่าขีดจำกัดการแจ้งเตือน
{ "total": 1, "rows": [{ "server": "otp", "itime": 1712458844, "notification": { "event": "insufficient_balance", "notification_data": { "business_id": "1744569418236633088", "remain_balance": -0.005, // ยอดคงเหลือปัจจุบัน "balance_threshold": 2 // ขีดจำกัดการแจ้งเตือน } } }] }
              
              {
    "total": 1,
    "rows": [{
        "server": "otp",
        "itime": 1712458844,
        "notification": {
            "event": "insufficient_balance",
            "notification_data": {
                "business_id": "1744569418236633088",
                "remain_balance": -0.005,                    // ยอดคงเหลือปัจจุบัน
                "balance_threshold": 2                       // ขีดจำกัดการแจ้งเตือน
            }
        }
    }]
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตัวอย่างคำขอ "การตอบสนองข้อความ"

เหตุการณ์:

  • uplink_message: ข้อความขาขึ้น
{ "total": 1, "rows": [ { "server": "otp", "itime": 1741083306, "message_id": "0", "business_id": "0", "response": { "event": "uplink_message", "response_data": { "message_sid": "SM1234567890", "account_sid": "AC1234567890", "from": "+1234567890", "to": "+0987654321", "body": "Hello, it's time to struggle!" } } } ] }
              
              {
    "total": 1,
    "rows": [
        {
            "server": "otp",
            "itime": 1741083306,
            "message_id": "0",
            "business_id": "0",
            "response": {
                "event": "uplink_message",
                "response_data": {
                    "message_sid": "SM1234567890",
                    "account_sid": "AC1234567890",
                    "from": "+1234567890",
                    "to": "+0987654321",
                    "body": "Hello, it's time to struggle!"
                }
            }
        }
    ]
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
icon
ติดต่อฝ่ายขาย
banner-pic
ฉลาดขึ้นและแม่นยำยิ่งขึ้น!
ยกระดับประสิทธิภาพทางการตลาดด้วย Marketing Automation
เริ่มกันเลย