Bildirim Şablonu Yönetimi
Bildirim şablonlarını listeleyen, ekleyen, okuyan, düzenleyen ve kaldıran beş uç.
Genel Bakış
Bir bildirim şablonu iki ayrı yerde yaşar. Davranışı ayar dosyasındadır: açık mı, kime gider, hangi kanaldan. Metni ise dil başına ayrı dosyalardadır: konu, e-posta gövdesi ve kısa mesaj.
Bu ayrım uçlara yansır. Liste ucu yalnız davranışı verir; metni görmek için tek şablonu okumak gerekir.
Şablonlar gruplara ayrılır ve bir grup kendi kurallarını getirir: fatura belgesi eklemek yalnız fatura grubunda anlamlıdır, diğer gruplarda gönderilse de yok sayılır.
Referans
Şablonları Listeleme
Bütün bildirim şablonlarını gruplarıyla döndürür.
curl 'https://panel.ornek.com/api/v1/admin/notifications/templates' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/notifications/templates', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
const flat = data.flatMap((g) => g.templates);
const off = flat.filter((t) => ! t.status);$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/templates');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Liste GRUPLUDUR ve icerik metni TASIMAZ: konu ve govde ancak detay ucunda gelir.
$groups = Api::Notifications()->GetNotificationTemplates()['data'];
$flat = array_merge(...array_column($groups, 'templates'));Şablon Ekleme
Bir grup altında yeni bir şablon açar.
curl -X POST 'https://panel.ornek.com/api/v1/admin/notifications/templates' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"group":"account","key":"welcome-message"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/notifications/templates', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ group: 'account', key: 'welcome-message' }),
});
const { data } = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/templates');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['group' => 'account', 'key' => 'welcome-message']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Yeni sablon BOS dogar ve cekirdek onu kendiliginden GONDERMEZ; iceriginizi ve tetigi siz kurun.
Api::Notifications()->CreateNotificationTemplate(['group' => 'account', 'key' => 'welcome-message']);
Api::Notifications()->UpdateNotificationTemplate([
'group' => 'account', 'key' => 'welcome-message',
'contents' => ['en' => ['subject' => 'Welcome', 'mail_content' => $html]],
]);Şablonu Okuma
Şablonun ayarlarını ve her dildeki metnini döndürür.
curl 'https://panel.ornek.com/api/v1/admin/notifications/templates/invoice/invoice-created' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/notifications/templates/${group}/${key}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
const missing = langs.filter((l) => ! data.contents[l]?.subject);$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/templates/' . $group . '/' . $key);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Kullanilabilir degiskenler burada yazar; sablona baska bir degisken yazmak METIN olarak gider.
$t = Api::Notifications()->GetNotificationTemplate(['group' => $g, 'key' => $k])['data'];
$allowed = $t['variables'];Şablonu Güncelleme
Gönderdiğiniz ayarları ve metinleri yazar, gerisine dokunmaz.
curl -X PATCH 'https://panel.ornek.com/api/v1/admin/notifications/templates/invoice/invoice-created' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"status":1,"user_mail":1,"departments":[1,2]}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/notifications/templates/${group}/${key}`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
status: 1,
contents: { en: { subject: 'Your invoice', mail_content: html } },
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/templates/' . $group . '/' . $key);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['status' => 1]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Departman listesi YERINE GECER; birini eklemek icin once mevcut listeyi okuyun.
$t = Api::Notifications()->GetNotificationTemplate(['group' => $g, 'key' => $k])['data'];
$t['departments'][] = $newDid;
Api::Notifications()->UpdateNotificationTemplate([
'group' => $g, 'key' => $k, 'departments' => $t['departments'],
]);Şablonu Silme
Şablonu ve bütün dillerdeki metinlerini siler.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/notifications/templates/account/welcome-message' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/notifications/templates/${group}/${key}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/templates/' . $group . '/' . $key);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Cekirdegin KENDI sablonunu silmek o olayin bildirimini komple susturur; durumu kapatmak yeter.
Api::Notifications()->UpdateNotificationTemplate(['group' => $g, 'key' => $k, 'status' => 0]);Tuzaklar
Güncellemede gönderdiğiniz departman listesi mevcut olanın yerine geçer. Bir departman eklemek isterken yalnız onu göndermek diğerlerini kaldırır ve o departmanlar bildirimi almaz olur. Önce okuyup listeyi birleştirin.
Şablonun kullanabileceği değişkenler kendi kaydında yazılıdır. Listede olmayan bir değişken yazmak hata vermez; bildirim gider ve müşteri süslü parantezli ham metni görür. Metni yazmadan önce izin verilen listeyi okuyun.
Elle eklenen bir şablon yalnız bir kayıttır: çekirdekte onu tetikleyen bir olay yoktur. Gönderilmesi için bir modülün ya da kancanın onu çağırması gerekir. Şablonu açmak tek başına hiçbir mesaj üretmez.
E-posta ve telefon doğrulama şablonlarının açık kapalı durumu, kayıt doğrulama ayarıyla birlikte hareket eder. Şablonu kapatmak kayıt akışındaki doğrulamayı da kapatır. Bunu bir görünüm ayarı sanıp değiştirmek yeni üyelerin doğrulamasını düşürür.
Fatura belgesi ekleme ayarı yalnız fatura grubunda çalışır. Başka bir grubun şablonuna gönderirseniz hata almazsınız, değer yok sayılır ve okuma ucunda boş görünür. Bunu kaydın çalışmadığı sanmayın.
Metin ya da 0 ve 1 beklenen bir alana liste veya nesne gönderirseniz istek 422 ile reddedilir. O istekteki hiçbir şey kaydedilmez, doğru gönderilen alanlar da. Hatada adı geçen alanı düzeltip isteği yeniden gönderin.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.