นักพัฒนา

PUT/tcr/v2/campaign/{campaignId}

อัปเดตแคมเปญการส่งข้อความ

แก้ไขเนื้อหาแคมเปญ ตรวจสอบผลที่บันทึก และระบุการขอรับการตรวจพิจารณากับการตัดสินใจต่ออายุให้ชัดเจน

ในหน้านี้
  1. แก้ไขแคมเปญโดยไม่ต้องลงทะเบียนใหม่
  2. เลือกเฉพาะฟิลด์ที่เปลี่ยนแปลงจริง
  3. ส่งคำขอแก้ไขเฉพาะส่วนที่จำเป็น
  4. อ่านข้อมูลแคมเปญอีกครั้ง
  5. จัดการข้อจำกัดและผลลัพธ์ที่ยังไม่แน่ชัด

แก้ไขแคมเปญโดยไม่ต้องลงทะเบียนใหม่

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

ยืนยันตัวตนด้วยบัญชี API ที่เปิดใช้งานแล้วผ่าน HTTPS จากที่อยู่ IP ต้นทางที่ได้รับอนุญาต เข้าถึงได้เฉพาะแคมเปญที่เป็นของบัญชีนั้น อ่านสถานะปัจจุบันก่อนเตรียมการเปลี่ยนแปลง แคมเปญที่หมดอายุแล้วไม่สามารถอัปเดตผ่านขั้นตอนนี้ได้

curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

เลือกเฉพาะฟิลด์ที่เปลี่ยนแปลงจริง

เตรียม campaign-update.json ที่มีการเปลี่ยนแปลงที่รองรับ ปัจจุบันพอร์ทัลส่งเฉพาะฟิลด์แคมเปญที่เปลี่ยนแปลง และไม่ส่ง brandId, usecase, campaignId หรือข้อมูลสถานะที่มีเฉพาะในการตอบกลับ การอัปเดตผ่าน API โดยตรงก็ใช้ออบเจ็กต์ JSON ที่ประกอบด้วยฟิลด์เช่นกัน ไม่ใช่โครงสร้างห่อหุ้ม changes/version ของพอร์ทัล

ฟิลด์สำหรับอัปเดตแคมเปญ
ฟิลด์ข้อมูลที่ต้องระบุ
description, messageFlowคำอธิบายบริการที่ถูกต้อง รวมถึงวิธีที่ผู้ใช้ให้ความยินยอม รับข้อความ และถอนความยินยอม แต่ละฟิลด์มีความยาวได้ 40–4096 อักขระ
sample1–sample5ตัวอย่างที่สอดคล้องกับการใช้งานจริงของแคมเปญนี้ โดยแต่ละตัวอย่างที่ไม่ว่างต้องมีความยาว 20–1024 อักขระ คงจำนวนตัวอย่างตามที่กรณีการใช้งานที่ผ่านเกณฑ์กำหนดไว้ อย่าส่งข้อความที่ไม่เกี่ยวข้อง
helpMessage, optinMessage, optoutMessageข้อความตอบกลับสำหรับผู้รับที่เหมาะสมกับบริการ ความยาวไม่เกิน 1024 อักขระ หากมีข้อกำหนด ต้องมีความยาวอย่างน้อย 20 อักขระและอธิบายบริการที่ให้จริง ตรวจทานข้อกำหนดการให้ความยินยอมปัจจุบันก่อนล้างข้อมูลในฟิลด์
optinKeywords, optoutKeywords, helpKeywordsคำสำคัญที่คั่นด้วยจุลภาคโดยไม่มีช่องว่าง ความยาวไม่เกิน 255 อักขระ ตรวจให้ข้อความตอบกลับสอดคล้องกับการจัดการคำสำคัญในการทำงานจริง
privacyPolicyLink, termsAndConditionsLinkที่อยู่ URL สาธารณะที่เกี่ยวข้อง ความยาวไม่เกิน 2048 อักขระ ซึ่งอธิบายแนวปฏิบัติจริงของบริการนี้
embeddedLinkSampleลิงก์ตัวอย่างที่เป็นตัวแทนของลิงก์ที่จะอยู่ในข้อความ ความยาวไม่เกิน 255 อักขระ
numberPool, embeddedLink, embeddedPhone, ageGated, directLendingลักษณะจริงของแคมเปญในรูปแบบค่าบูลีนของ JSON เมื่อต้องการปิดลักษณะใด ให้ใช้ false ไม่ใช่สตริง "false"
autoRenewalสคีมาของ API สาธารณะรองรับค่าบูลีน JSON นี้ แม้ว่าตัวแก้ไขเนื้อหาแคมเปญทั่วไปในพอร์ทัลจะไม่แสดงตัวเลือกนี้ก็ตาม การปิดการต่ออายุไม่ได้ยกเลิกข้อผูกพันขั้นต่ำที่มีอยู่หรือลบค่าบริการที่ถึงกำหนดชำระแล้ว
resellerIdสคีมายังรองรับการเชื่อมโยงกับผู้จำหน่ายต่อ ซึ่งอยู่นอกเหนือแบบฟอร์มแก้ไขเนื้อหาทั่วไปในพอร์ทัล อย่าใช้ฟิลด์นี้เพื่อย้ายแคมเปญระหว่างลูกค้า หรือสันนิษฐานว่า API จะกำหนดค่าบริการของผู้ให้บริการเครือข่ายให้แก่ผู้จำหน่ายต่อรายอื่น

สคีมาสำหรับการอัปเดตไม่อนุญาตให้แก้ไขฟิลด์ brandId, usecase, subscriberOptin, subscriberOptout หรือ subscriberHelp อย่าคัดลอกเพย์โหลดสำหรับสร้างแคมเปญทั้งชุดมาใช้ในการอัปเดต โปรดดู เกณฑ์คุณสมบัติปัจจุบัน เมื่อทบทวนข้อกำหนดเกี่ยวกับข้อความ

ส่งคำขอแก้ไขเฉพาะส่วนที่จำเป็น

ตัวอย่างนี้ใช้บริการแจ้งเตือนนัดหมายเพื่อประกอบคำอธิบาย ก่อนนำไปใช้ ให้ปรับให้ตรงกับบริการจริงและขั้นตอนการขอความยินยอมของแคมเปญ

{
  "description": "Appointment reminders requested by customers of the registered business.",
  "sample1": "Example business: Your requested appointment reminder is ready. Reply STOP to opt out."
}
curl --silent --show-error --fail-with-body --user "$API_USER:$API_PASSWORD" \
  --request PUT \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data-binary @campaign-update.json \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

สำหรับการส่งที่มีเจตนาเป็นรายการเดิม ให้ใช้คีย์เดิมและคงเมธอด เส้นทาง คิวรี และไบต์ของเนื้อหาคำขอให้ตรงกันทุกประการ หากเนื้อหาเปลี่ยน ต้องใช้คำขอที่ผ่านการตรวจทานแยกต่างหาก อย่าเปลี่ยนคีย์โดยไม่ตรวจสอบหลังหมดเวลารอ คำขอที่ประมวลผลเสร็จแล้วอาจส่งข้อผิดพลาดที่แคชไว้กลับมาอีก และคำขอซ้ำที่อยู่ระหว่างการประมวลผลอาจส่งกลับ 409 พร้อม Retry-After

อ่านข้อมูลแคมเปญอีกครั้ง

HTTP 200 ส่งกลับออบเจ็กต์ JSON ของแคมเปญโดยตรง ตรวจสอบ campaignId แล้วใช้ GET อ่านแคมเปญเดิมและเปรียบเทียบฟิลด์ที่ตั้งใจเปลี่ยน การบันทึกสำเร็จเพียงอย่างเดียวไม่ได้ขอให้ผู้ให้บริการเครือข่ายตรวจพิจารณาอีกครั้ง เปลี่ยนการกำหนดหมายเลข เปิดใช้งานการส่ง หรือส่งข้อความ

พอร์ทัลตรวจสอบเวอร์ชันของแบบฟอร์มก่อนบันทึกและอ่านแคมเปญอีกครั้งหลังบันทึก จุดปลาย PUT สาธารณะไม่ได้บังคับตรวจสอบเวอร์ชันนั้นของพอร์ทัล จึงต้องประสานงานเมื่อแก้ไขพร้อมกัน คีย์สำหรับป้องกันการประมวลผลซ้ำไม่ตรวจพบการอัปเดตจากผู้แก้ไขรายอื่น

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

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

จัดการข้อจำกัดและผลลัพธ์ที่ยังไม่แน่ชัด

สำหรับ HTTP 400 ให้อ่านข้อผิดพลาดระดับฟิลด์และตรวจสอบความยาว ข้อความเกี่ยวกับความยินยอม และสถานะแคมเปญ สำหรับ 401, 403 หรือ 404 ให้ตรวจสอบข้อมูลรับรอง API, IP ต้นทางที่ได้รับอนุญาต และความเป็นเจ้าของ สำหรับ 429 ให้ปฏิบัติตาม Retry-After สำหรับ 500, 502 หรือคำขอที่ถูกขัดจังหวะ ให้เก็บรหัสแคมเปญและ requestId ที่มีไว้ แล้วตรวจสอบเทียบกับระเบียนที่มีอยู่ให้ได้ข้อยุติก่อนส่งอีกครั้ง

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