1. Go to this page and download the library: Download gruven/phpbotgram 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/ */
gruven / phpbotgram example snippets
declare(strict_types=1);
Gruven\PhpBotGram\Dispatcher\Dispatcher;
use Gruven\PhpBotGram\Dispatcher\PollingOptions;
use Gruven\PhpBotGram\Types\Message;
$token = getenv('BOT_TOKEN') ?: throw new RuntimeException('BOT_TOKEN missing');
$bot = new Bot($token);
$dispatcher = new Dispatcher();
$dispatcher->message->register(static function (Message $event): void {
$text = $event->text ?? '';
if ($text === '') {
return;
}
$event->answer($text)->emit();
});
$dispatcher->runPolling(new PollingOptions(), $bot);
use Gruven\PhpBotGram\Bot;
use Gruven\PhpBotGram\Client\Session\AmphpSession;
use Gruven\PhpBotGram\Client\TelegramApiServer;
$bot = new Bot(
token: $token,
session: new AmphpSession(api: TelegramApiServer::production()),
);
use Gruven\PhpBotGram\Methods\SendMessage;
$send = new SendMessage(chatId: 1, text: 'hi');
$result = $bot($send); // synchronous in the current fiber
$alsoResult = $send->emit($bot); // equivalent — TelegramMethod::emit()
use Gruven\PhpBotGram\Dispatcher\Router;
use Gruven\PhpBotGram\Utils\CallbackAnswer\CallbackAnswerMiddleware;
$router = new Router();
$router->message->register($handler, filters: [$filter1, $filter2]);
$router->callbackQuery->outerMiddleware(new CallbackAnswerMiddleware());
$dispatcher->
use Gruven\PhpBotGram\Filters\Command;
use Gruven\PhpBotGram\Filters\Filter;
use const Gruven\PhpBotGram\F;
$router->message->register(
$handler,
filters: [
Filter::all(
new Command('buy'),
F->chat->type->equals('private')->asFilter(),
),
],
);
use Gruven\PhpBotGram\Fsm\Scene\SceneRegistry;
use Gruven\PhpBotGram\Fsm\Scene\ScenesManager;
use Gruven\PhpBotGram\Filters\Command;
use Gruven\PhpBotGram\Types\Message;
$registry = new SceneRegistry($dispatcher);
$registry->add([QuizScene::class]);
$dispatcher->message->register(
static function (Message $event, ScenesManager $scenes): void {
$scenes->enter(QuizScene::class);
},
filters: [new Command('quiz')],
);
use Gruven\PhpBotGram\Webhook\Server\AmphpServer;
use Gruven\PhpBotGram\Webhook\SimpleRequestHandler;
$handler = new SimpleRequestHandler(dispatcher: $dispatcher, bot: $bot);
AmphpServer::run(
handler: $handler,
dispatcher: $dispatcher,
// Bind to 127.0.0.1 when sitting behind a reverse proxy (recommended).
// Use 0.0.0.0 only if exposing the bot directly to the internet — see
// deploy/nginx/phpbotgram-webhook.conf for the proxy template.
host: '127.0.0.1',
port: 8080,
path: '/webhook',
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.