מפתחים

PUT/tcr/v2/campaign/{campaignId}

עדכון קמפיין הודעות

עדכנו את תוכן הקמפיין, ודאו את התוצאה שנשמרה והקפידו שבקשות לבדיקה והחלטות על חידוש ייעשו במפורש.

בעמוד זה
  1. תקנו קמפיין בלי ליצור רישום נוסף
  2. בחרו את השדות שהשתנו בפועל
  3. שלחו תיקון ממוקד
  4. קראו שוב את הקמפיין
  5. טפלו במגבלות ובתוצאות שאינן ודאיות

תקנו קמפיין בלי ליצור רישום נוסף

השתמשו בנתיב זה כדי לעדכן את התיאור, דוגמאות ההודעות, הסבר ההסכמה או מאפייני התוכן הנתמכים של קמפיין קיים. שמרו על מזהה הקמפיין ועל המותג ומקרה השימוש הנוכחיים שלו. רישום חדש אינו המנגנון לניסיון חוזר של תיקון קמפיין קיים.

הזדהו באמצעות חשבון API פעיל בחיבור HTTPS, מכתובת פרוטוקול אינטרנט מורשית של המקור. ניתן לגשת רק לקמפיין השייך לחשבון זה. קראו את מצבו הנוכחי לפני הכנת שינויים; אי אפשר לעדכן קמפיינים שתוקפם פג בתהליך עבודה זה.

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כתובות אינטרנט ציבוריות ורלוונטיות, באורך של עד 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, את כתובת פרוטוקול האינטרנט המורשית של המקור ואת הבעלות. במקרה של 429, פעלו לפי Retry-After. במקרה של 500, 502 או בקשה שנקטעה, שמרו את מזהה הקמפיין וכל requestId, ולאחר מכן בדקו והתאימו את הרשומה הקיימת לפני שליחה נוספת.

תמונת המצב המקומית תלויה בגוף התשובה שהוחזר. תשובה חלקית שאינה ריקה עלולה להשמיט שדות קודמים, לרבות מטא־נתונים של חידוש; תשובה ריקה עלולה להשאיר ערכים שאינם מעודכנים. ודאו את התוצאה המלאה של GET במקום לראות בהצלחה לבדה ראיה לכך שכל שדה נשמר. דווחו לתמיכה על הבדלים שלא נפתרו. נתיב זה אינו מעדכן שיוכים למפעילי תקשורת באופן אטומי ואינו מספק פעולת שחזור כללית להפעלת שירות אצל מפעיל תקשורת.