POST /v1/messages/send
Туташтырылган канал (байланыш линиясы) аркылуу тексттик же медиа билдирүү жөнөтүү.
URL
POST https://api.wazzabee.com/api-gateway/v1/messages/send
Аталыштар (headers)
Authorization: Bearer СИЗДИН_API_АЧКЫЧЫҢЫЗ
Content-Type: application/json
Суроо-талаптын денесинин параметрлери
| Параметр | Түрү | Милдеттүү | Сүрөттөмө |
|---|---|---|---|
channelId | string (UUID) | ✅ Ооба | Каналдын (байланыш линиясынын) ID'си. GET /v1/channels аркылуу алса болот |
chatId | string | ✅ Ооба | Алуучунун идентификатору: телефон номери (WhatsApp үчүн) же chat_id (Telegram үчүн) |
text | string | ✅* | Билдирүүнүн тексти. mediaUrl көрсөтүлбөсө, милдеттүү |
mediaUrl | string (URL) | ✅* | Медиафайлга (сүрөт, видео, документ) түз шилтеме. text көрсөтүлбөсө, милдеттүү |
mediaType | string | Шарттуу | Медианын түрү: photo, video, document, audio. mediaUrl көрсөтүлгөндө милдеттүү |
caption | string | Жок | Медиафайлга кол жазма. mediaUrl менен гана иштейт |
senderName | string | Жок | Автордун аты: билдирүүнү ким жөнөткөнү. WazzaBee чатында Сиздин операторлоруңузга көрүнөт жана вебхукта келет. Кардарга мессенджерде берилбейт |
userId | string | Жок | Сиздин CRM'деги кызматкердин идентификатору. Аны кандай болсо, ошондой кайтарабыз, бул кызматкерди WazzaBee'ге каттоонун кереги жок |
automated | boolean | Жок | true: билдирүүнү робот, автожооп же эскертме жөнөттү. Чатта мындай билдирүү автоматтык деп белгиленет |
campaignId | string | Жок | Сиздин кампания белгиңиз, 100 символго чейин. Жоопто, чыгуучу билдирүүлөрдүн, статустардын жана баскыч басылыштарынын вебхуктарында кайтарылат. Ал боюнча GET /v1/messages чыпкалап, кабинетте жөнөтүүлөрдү жүктөп алсаңыз болот: «Коннекторлор» → «API» → «API аркылуу жөнөтүүлөрдү жүктөп алуу» |
* text же mediaUrl, экөөнүн жок дегенде бирин көрсөтүү керек.
Билдирүүнү ким жөнөттү
Демейки боюнча API аркылуу жөнөтүлгөн билдирүү чатта кыскача, атсыз «API аркылуу» деп кол коюлат. Эгер Сиздин CRM автордун ким экенин билсе, аны бериңиз: билдирүүнүн астында «API аркылуу · Назерке А.» деп көрүнөт, ал эми аты Сизге messages_outgoing вебхугунда кайтып келет. Ошентип чаттын тасмасынан кардарга менеджерлердин кайсынысы жооп бергени түшүнүктүү болот.
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СИЗДИН_API_АЧКЫЧЫҢЫЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"text": "Саламатсызбы! Документтериңиз даяр.",
"senderName": "Назерке Ахметова",
"userId": "manager-42"
}'
senderName жана userId ордуна author объектин берсеңиз болот, натыйжасы ошол эле:
{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"text": "Саламатсызбы!",
"author": { "id": "manager-42", "name": "Назерке Ахметова" }
}
Адам эмес жөнөткөн билдирүүлөрдү (роботтор, автожооптор, эскертмелер) "automated": true деп белгилеңиз: чатта алар менеджерлердин жоопторунан өзүнчө көрүнөт.
chatId форматы
| Каналдын түрү | chatId форматы | Мисал |
|---|---|---|
| WhatsApp (QR) | Өлкө коду менен телефон номери, + белгисиз | 77001234567 |
| WhatsApp (WABA) | Өлкө коду менен телефон номери, + белгисиз | 77001234567 |
| Telegram Bot | Колдонуучунун сандык chat_id'си | 123456789 |
| Telegram Personal | Сандык chat_id же @ белгисиз username | 123456789 же ivanivanov |
Суроо-талаптардын мисалдары
Тексттик билдирүү
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СИЗДИН_API_АЧКЫЧЫҢЫЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"text": "Саламатсызбы! №1234 буйрутмаңыз берүүгө даяр."
}'
Кол жазмасы бар сүрөт
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СИЗДИН_API_АЧКЫЧЫҢЫЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"mediaUrl": "https://example.com/photo.jpg",
"mediaType": "photo",
"caption": "Буйрутмаңыздын сүрөтү"
}'
Документ
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СИЗДИН_API_АЧКЫЧЫҢЫЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"mediaUrl": "https://example.com/invoice.pdf",
"mediaType": "document"
}'
Ийгиликтүү жооп (202 Accepted)
{
"success": true,
"queued": true,
"queueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"message": "Сообщение поставлено в очередь на отправку"
}
| Талаа | Түрү | Сүрөттөмө |
|---|---|---|
success | boolean | Ийгиликтүү болгондо дайыма true |
queued | boolean | Билдирүү кезекке кабыл алынды |
queueId | string (UUID) | Жөнөтүү кезегиндеги уникалдуу ID. Ошол эле queueId жеткирүү статустарынын вебхугунда (messages_status) жана GET /v1/messages ичинде келет: ал боюнча билдирүү жеткенин билесиз |
campaignId | string | null | Эгер берилген болсо, кампания белгиси |
message | string | Натыйжанын тексттик сүрөттөмөсү |
Мүмкүн болгон каталар
| Код | Ката | Себеби |
|---|---|---|
400 | Суроо-талаптын денесинде жараксыз JSON | Суроо-талаптын денеси туура JSON эмес |
400 | channelId талаасы милдеттүү | channelId параметри берилген жок |
400 | chatId талаасы милдеттүү | chatId параметри берилген жок |
400 | text же mediaUrl көрсөтүү керек | Текст да, медиафайл да берилген жок |
400 | Канал активдүү эмес | Канал өчүрүлгөн же жөндөлгөн эмес |
400 | Колдоого алынбаган канал түрү | Каналдын түрүн API колдобойт |
403 | Канал бул интеграцияга байланган эмес | Канал бул API ачкычы үчүн уруксат берилгендердин катарына кирбейт |
404 | Канал табылган жок же кирүү укугу жок | Канал жок же башка колдонуучуга таандык |
Ичинде кантип иштейт
- API авторизацияны жана каналга кирүү укугун текшерет
chatId(телефон же external_id) боюнча байланышты издейт. Табылбаса, жаңысын түзөт- Учурдагы диалогду (conversation) издейт. Табылбаса, жаңысын түзөт
- Каналдын түрү боюнча жеткирүү ыкмасын аныктайт
- Билдирүүнү
message_queueкезегине коёт - Фондук процесс билдирүүнү кезектен алып, провайдер аркылуу жөнөтөт
Жаңы линиянын туташуусун текшерүү
Иштеп жаткан интеграциянын алдында кыска текшерүүдөн өтүңүз, ал бир мүнөт талап кылат жана алмашуу кайсы жерде токтоп калганын дароо көрсөтөт.
- Линия API'де көрүнөт. GET /v1/channels сурап, керектүү линия жоопто бар экенин жана анын
statusмаанисиactiveэкенин текшериңиз. Сыноо мөөнөтү кабыл алууга жана жөнөтүүгө тоскоол болбойт. - Чыгуучу. Өзүңүздүн экинчи аккаунтуңузга
POST /v1/messages/sendжөнөтүңүз. ЖооптоqueueIdкелет: бул кезектеги тапшырманын номери, жеткирүүнүн ырастоосу эмес. - Жөнөтүүнүн натыйжасы. Вебхукта
messages_statusжанаmessages_outgoingокуяларына жазылыңыз:queueIdбоюнча жыйынтык дал ошол жерден келет. Билдирүү кабинеттин чаттарында да пайда болот. - Кирүүчү. Башка аккаунттан линияга жазыңыз. Билдирүү кабинеттин чаттарында пайда болуп,
messages_incomingвебхугуна келиши керек. Эгер кабинетте бош болсо, маселе Сиздин кодуңузда эмес: колдоо кызматына жазып, жөнөткөн убакытты жана линиянын дарегин тиркеңиз.
