Інтеграція месенджера Telegram з сайтом (повідомлення, боти)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція месенджера Telegram з сайтом (повідомлення, боти)
Середня
від 1 робочого дня до 3 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Інтеграція месенджера Telegram з веб-сайтом (сповіщення, боти)

Telegram Bot API — один з найзручніших інструментів для сповіщень та автоматизації. Безплатний, швидкий, не вимагає реєстрації імені відправника. Охоплює більшість задач: сповіщення адміністратору, служебні повідомлення користувачам, інтерактивні боти для обробки заявок.

Сповіщення в Telegram-чат (найпростіший сценарій)

Швидкий спосіб отримувати сповіщення про замовлення або події на веб-сайті — відправити в Telegram-чат через Bot API:

class TelegramNotifier
{
    public function send(string $message, string $parseMode = 'HTML'): void
    {
        Http::post("https://api.telegram.org/bot{$this->token}/sendMessage", [
            'chat_id'    => config('services.telegram.chat_id'),
            'text'       => $message,
            'parse_mode' => $parseMode
        ]);
    }
}

// Використання
$telegram->send(
    "🛒 <b>Нове замовлення #{$order->id}</b>\n"
    . "Сума: {$order->total} ₽\n"
    . "Клієнт: {$order->customer_name}"
);

Для сповіщень у групу: бот повинен бути додано в групу та мати права на відправку повідомлень. chat_id для групи — від'ємне число.

Webhook для вхідних повідомлень

Щоб бот відповідав на повідомлення користувачів, потрібен webhook:

// Реєстрація webhook
Http::post("https://api.telegram.org/bot{$token}/setWebhook", [
    'url'            => 'https://yoursite.ua/webhooks/telegram',
    'allowed_updates' => ['message', 'callback_query']
]);

// Обробник
Route::post('/webhooks/telegram', function (Request $request) {
    $update = $request->json()->all();

    if (isset($update['message'])) {
        $chatId = $update['message']['chat']['id'];
        $text   = $update['message']['text'];

        dispatch(new ProcessTelegramMessageJob($chatId, $text));
    }

    if (isset($update['callback_query'])) {
        // Натиснута inline-кнопка
        $callbackData = $update['callback_query']['data'];
        dispatch(new ProcessTelegramCallbackJob($update['callback_query']));
    }

    return response('OK');
});

Inline-клавіатури для інтерактивності

Http::post("https://api.telegram.org/bot{$token}/sendMessage", [
    'chat_id' => $chatId,
    'text'    => "Заявка #{$applicationId} отримана. Що зробити?",
    'reply_markup' => json_encode([
        'inline_keyboard' => [[
            ['text' => '✅ Прийняти', 'callback_data' => "accept_{$applicationId}"],
            ['text' => '❌ Відхилити', 'callback_data' => "reject_{$applicationId}"]
        ]]
    ])
]);

Менеджер натискає кнопку в Telegram → бот отримує callback_query → оновлює статус заявки на веб-сайті → відправляє підтвердження.

Telegram Login Widget

Аутентифікація на веб-сайті через Telegram:

<script async src="https://telegram.org/js/telegram-widget.js?22"
    data-telegram-login="YourBotName"
    data-size="large"
    data-auth-url="https://yoursite.ua/auth/telegram/callback"
    data-request-access="write">
</script>
// Верифікація підпису
public function callback(Request $request): void
{
    $checkHash = $request->hash;
    $authData = $request->except('hash');
    ksort($authData);

    $dataCheckString = implode("\n", array_map(
        fn($k, $v) => "{$k}={$v}",
        array_keys($authData), $authData
    ));

    $secretKey = hash('sha256', config('services.telegram.bot_token'), true);
    $hash = hash_hmac('sha256', $dataCheckString, $secretKey);

    if (!hash_equals($hash, $checkHash)) {
        abort(403, 'Invalid Telegram signature');
    }

    // Авторизація користувача
}

Служебні сповіщення користувачам

Для відправлення сповіщень конкретним користувачам потрібно зберегти їхній chat_id — він передається при першому звертанні до бота. Користувач почне діалог з ботом, бот зберегти chat_id у прив'язці до облікового запису веб-сайту.

Тривалість інтеграції: 2–3 дні для бота з сповіщеннями, inline-кнопками та Telegram Login.