Документация по интеграции BotoHub Views в ваш бот
Для начала работы вам нужен API токен. Добавьте бота на продажу в @botohub_views_bot и получите токен в разделе Интеграция.
| Header | Значение | Описание |
|---|---|---|
Authorization | Ваш API токен | Токен из настроек бота (без Bearer) |
Content-Type | application/json | Тип содержимого |
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
SendToChatId | number | ✅ | ID пользователя для отправки рекламы |
hi | boolean | ❌ | Режим приветствия (для новых пользователей) |
curl -X POST https://views.botohub.me/ad/SendPost \
-H "Authorization: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"SendToChatId": 123456789, "hi": false}'
const BOTOHUB_TOKEN = 'YOUR_API_TOKEN';
// Функция отправки рекламы
async function sendAd(chatId, isHi = false) {
try {
const response = await fetch('https://views.botohub.me/ad/SendPost', {
method: 'POST',
headers: {
'Authorization': BOTOHUB_TOKEN,
'Content-Type': 'application/json'
},
body: JSON.stringify({
SendToChatId: chatId,
hi: isHi
})
});
const data = await response.json();
return data.SendPostResult === 1; // 1 = Success
} catch (error) {
console.error('BotoHub error:', error);
return false;
}
}
// Пример использования с grammy
bot.command('start', async (ctx) => {
const isNewUser = await checkNewUser(ctx.from.id);
// Отправляем приветственную рекламу новым пользователям
if (isNewUser) {
await sendAd(ctx.from.id, true); // hi: true
}
await ctx.reply('Добро пожаловать!');
});
// Отправка обычной рекламы
bot.on('message', async (ctx) => {
// Ваша логика...
// Показываем рекламу (например, каждое 5-е сообщение)
if (shouldShowAd(ctx.from.id)) {
await sendAd(ctx.from.id);
}
});
import aiohttp
from aiogram import Bot, Dispatcher, types
BOTOHUB_TOKEN = 'YOUR_API_TOKEN'
BOTOHUB_URL = 'https://views.botohub.me/ad/SendPost'
async def send_ad(chat_id: int, is_hi: bool = False) -> bool:
"""Отправка рекламы через BotoHub"""
try:
async with aiohttp.ClientSession() as session:
async with session.post(
BOTOHUB_URL,
headers={
'Authorization': BOTOHUB_TOKEN,
'Content-Type': 'application/json'
},
json={
'SendToChatId': chat_id,
'hi': is_hi
}
) as resp:
data = await resp.json()
return data.get('SendPostResult') == 1 # 1 = Success
except Exception as e:
print(f'BotoHub error: {e}')
return False
# Пример использования
@dp.message(commands=['start'])
async def start_handler(message: types.Message):
is_new_user = await check_new_user(message.from_user.id)
# Отправляем приветственную рекламу новым пользователям
if is_new_user:
await send_ad(message.from_user.id, is_hi=True)
await message.answer('Добро пожаловать!')
@dp.message()
async def message_handler(message: types.Message):
# Ваша логика...
# Показываем рекламу (например, каждое 5-е сообщение)
if should_show_ad(message.from_user.id):
await send_ad(message.from_user.id)
Поле SendPostResult в ответе содержит код результата:
Реклама успешно отправлена
Токен отозван или недействителен
Пользователь заблокировал бота
Слишком много запросов (rate limit)
Другая ошибка Telegram API
Другая внутренняя ошибка
Достигнут лимит показов
Нет доступных объявлений
Бот или режим отключен в настройках
Бот заблокирован
Бот на модерации
Вызывайте hi: true только после команды /start. Приветственное сообщение для одного пользователя показывается максимум раз в 24 часа. Не рекомендуется вызывать при каждом /start — лучше только для новых пользователей.
Вызывайте показы только после того, как пользователь совершил полезное действие (не /start).
При нарушении правил использования API аккаунт может быть заблокирован, а все заработанные средства заморожены.