Веб-хуки
Получение информации о BotiCord API в реальном времени.
Как с этим работать?
Первым делом, вы должны установить ссылку на сам веб-хук. Это делается на странице редактирования бота/сервера. После установки ссылки, вам на той-же странице, под полем указания ссылки на веб-хук, даётся ключ, который будет отправляться в заголовках (Headers) для проверки запроса как X-Hook-Key.
А что делать дальше?
Дальше просто принимайте сообщения от веб-хука. Как вы поняли, для этого потребуется поднять свой собственный HTTP-сервер.
Что использовать для этого?
Ниже приведен наш список рекомендаций:
- Python - aiohttp, Flask или Webhook'и из модуля BoticordPY.
- Node.js - Fastify или встроенные
http
/https
- Rust - warp
Какие бывают действия?
Имя события | Описание события |
---|---|
test_webhook_message | Тестовое сообщение (отправляется в редакторе) |
new_bot_comment | Отправляется при новом отзыве о боте |
edit_bot_comment | Отправляется при изменении отзыва о боте |
delete_bot_comment | Отправляется при удалении отзыва о боте |
new_bot_bump | Отправляется при оценке бота на сайте |
new_server_comment | Отправляется при новом отзыве о сервере |
edit_server_comment | Отправляется при изменении отзыва о сервере |
delete_server_comment | Отправляется при удалении отзыва о сервере |
new_server_bump | Отправляется при оценке сервера через сервисного бота |
Примеры возвращаемых событиями данных:
Все ниже приведённые примеры универсальны. Это значит, что если где-то стоит *
- туда подставляется что-то из списка выше (тип сообщения и тип объекта).
Оценка
{
"type": "new_*_bump",
"data": {
"user": "178404926869733376",
"at": 1631789378024
},
"bonus": {
"status": true,
"expiresAt": 1631789498015
}
}
Действие с комментарием
{
"type": "*_*_comment",
"data": {
"user": "178404926869733376",
"comment": {
"vote": {
"old": -1 | null,
"new": 1 | null
},
"old": "Плохой бот!" | null,
"new": "Лучший бот среди всех ботов и времён!" | null
},
"reason": "self" | "moderation", // Если комментарий был удалён - "self" означает, что удалено автором, а "moderation" означает что удалён модератором
"at": 1631789378024 // Timestamp-метка времени в миллисекундах
}
}