Документация по API

Синтаксис запроса

Чтобы обратиться к методу API, Вам необходимо выполнить POST или GET запрос такого вида:

https://api.getloo.ru/whatsapp/TOKEN/METHOD_NAME

Он состоит из нескольких частей:

  • TOKEN - ключ доступа

  • METHOD_NAME - название метода API.

Описание методов:

getInfo (GET, POST)

Получить информацию о канале.

Пример вызова

Запрос:

https://api.getloo.ru/whatsapp/G23SF-AKFH5-H390S-HDRJS-Y5U43/getInfo

Ответ сервера:

{
"result": {
"success": true
},
"channel": {
"id": "235",
"phone": "79958817901",
"status": true
},
"error": null
}

В ответ сервер вернет JSON-объект (или сообщение об ошибке, если что-то пошло не так) и http код в случаи успеха: 200.

Коды (http-статусы) ответов:

  • 200 - успешная авторизация
  • 400 - не верный запрос
  • 401 - недействительный токен
  • 402 - нет  активных каналов (оплаченных или авторизованных)

result.success отдает success false, если активных каналов нет у юзера

channel.status отдает статус канала, true - оплачен и авторизован, false - не оплачен или не авторизован

channel.phone содержит номер телефона канала, установленного по-умолчанию для отправок клиентом

channel.id содержит идентификатор канала  / группы каналов

error  передает описание ошибки, если success false

sendMsg (POST)

Получить информацию о канале.

Обязательные параметры POST:

  • number - номер телефона получателя сообщения..
  • text - текст сообщения. (максимальная длина 2000 символов)

Пример вызова

Запрос:

https://api.getloo.ru/whatsapp/G23SF-AKFH5-H390S-HDRJS-Y5U43/sendMsg

Ответ сервера:

{
"result": {
"success": true,
"queue_id": "035c10f2c99165a7f72683ffd0c01abcca1b2019"
},
"error": null
}

В ответ сервер вернет JSON-объект (или сообщение об ошибке, если что-то пошло не так) и http код в случаи успеха: 200.

Коды (http-статусы) ответов:

  • 200 - успешная авторизация
  • 400 - не верный запрос
  • 401 - недействительный токен
  • 402 - нет активных каналов (оплаченных или авторизованных)

result.success отдает success true, если сообщение принято в очередь на отправку

result.queue_id содержит уникальный идентификатор сообщения, который в дальнейшем будет приходить в веб-хуках со статусом

error  передает описание ошибки, если success false

sendFile (POST)

Отправка файла.

Обязательные параметры POST:

  • number - номер телефона получателя сообщения.
  • file - ссылка на файл для отправки

Необязательные параметры POST:

  • caption - описание к файлу (максимальная длина 2000 символов)

Пример вызова

Запрос:

https://api.getloo.ru/whatsapp/G23SF-AKFH5-H390S-HDRJS-Y5U43/sendFile

Ответ сервера:

{
"result": {
"success": true,
"queue_id": "035c10f2c99165a7f72683ffd0c01abcca1b2019"
},
"error": null
}

В ответ сервер вернет JSON-объект (или сообщение об ошибке, если что-то пошло не так) и http код в случаи успеха: 200.

Коды (http-статусы) ответов:

  • 200 - успешная авторизация
  • 400 - не верный запрос
  • 401 - недействительный токен
  • 402 - нет активных каналов (оплаченных или авторизованных)

result.success отдает success true, если сообщение принято в очередь на отправку

result.queue_id содержит уникальный идентификатор сообщения, который в дальнейшем будет приходить в веб-хуках со статусом

error  передает описание ошибки, если success false

Поддерживаемые типы и максимальные размеры файлов

Документы

Поддерживаемые типы: *.pdf, .do*, .xl, .ppt, .sx*, .od*
Максимальный размер: 100MB

Изображения

Поддерживаемые типы: .jpeg, .jpg, .png
Максимальный размер: 100MB

Аудио

Поддерживаемые типы: *.acc, .mp4, .mp4a, .amr, .mpeg, .ogg
Максимальный размер: 100MB

Голосовые сообщения

Поддерживаемые типы: .ogg
Максимальный размер: 100MB

Видео

Поддерживаемые типы: *.mp4, .3gp, *.3g2
Максимальный размер: 100MB

getQR (POST)

Получение QR-кода для отправки сообщения.

Обязательные параметры POST:

  • text - текст, который подставиться в стартовое сообщение. Можно подставлять авторизационный код, чтобы идентифицировать пользователя.

Пример вызова

Запрос:

https://api.getloo.ru/whatsapp/G23SF-AKFH5-H390S-HDRJS-Y5U43/getQr

Ответ сервера:

{
"result": {
"success": true
},
"channel": {
"id": "235",
"phone": "79958817901",
"qr": "https://api.getloo.ru/qr/wa/20221207/0ff9c0a13412a2d54542effd4367fd9d.png",
"url": "whatsapp://send?phone=+79958817901&text=124"
},
"error": null
}

В ответ сервер вернет JSON-объект (или сообщение об ошибке, если что-то пошло не так) и http код в случаи успеха: 200.

Коды (http-статусы) ответов:

  • 200 - успешная авторизация
  • 400 - не верный запрос
  • 401 - недействительный токен
  • 402 - нет активных каналов (оплаченных или авторизованных)

result.success отдает success false, если активных каналов нет у юзера

channel.id содержит идентификатор канала  / группы каналов

channel.phone содержит номер телефона канала, установленного по-умолчанию для отправок клиентом

channel.qr содержит ссылку на изображение в PNG-формате на qr-код со встроенной ссылкой, включающую актуальный номер и переданный текст

channel.url содержит ссылку, включающую актуальный номер и переданный текст, которая активирует вотсап приложение со старовым текстом

error  передает описание ошибки, если success false

Методы для работы с хуками

getWebHook (GET)

Получить webhook.

Пример вызова

Запрос:

https://api.getloo.ru/whatsapp/G23SF-AKFH5-H390S-HDRJS-Y5U43/getWebHook

Ответ сервера:

{
"result": {
"success": true
},
"channel": {
"id": "235",
"webhook": "https://api.getloo.ru/hook_test.php"
},
"error": null
}

В ответ сервер вернет JSON-объект (или сообщение об ошибке, если что-то пошло не так) и http код в случаи успеха: 200.

Коды (http-статусы) ответов:

  • 200 - успешная авторизация
  • 400 - не верный запрос
  • 401 - недействительный токен
  • 402 - нет активных каналов (оплаченных или авторизованных)

result.success отдает success false, если активных каналов нет у юзера

channel.id содержит идентификатор канала  / группы каналов

channel.webhook содержит ссылку на установленный веб-хук на данный момент

error  передает описание ошибки, если success false

setWebHook (POST)

Установить webhook.

Обязательные параметры POST:

  • url - адрес хука.

Пример вызова

Запрос:

https://api.getloo.ru/whatsapp/G23SF-AKFH5-H390S-HDRJS-Y5U43/setWebHook

Ответ сервера:

{
"result": {
"success": true
},
"channel": {
"id": "235",
"webhook": "https://api.getloo.ru/hook_test.php"
},
"error": null
}

В ответ сервер вернет JSON-объект (или сообщение об ошибке, если что-то пошло не так) и http код в случаи успеха: 200.

Коды (http-статусы) ответов:

  • 200 - успешная авторизация
  • 400 - не верный запрос
  • 401 - недействительный токен
  • 402 - нет активных каналов (оплаченных или авторизованных)

result.success отдает success false, если активных каналов нет у юзера

channel.id содержит идентификатор канала  / группы каналов

channel.webhook содержит ссылку на только что установленный  веб-хук в случае удачи

error  передает описание ошибки, если success false

Входящие веб-хуки

incomingMessage

Всякий раз, когда появляется новое входящее сообщение.

Пример запроса с текстом:

{
"event": {
"name": "incomingMessage",
"properties": {
"queueId": "a780f149df54c208dc8b41372ae3c458630067bd",
"type": "text",
"content": {
"body": "Отправленный текст"
}
},
"createdAt": "2022-12-07T12:29:21+03:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

Пример запроса с изображением:

{
"event": {
"name": "incomingMessage",
"properties": {
"queueId": "a780f149df54c208dc8b41372ae3c458630067bd",
"type": "image",
"content": {
"body": "Подпись к картинке",
"mimeType": "image/jpeg",
"filename": "пример.jpg",
"href": "https://files.getloo.ru/wa/20221207/87b1e67ff6ec91a53e17f868ed8f1f4f/пример.jpg"
}
},
"createdAt": "2022-12-07T12:29:21+03:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

Пример запроса с видео:

{
"event": {
"name": "incomingMessage",
"properties": {
"queueId": "a780f149df54c208dc8b41372ae3c458630067bd",
"type": "image",
"content": {
"mimeType": "video/mp4",
"filename": "пример.mp4",
"href": "https://files.getloo.ru/wa/20221207/87b1e67ff6ec91a53e17f868ed8f1f4f/пример.mp4"
}
},
"createdAt": "2022-12-07T12:29:21+03:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

Пример запроса с документами:

{
"event": {
"name": "incomingMessage",
"properties": {
"queueId": "a780f149df54c208dc8b41372ae3c458630067bd",
"type": "image",
"content": {
"body": "Подпись к картинке",
"mimeType": "application/pdf",
"filename": "Отсканированный_документ_2.pdf",
"href": "https://files.getloo.ru/wa/20221207/87b1e67ff6ec91a53e17f868ed8f1f4f/Отсканированный_документ_2.pdf"
}
},
"createdAt": "2022-12-07T12:29:21+03:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

device.mdn отдает номер телефона с которого приходит входящее сообщение

device.profileName содержит имя заполненное в имени профиля WhatsApp на устройстве отправителя

Отбивки по доставке

Всякий раз, когда появляется новый статус по доставке сообщения.

Пример запроса, когда сообщение передано на отправку в WhatsApp:

{
"event": {
"name": "whatsappSuccess",
"properties": {
"queueId": "812b12dbd12ef082586a8cf8ec6f98f6692c7754",
"status": "pending"
},
"createdAt": "2020-00-00T00:00:00+00:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

Пример запроса, когда сообщение гарантировано доставлено получателю:

{
"event": {
"name": "reportActionReceived",
"properties": {
"queueId": "812b12dbd12ef082586a8cf8ec6f98f6692c7754",
"status": "delivered"
},
"createdAt": "2020-00-00T00:00:00+00:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

Пример запроса, когда сообщение  прочитано получателем:

{
"event": {
"name": "reportActionExecuted",
"properties": {
"queueId": "812b12dbd12ef082586a8cf8ec6f98f6692c7754",
"status": "read"
},
"createdAt": "2020-00-00T00:00:00+00:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

Пример запроса с ошибкой доставки:

{
"event": {
"name": "errorActionFail",
"properties": {
"queueId": "812b12dbd12ef082586a8cf8ec6f98f6692c7754",
"status": "fail"
},
"createdAt": "2020-00-00T00:00:00+00:00"
},
"device": {
"mdn": "79955069706",
"profileName": "Алина из Getloo"
}
}

ИНН: 500112198088

ИП Стремина Алина Геннадьевна

БИК  044525974

АО «ТИНЬКОФФ БАНК»

© 2023 «Getloo». Все права защищены.

КОНТАКТЫ

tech@getloo.ru

143915, Московская обл, г. Балашиха, ул. Заречная, д. 31, кв. 149

8 (995) 505-6598

ПОДПИСКА НА ОБНОВЛЕНИЯ