Хабарлама шаблондары

Gateway API арқылы ресми WABA шаблонын құру: POST /templates/. name тек кіші латын әріптері, цифрлар және астыңғы сызықтан тұрады [a-z0-9_]. body_text міндетті, header_text және footer_text міндетті емес; channel_id сұрау денесінде беріледі. Жауапта PENDING күйі қайтады. Meta шешімі (APPROVED немесе REJECTED) кейін templates ағынымен не келесі GET /templates/ сұрауымен келеді:

curl -X POST https://dialogs.tehprof.kz/api/v1/gw/templates/ \
  -H "Authorization: Bearer gw_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "channel_id": 32,
    "name": "order_shipped",
    "language": "ru",
    "category": "UTILITY",
    "body_text": "Заказ {{1}} отправлен, курьер {{2}}.",
    "footer_text": "TehProf.kz"
  }'

201 { "template_id": "123", "status": "PENDING" }

Шаблондар тізімі: GET /templates/?channel_id=. Тізім синхрондалған деректерден беріледі, Meta-ға тікелей сұрау жасалмайды. status мәндері: APPROVED, PENDING, REJECTED, PAUSED немесе DISABLED. template арқылы тек APPROVED шаблонын жіберуге болады:

curl "https://dialogs.tehprof.kz/api/v1/gw/templates/?channel_id=32" \
  -H "Authorization: Bearer gw_xxx"

{
  "templates": [
    {
      "template_id": "123",
      "name": "order_shipped",
      "language": "ru",
      "status": "APPROVED",
      "category": "UTILITY",
      "rejection_reason": "",
      "quality_rating": "GREEN",
      "components": [ { "type": "BODY", "text": "Заказ {{1}} отправлен, курьер {{2}}." } ]
    }
  ]
}

Шаблонды өзгерту: PATCH /templates/<id>/. Meta components құрамын толық ауыстырады. body_text берілмей, тек header_text немесе footer_text берілсе, мәтін өзгермейді. body_text беріліп, header_text пен footer_text берілмесе, бұрынғы HEADER және FOOTER өшеді. Сондықтан мәтінді өзгерткенде үш өрісті де бірге жіберіңіз. name және language өзгертілмейді. Өзгеріс қайта тексеруге жіберіледі; шешімі templates ағынымен келеді. channel_id сұрау денесінде беріледі:

curl -X PATCH https://dialogs.tehprof.kz/api/v1/gw/templates/123/ \
  -H "Authorization: Bearer gw_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "channel_id": 32,
    "body_text": "Заказ {{1}} доставлен.",
    "header_text": "TehProf.kz",
    "footer_text": "Спасибо"
  }'

200 { "template_id": "123", "status": "APPROVED" }

Шаблонды жою: DELETE /templates/<id>/?channel_id=. Мұнда channel_id сұрау денесінде емес, URL параметрінде беріледі. Жауап — денесіз 204. Жойылған APPROVED шаблонының атауы 30 күн босамайды. Мәтінін өзгерту үшін жойып қайта құрмай, PATCH пайдаланыңыз:

curl -X DELETE "https://dialogs.tehprof.kz/api/v1/gw/templates/123/?channel_id=32" \
  -H "Authorization: Bearer gw_xxx"

204 No Content

Шаблонның жіберуге жарамдылығы: GET /templates/<id>/health/?channel_id=. Бұл сұрау Meta-дағы ағымдағы жағдайды тексереді. 201 жауабынан кейін де жіберу сәтсіз болуы мүмкін, мысалы WABA төлемі жоқ болса. Сондықтан жіберер алдында жарамдылығын тексеріңіз. can_send мәндері: available, limited немесе blocked. available болмаса, reasons өрісінде нөмір, WABA, бизнес, қолданба немесе шаблон бойынша қате мен шешім көрсетіледі:

curl "https://dialogs.tehprof.kz/api/v1/gw/templates/123/health/?channel_id=32" \
  -H "Authorization: Bearer gw_xxx"

200 {
  "can_send": "blocked",
  "reasons": [
    {
      "code": "141006",
      "description": "There is an error with the payment method...",
      "solution": "Add a new payment method to the account.",
      "entity": "WABA"
    }
  ]
}