We use cookies
We use cookies to optimize our website. By continuing to browse the site, you agree to our use of cookies.
New design
Control panel
  • Русский
  • Українська
  • English
  • UAH
  • USD
  • RUB
  • EUR
  • 0-800-307-307 Hotline
  • +38 (044) 392-74-33 Kiev
  • +38 (057) 728-39-00 Kharkiv
  • +38 (056) 794-38-31 Dnipro
  • +38 (032) 229-58-93 Lviv
  • +38 (048) 738-57-70 Odessa
  • +38(093) 170-15-42  Life
  • +38 (067) 400-88-44 Kievstar
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7 (499) 348-28-61 Moscow

2.27.1. Telegram bot

To work with a Telegram bot, it is recommended to use the information update method Webhook... This method is preferable to Long Polling, due to several factors:

  • A script launched with Webhook is slightly faster than one that updates information at a specific interval.
  • Within the framework of virtual and business hosting services, there is a limitation on the execution time of the process, and therefore the script cannot be constantly running and will be automatically terminated by the system. This limitation cannot be bypassed, therefore, the use of a constantly running script can lead to data loss if this script terminates during the processing of an event.

To create a bot, you need to follow these steps:

  1. Write to Telegram bot @BotFather message /newbotto initiate the creation of a new bot.
  2. The bot will ask you to specify the name of the new bot - you just need to send a message, which will be accepted as the name of the bot.
  3. The next step is to specify the name of the bot. The name differs from the name in that it will be a unique identifier with which you can use invitations, create links to it, etc. The word must be indicated at the end of the name bot... For instance, examplebot or example_bot.
  4. The new message will indicate the current that will need to be used for the bot to work. Save this token.

There are several ways to install Webhook:

To install Webhook in a browser, just go to a specific URLthat you need to change beforehand.
https://api.telegram.org/bottoken/setWebhook?url=https://domain.com/path/to/file.php

Substitute your values for the following parameters:

  • token - specify the token received when creating the bot. Note, change before token word bot not necessary.
  • domain.com - correctly specify the domain name that will work in the future. It is not recommended to specify an address with www or without www if a redirect to a return address is set.
  • path/to/file.php - indicate correct URL-address of the file itself, which will process the bot's requests.

After opening such an address in the browser, a message should appear on the open page like “Webhook was set". If such a message appears, then the Webhook is installed correctly, otherwise, double-check the used URL-address and SSL certificate operation.

To install Webhook in the script, it is enough at its beginning, after declaring variables with the data of the token and the bot name, specify the following code:

if(!json_decode(file_get_contents("https://api.telegram.org/name:token/setWebhook?url=https://domain.com/path/to/file.php"))->ok){die('webhook is not set');}

For an example of the simplest bot, there are many options for implementation. But this article will consider two of the simplest.

The simplest bot that will reply to a message /startlooks something like this:
<?php
define('token','XXXXXXXXXXXXXXXXXXXXXXXXX'); // вместо ''XXXXXXXXXXXXXXXXXXXXXXXXX'' specify your token
$result = json_decode(file_get_contents('php://input'), true); // передаём в переменную $result complete information about the user's message
if ($result['message']['text'] == '/start') {
    file_get_contents("https://api.telegram.org/bot" . token . "/sendMessage?chat_id=" . $result['message']['chat']['id'] . "&text=" . urlencode('Hi')); // отправляем ответ пользователю, используя его уникальный идентификатор $result['message']['chat']['id'] as recipient
}
An example of the simplest bot using the library Telegram Bot SDK looks something like this:
<?php
include('vendor/autoload.php'); // подключаем библиотеку
use Telegram\Bot\Api; 
 
$telegram = new Api('XXXXXXXXXXXXXXXXXXXXXXXXX'); // вместо ''XXXXXXXXXXXXXXXXXXXXXXXXX'' specify your token
$result = $telegram -> getWebhookUpdates(); // передаём в переменную $result complete information about the user's message
 
$text = $result["message"]["text"]; // текст сообщения
$chat_id = $result["message"]["chat"]["id"]; // уникальный идентификатор пользователя
$name = $result["message"]["from"]["username"]; // имя пользователя
 
if ($text) {
    if ($text == "/start") {
        $reply = "Hi!";
        $telegram->sendMessage(['chat_id' => $chat_id, 'text' => $reply]);
    }
}