1. Go to this page and download the library: Download klev-o/telegram-bot-api 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/ */
klev-o / telegram-bot-api example snippets
use Klev\TelegramBotApi\Telegram;
use Klev\TelegramBotApi\TelegramException;
use Klev\TelegramBotApi\Methods\SetWebhook;
if(!file_exists("webhook.trigger")){
$webhook = new SetWebhook($pageUrl);
$result = $bot->setWebhook($webhook);
if($result) {
file_put_contents("webhook.trigger", time());
echo 'webhook was set';
}
}
//...
} catch (TelegramException $e) {
// log errors
}
use Klev\TelegramBotApi\Telegram;
use Klev\TelegramBotApi\TelegramException;
use Klev\TelegramBotApi\Methods\SetWebhook;
if(!file_exists("webhook.trigger")){
$webhook = new SetWebhook($pageUrl);
$result = $bot->setWebhook($webhook);
if($result) {
file_put_contents("webhook.trigger", time());
echo 'webhook was set';
}
}
/**@var \Klev\TelegramBotApi\Types\Update $update*/
$update = $bot->getWebhookUpdates();
} catch (TelegramException $e) {
// log errors
}
use Klev\TelegramBotApi\Telegram;
use Klev\TelegramBotApi\TelegramException;
use Klev\TelegramBotApi\Methods\SetWebhook;
use Klev\TelegramBotApi\Methods\SendMessage;
$webhook = new SetWebhook($pageUrl);
$result = $bot->setWebhook($webhook);
if($result) {
file_put_contents("webhook.trigger", time());
echo 'webhook was set';
}
}
/**@var \Klev\TelegramBotApi\Types\Update $update*/
$update = $bot->getWebhookUpdates();
if ($update->message) {
$chatId = $update->message->chat->id;
$username = $update->message->from->first_name;
$text = "Hello, $username!";
/**@var \Klev\TelegramBotApi\Types\Message $result*/
$result = $bot->sendMessage(new SendMessage($chatId, $text));
}
} catch (TelegramException $e) {
// log errors
}
use Klev\TelegramBotApi\Telegram;
use Klev\TelegramBotApi\TelegramException;
use \Klev\TelegramBotApi\Methods\SendDocument;
bot->getWebhookUpdates();
if ($update->message && $update->message->text === 'doc') {
$chatId = $update->message->chat->id;
$path = 'pat/to/local/doc';
$doc = new SendDocument($chatId, $path);
$doc->disable_notification = true;
/**@var \Klev\TelegramBotApi\Types\Message $result*/
$result = $bot->sendDocument($doc);
}
} catch (TelegramException $e) {
// log errors
}
$path = 'https://link/to/file';
use Klev\TelegramBotApi\Telegram;
use Klev\TelegramBotApi\Events\EditedMessageEvent;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
ar/logs/app.log'));
$bot = new Telegram('your personal token');
$bot->setEnableEvents(true);
$bot->on(EditedMessageEvent::class, static function(EditedMessageEvent $event) use ($logger) {
//do something with $event
$logger->info('id from event', [$event->update_id])
$logger->info('payload from event', [$event->payload])
});
//For this example, let's assume that the incoming webhook populated the message field in the object
$updates = $bot->getWebhookUpdates();
//Then the `MessageEvent` will fire and the fields will be filled accordingly:
$event->update_id === $updates->update_id
$event->payload === $updates->message
use Klev\TelegramBotApi\Telegram;
use Klev\TelegramBotApi\Events\MessageEvent;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
ate an object
LoggerInterface::class => function(\DI\Container $c) {
$log = new Logger('App');
$log->pushHandler(new StreamHandler('../var/logs/app.log'));
return $log;
},
//specify the rules on how to create an object
MessageReceivedListener::class => function(\DI\Container $c) {
return new MessageReceivedListener($c->get(LoggerInterface::class));
}
]);
$container = $builder->build();
//Instead of using an anonymous function, we can now use a custom class, into which,
//if necessary, we can pull everything we need (working with the database, sending by mail, etc.)
class MessageReceivedListener
{
private Logger $logger;
public function __construct(Logger $logger)
{
$this->logger = $logger;
}
public function __invoke(MessageEvent $event)
{
$this->log->info('Using invocable class', (array)$event->payload);
}
}
$bot = new Telegram('your personal token');
$bot->setEnableEvents(true);
$bot->on(MessageEvent::class, $container->get(MessageReceivedListener::class));
$bot->getWebhookUpdates();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.