Документация по интеграции 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. Приветственное сообщение показывается только один раз для каждого пользователя в боте. Рекомендуем вызывать только при первом /start, чтобы не нагружать ни вашу, ни нашу системы.
Вызывайте показы только после того, как пользователь совершил полезное действие (не /start).
При нарушении правил использования API аккаунт может быть заблокирован, а все заработанные средства заморожены.