← На главную

API Integration

Документация по интеграции BotoHub Views в ваш бот

🚀 Быстрый старт

Для начала работы вам нужен API токен. Добавьте бота на продажу в @botohub_views_bot и получите токен в разделе Интеграция.

📡 Endpoint

POST https://views.botohub.me/ad/SendPost

Headers

HeaderЗначениеОписание
AuthorizationВаш API токенТокен из настроек бота (без Bearer)
Content-Typeapplication/jsonТип содержимого

Request Body

ПараметрТипОбязательныйОписание
SendToChatIdnumberID пользователя для отправки рекламы
hibooleanРежим приветствия (для новых пользователей)

💻 Примеры кода

cURL

Terminal
curl -X POST https://views.botohub.me/ad/SendPost \
  -H "Authorization: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"SendToChatId": 123456789, "hi": false}'

Код для бота

JavaScript (Node.js)
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);
  }
});
Python (aiogram)
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 в ответе содержит код результата:

1
Success

Реклама успешно отправлена

2
NoAds

Нет доступных объявлений

3
UserForbiddenError

Пользователь заблокировал бота

4
ToManyRequestsError

Слишком много запросов (rate limit)

5
OtherBotApiError

Другая ошибка Telegram API

6
RevokedTokenError

Токен отозван или недействителен

7
BotIsNotEnabled

Бот отключен в настройках

8
InReview

Бот на модерации

9
Banned

Бот заблокирован

📋 Правила использования

👋
Приветка (hi: true)

Вызывайте hi: true только на команде /start. Приветственное сообщение показывается только один раз для каждого пользователя в боте. Рекомендуем вызывать только при первом /start, чтобы не нагружать ни вашу, ни нашу системы.

📺
Показы (hi: false)

Вызывайте показы только после того, как пользователь совершил полезное действие (не /start).

⚠️
Важно

При нарушении правил использования API аккаунт может быть заблокирован, а все заработанные средства заморожены.