Програмери

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 уместо да сам успех сматрате доказом да је свако поље сачувано. Пријавите неразрешене разлике подршци. Ова путања не ажурира доделе оператера атомски нити пружа општу радњу за опоравак активације код оператера.