Документация для разработчиков
Интегрируйте возможности iHAQ в ваши приложения
WebSocket API (v1)
iHAQ предоставляет API на базе WebSockets для получения уведомлений о донатах и других событиях в реальном времени. Сервер работает на базе библиотеки Socket.IO версии 4.x.
WSSПодключение к серверу
Для установки соединения используйте следующий URL, передав ваш api_token. Найти свой токен можно в панели управления: Настройки стрима (поле «API токен»), либо получить его программно через OAuth2 API данных пользователя.
wss://ihaqdonate.com/ws/integrations/socket.io/v1/{api_token}Пример подключения на Python (библиотека python-socketio):
import asyncio
import socketio
iHAQ_API_TOKEN = "e1f2d3c4-b5a6-4978-80ca-9b8a7c6d5e4f"
sio_ihaq = socketio.AsyncClient()
@sio_ihaq.on('message')
async def on_message(data):
print("Получено новое сообщение:", data)
if data.get('type') == 'donation':
print("Это донат от:", data.get('message', {}).get('donatorName'))
async def main():
await sio_ihaq.connect(
"https://ihaqdonate.com",
transports=["websocket"],
socketio_path=f"ws/integrations/socket.io/v1/{iHAQ_API_TOKEN}"
)
await sio_ihaq.wait()
if __name__ == '__main__':
asyncio.run(main())Формат событий
Все события приходят по WebSocket-каналу с именем message. Внутри передается JSON-объект, где корневое поле type указывает на тип уведомления (например, "donation"), а поле message содержит сами данные.
Получение донатов (type: "donation")
Событие отправляется при успешной оплате доната пользователем. Пример структуры данных:
{
"type": "donation",
"message": {
"id": "d8c7b6a5-4f3e-4d2c-1b0a-9e8d7c6b5a4f",
"typeId": 1,
"amount": "100.00",
"message": "Тестовый донат",
"currency": "rub",
"donatorName": "User",
"videoLink": "https://youtu.be/BF3wM5Onh6..."
}
}Параметры объекта message:
| Свойство | Тип | Обязательно | Описание |
|---|---|---|---|
id | String (uuidv4) | Да | Уникальный идентификатор транзакции |
typeId | Number | Да | Уникальный идентификатор типа доната (например, 1 — message). См. полный список кодов ниже. |
amount | String | Да | Сумма пожертвования в строковом формате (например, "100.00") |
message | String | Да | Текст сообщения, прикрепленного к донату |
currency | String | Да | Буквенный код валюты (например, "rub" для российских рублей) |
donatorName | String | Да | Имя отправителя (псевдоним) |
videoLink | String | Нет | Ссылка на прикрепленное медиа (видео/аудио), если имеется |
Справочник кодов (typeId)
Ниже представлен полный список идентификаторов типов супер-донатов и событий, которые передаются в поле typeId:
| ID | Внутреннее название (тип виджета) |
|---|---|
1 | Обычное сообщение |
2 | Я должен |
17 | Викторина |
18 | Пульт |
100 | Партнерский супер-донат |
GETТестирование интеграции
Для генерации тестового сообщения и проверки работы вашего WebSocket-подключения выполните GET-запрос по следующему адресу:
https://ihaqdonate.com/api/v1/integration/test/{api_token}