gingteam / telegram
Telegram's collection of data types and methods
v1.0.2
2023-01-30 15:34 UTC
Requires
- php: >=8.1
- symfony/http-client: ^6.2
- symfony/property-access: ^6.2
- symfony/serializer: ^6.2
Requires (Dev)
- code-lts/doctum: ^5.5
- friendsofphp/php-cs-fixer: ^3.13
- nette/php-generator: ^4.0
- pestphp/pest: ^1.22
- symfony/string: ^6.2
- symfony/var-dumper: ^6.2
- vimeo/psalm: ^5.4
This package is auto-updated.
Last update: 2024-03-29 04:46:54 UTC
README
This package provides Telegram data types and methods
Example
You can implement your own object class:
<?php use GingTeam\Telegram\SerializerTrait; use GingTeam\Telegram\TelegramTrait; use GingTeam\Telegram\Type\Response; use Symfony\Component\HttpClient\HttpClient; use Symfony\Contracts\HttpClient\HttpClientInterface; require __DIR__.'/vendor/autoload.php'; class SimpleTelegram { use TelegramTrait; use SerializerTrait; private HttpClientInterface $client; public function __construct(private string $token, HttpClientInterface $client = null) { $this->client = $client ?: HttpClient::create(); } public function sendRequest(string $name, array $data = []) { $data = $this->getSerializer()->normalize((object) $data); $endpoint = sprintf('%s/bot%s/%s', self::BOT_API_URL, $this->token, $name); $response = $this->client->request('POST', $endpoint, [ 'json' => $data, ])->toArray(false); /** @var Response */ $response = $this->getSerializer()->denormalize($response, Response::class); if ($response->getErrorCode()) { throw new RuntimeException($response->getDescription()); } return $response->getResult(); } } $telegram = new SimpleTelegram('{token}'); foreach ($telegram->getUpdates() as $update) { echo $update?->getMessage()?->getFrom()?->getUsername()."\n"; }