Geliştiriciler

PUT/tcr/v2/campaign/{campaignId}

Mesajlaşma kampanyasını güncelleme

Kampanya içeriğini düzenleyin, kaydedilen sonucu doğrulayın ve inceleme talepleri ile yenileme kararlarını açıkça belirtin.

Bu sayfada
  1. Yeni bir kayıt oluşturmadan kampanyayı düzeltin
  2. Gerçekten değişen alanları seçin
  3. Hedefli bir düzeltme gönderin
  4. Kampanyayı yeniden okuyun
  5. Kısıtlamaları ve belirsiz sonuçları yönetin

Yeni bir kayıt oluşturmadan kampanyayı düzeltin

Mevcut bir kampanyanın açıklamasını, mesaj örneklerini, onay açıklamasını veya desteklenen içerik özelliklerini düzenlemek için bu yolu kullanın. Kampanya kimliğini ve mevcut markasını/kullanım senaryosunu koruyun. Mevcut bir kampanyaya yapılan düzeltmeyi yeniden denemek için yeni bir kayıt oluşturulmaz.

İzin verilen bir kaynak IP adresinden, etkinleştirilmiş bir API hesabıyla HTTPS üzerinden kimlik doğrulayın. Yalnızca bu hesaba ait bir kampanyaya erişilebilir. Değişiklikleri hazırlamadan önce kampanyanın mevcut durumunu okuyun; süresi dolmuş kampanyalar bu iş akışıyla güncellenemez.

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

Gerçekten değişen alanları seçin

Desteklenen değişiklikleri içeren campaign-update.json dosyasını hazırlayın. Mevcut portal yalnızca değişen kampanya alanlarını gönderir; brandId, usecase, campaignId alanlarını veya yalnızca yanıtta yer alan durum bilgilerini göndermez. Doğrudan API güncellemeleri de portalın changes/version sarmalayıcısı yerine alanlardan oluşan bir JSON nesnesi kullanır.

Kampanya güncelleme alanları
AlanlarSağlanacak bilgiler
description, messageFlowHizmetin doğru bir açıklaması ve kişilerin nasıl onay verdiği, mesaj aldığı ve onayını geri çektiği. Her alan 40–4096 karaktere izin verir.
sample1–sample5Bu kampanya için gerçekçi örnekler; boş olmayan her örnek 20–1024 karakter olmalıdır. Uygunluğu belirlenmiş kullanım senaryosunun gerektirdiği örnek sayısını koruyun; ilgisiz mesajlar göndermeyin.
helpMessage, optinMessage, optoutMessageAlıcılara gösterilecek, duruma uygun yanıtlar; en fazla 1024 karakter. Gerektiğinde en az 20 karakter koşulunu karşılayın ve gerçek hizmeti açıklayın. Bir alanı boşaltmadan önce güncel onay gerekliliklerini inceleyin.
optinKeywords, optoutKeywords, helpKeywordsBoşluk içermeyen, virgülle ayrılmış anahtar kelimeler; en fazla 255 karakter. Yanıtların ve anahtar kelimelerin uygulamada işlenişinin birbiriyle tutarlı olmasını sağlayın.
privacyPolicyLink, termsAndConditionsLinkBu hizmetin gerçek uygulamalarını açıklayan, ilgili ve herkese açık URL adresleri; en fazla 2048 karakter.
embeddedLinkSampleMesajlarda yer alacak bağlantıları temsil eden bir bağlantı; en fazla 255 karakter.
numberPool, embeddedLink, embeddedPhone, ageGated, directLendingKampanyanın gerçek özellikleri, JSON mantıksal değerleri olarak belirtilir. Bir özelliği devre dışı bırakırken "false" metin dizgesini değil, false değerini kullanın.
autoRenewalHerkese açık API şeması bu JSON mantıksal değerini destekler, ancak portalın standart kampanya içeriği düzenleyicisi bu alanı sunmaz. Yenilemeyi devre dışı bırakmak mevcut asgari taahhüdü iptal etmez veya ödenmesi gereken ücretleri silmez.
resellerIdŞema ayrıca bayi ilişkilendirmesi de sunar. Bu işlem, portalın standart içerik düzeltme formunun kapsamı dışındadır. Bu alanı bir kampanyayı müşteriler arasında taşımak için kullanmayın veya API üzerinden farklı bir bayi için operatör hizmetinin yapılandırılacağını varsaymayın.

Güncelleme şeması brandId, usecase, subscriberOptin, subscriberOptout veya subscriberHelp alanlarını değiştirilebilir alanlar olarak sunmaz. Kampanya oluşturma isteğinin tüm veri yükünü bir güncelleme isteğine kopyalamayın. Mesaj gerekliliklerini incelerken güncel uygunluk değerlendirmesi bilgilerine başvurun.

Hedefli bir düzeltme gönderin

Bu örnek, açıklama amacıyla bir randevu hatırlatma hizmetini anlatır. Kullanmadan önce kampanyanın gerçek hizmetine ve onay akışına uyarlayın.

{
  "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"

Aynı gönderimi yeniden denemek için aynı anahtarı koruyun; yöntem, yol, sorgu ve gövde baytları da birebir aynı olmalıdır. Değişen içerik, ayrıca incelenmiş bir istek gerektirir; zaman aşımından sonra anahtarları gelişigüzel değiştirmeyin. Tamamlanmış bir istek, önbelleğe alınmış bir hatayı yeniden döndürebilir; hâlâ işlenen bir isteğin tekrarı ise Retry-After başlığıyla birlikte 409 döndürebilir.

Kampanyayı yeniden okuyun

HTTP 200 yanıtı, doğrudan bir kampanya JSON nesnesi döndürür. campaignId değerini doğrulayın, ardından aynı kampanyayı GET ile alın ve değiştirmek istediğiniz alanları karşılaştırın. Başarılı bir kayıt işlemi tek başına yeni bir operatör incelemesi talep etmez, numara atamalarını değiştirmez, gönderimi etkinleştirmez veya mesaj göndermez.

Portal, kaydetmeden önce form sürümünü kontrol eder ve sonrasında kampanyayı yeniden okur. Herkese açık PUT uç noktası portalın bu sürüm kontrolünü uygulamaz: eşzamanlı düzenlemeleri koordine edin. İdempotans anahtarı, başka bir düzenleyenin yaptığı güncellemeyi algılamaz.

Portalda henüz giderilmemiş bir inceleme reddi görünüyorsa önce içeriği düzeltin, ardından kullanılabilir olduğunda ayrı inceleme talep etme işlemini kullanın. Bu işlem, üretim ortamındaki mevcut kampanyayı ve paylaşım durumunu kontrol eder. Yalnızca içeriği kaydetmek bu işlemi başlatmaz; kampanya kimliğinin bulunması da onay verildiği anlamına gelmez.

Mevcut hizmette standart kampanya PUT güncellemeleri ayrı bir kampanya kayıt ücreti tahakkuku başlatmaz. Mevcut aylık ücretler, asgari taahhütler, numara kiralama ve mesaj kullanım ücretleri geçerliliğini korur. Şu anda yapılandırılmış kampanya tarifeleri için bkz. kampanya ücretleri.

Kısıtlamaları ve belirsiz sonuçları yönetin

HTTP 400 durumunda alan düzeyindeki hatayı okuyun; uzunlukları, onay metnini ve kampanyanın durumunu kontrol edin. 401, 403 veya 404 durumunda API kimlik bilgilerini, izin verilen kaynak IP adresini ve sahipliği kontrol edin. 429 durumunda Retry-After başlığındaki bekleme süresine uyun. 500, 502 veya kesintiye uğrayan bir istek durumunda kampanya kimliğini ve varsa requestId değerini koruyun; ardından yeniden göndermeden önce mevcut kaydın gerçek durumunu kontrol edip tutarsızlıkları giderin.

Yerel anlık görüntü, döndürülen gövdeye bağlıdır. Boş olmayan kısmi bir yanıt, yenileme meta verileri dâhil önceki alanları içermeyebilir; boş bir yanıt ise güncelliğini yitirmiş değerlerin korunmasına yol açabilir. Tek başına başarılı sonucu tüm alanların korunduğunun kanıtı saymak yerine GET sonucunun tamamını doğrulayın. Çözülemeyen farklılıkları destek birimine bildirin. Bu yol, operatör atamalarını atomik olarak güncellemez veya operatör etkinleştirmesi için genel bir kurtarma işlemi sunmaz.