1. Go to this page and download the library: Download reactmore/telegram-bot-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
reactmore / telegram-bot-sdk example snippets
namespace App\Controllers;
use Reactmore\TelegramBotSdk\Controllers\Services\BaseServicesController;
use Reactmore\TelegramBotSdk\Telegram;
use Reactmore\TelegramBotSdk\Exception\TelegramException;
use Reactmore\TelegramBotSdk\Entities\Update;
class TelegramController extends BaseServicesController
{
protected $telegram;
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
// register local running before init
if ($this->telegramSettings->localServer) {
\Reactmore\TelegramBotSdk\Request::setCustomBotApiUri($this->telegramSettings->customBotApiUrl);
}
// init telegram service
$this->telegram = service('telegram');
}
public function index()
{
try {
// filter webhook return false to block incoming
$this->telegram->setUpdateFilter(function (Update $update, Telegram $telegram) {
$message = $update->getMessage() ?: $update->getCallbackQuery()->getMessage();
$chat = $message->getChat();
$user = $message->getFrom();
$chat_id = $chat->getId();
$user_id = $user->getId();
// make logic here
return true;
});
// dont delete this method
$this->telegram->handle();
} catch (TelegramException $e) {
log_message('error', '[ERROR] {exception}', ['exception' => $e]);
}
}
}
$routes->group('telegram', function ($routes) {
$routes->post('hook', 'TelegramController::index');
});
## 🔐 Webhook Secret Token
For enhanced security, you can set a secret token when you [set your webhook](https://core.telegram.org/bots/api#setwebhook). Telegram will then send this token in the `X-Telegram-Bot-Api-Secret-Token` header with every update. This library can automatically validate this token for you.
### 1. Set the Webhook with a Secret Token
When setting your webhook, provide a `secret_token`:
api_key = 'YOUR_BOT_API_KEY';
$bot_username = 'YOUR_BOT_USERNAME';
$bot_secret = 'YOUR_SECRET_TOKEN';
try {
$telegram = new Reactmore\TelegramBotSdk\Telegram($bot_api_key, $bot_username);
// Set the secret token for incoming webhook requests
$telegram->setSecretToken($bot_secret);
// Handle the update
$telegram->handle();
} catch (Reactmore\TelegramBotSdk\Exception\TelegramException $e) {
// Log the error
error_log($e->getMessage());
}
This ensures that only requests from Telegram with the correct secret token are processed by your bot.
// Set retention time to 120 seconds
Longman\TelegramBot\Telegram::setUpdateRetentionTime(120);
use Reactmore\TelegramBotSdk\Request;
// Set request timeout to 30 seconds
Request::setClientTimeout(30);
bash
php spark telegram:publish
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.