PHPackages                             botgate/sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. botgate/sdk

ActiveLibrary[API Development](/categories/api)

botgate/sdk
===========

PHP SDK for BotGate - Telegram Bot API proxy

v1.0.0(yesterday)01↑2900%1MITPHPPHP ^8.2

Since Jun 22Pushed yesterdayCompare

[ Source](https://github.com/Alexby8/botgate-php-sdk)[ Packagist](https://packagist.org/packages/botgate/sdk)[ Docs](https://bot-gate.ru/)[ RSS](/packages/botgate-sdk/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (7)Versions (2)Used By (1)

BotGate SDK
===========

[](#botgate-sdk)

**BotGate** — это шлюз (прокси) для Telegram Bot API, позволяющий стабильно обращаться к Telegram из России без личных прокси и VPN. Ваше приложение отправляет запрос в BotGate, а он выполняет его к `api.telegram.org` с зарубежного сервера и возвращает ответ как есть — формат запросов привычный, меняется только адрес. Сервис даёт единый API-ключ для всех ботов, шифрование Telegram Bot Token, приём webhook с автоматическими повторными попытками и статистику в личном кабинете. Подробнее — на [bot-gate.ru](https://bot-gate.ru/).

Этот пакет — официальный **PHP SDK** для BotGate: не зависит от фреймворка, предоставляет типизированный клиент для вызова методов Bot API, проверки подписи вебхуков и разбора входящих обновлений.

Требования
----------

[](#требования)

- PHP `^8.2`
- PSR-18 HTTP-клиент (по умолчанию используется Guzzle)

Установка
---------

[](#установка)

```
composer require botgate/sdk
```

Быстрый старт
-------------

[](#быстрый-старт)

```
use BotGate\Client;

$client = Client::create('ВАШ_API_КЛЮЧ');

$response = $client->bot('public-bot-id')->call('sendMessage', [
    'chat_id' => 123456789,
    'text' => 'Привет из BotGate!',
]);

if ($response->ok) {
    // $response->result — содержимое поля "result" ответа Telegram
}
```

`Client::create()` собирает клиент с транспортом по умолчанию (Guzzle + повторные попытки с экспоненциальной задержкой).

Конфигурация
------------

[](#конфигурация)

Для тонкой настройки используйте `Config`:

```
use BotGate\Client;
use BotGate\Config;

$config = new Config(
    apiKey: 'ВАШ_API_КЛЮЧ',
    baseUrl: 'https://bot-gate.ru',
    timeout: 30.0,
    maxRetries: 3,
    retryBaseDelayMs: 500,
);

$client = Client::fromConfig($config);
```

Чтобы подставить собственный транспорт (например, для тестов или особой логики), реализуйте `BotGate\Http\HttpClientInterface` и передайте его напрямую:

```
$client = new Client($config, $customHttpClient);
```

Вызов методов Bot API
---------------------

[](#вызов-методов-bot-api)

```
$bot = $client->bot('public-bot-id');

// JSON-запрос
$bot->call('sendMessage', ['chat_id' => 1, 'text' => 'hi']);

// Загрузка файлов (multipart/form-data)
use BotGate\Http\MultipartField;

$bot->callMultipart('sendPhoto', [
    new MultipartField('chat_id', '1'),
    MultipartField::file('photo', '/path/to/photo.jpg'),
]);

// Скачивание файла по его file_path
$stream = $bot->downloadFile('photos/file_0.jpg');
```

> Метод `getUpdates` намеренно заблокирован (бросает `BlockedMethodException`) — обновления доставляются через вебхук.

Вебхуки
-------

[](#вебхуки)

### Проверка подписи

[](#проверка-подписи)

Входящие запросы подписываются заголовком `X-BotGate-Signature` (HMAC-SHA256 от тела запроса):

```
use BotGate\Webhook\SignatureValidator;

$validator = new SignatureValidator('webhook-секрет');

if (! $validator->isValid($rawBody, $signature)) {
    // 403
}

// либо строгий вариант с исключением
$validator->validate($rawBody, $signature); // InvalidSignatureException
```

### Разбор обновления

[](#разбор-обновления)

```
use BotGate\DTO\Update;
use BotGate\DTO\UpdateType;

$update = Update::fromJson($rawBody);

$update->updateId;            // int
$update->type();              // UpdateType
$update->is(UpdateType::Message);

$message = $update->message();        // array|null
$callback = $update->callbackQuery(); // array|null
```

Ответ
-----

[](#ответ)

`call()` и `callMultipart()` возвращают `BotGate\DTO\Response`:

```
$response->ok;          // bool
$response->result;      // mixed
$response->description; // ?string
$response->errorCode;   // ?int
$response->raw;         // array — исходный ответ целиком
```

Обработка ошибок
----------------

[](#обработка-ошибок)

Все исключения SDK реализуют `BotGate\Exception\BotGateExceptionInterface`, поэтому их можно ловить одним блоком:

```
use BotGate\Exception\BotGateExceptionInterface;
use BotGate\Exception\RateLimitException;
use BotGate\Exception\UnauthorizedException;

try {
    $client->bot('id')->call('sendMessage', $params);
} catch (RateLimitException $e) {
    // 429 — превышен лимит
} catch (UnauthorizedException $e) {
    // 401 — неверный API-ключ
} catch (BotGateExceptionInterface $e) {
    // любая другая ошибка SDK
}
```

Лицензия
--------

[](#лицензия)

[MIT](LICENSE) © BotGate

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance100

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/13970618?v=4)[Alexby8](/maintainers/Alexby8)[@Alexby8](https://github.com/Alexby8)

---

Top Contributors

[![Alexby8](https://avatars.githubusercontent.com/u/13970618?v=4)](https://github.com/Alexby8 "Alexby8 (2 commits)")

---

Tags

sdkwebhookbottelegramtelegram botbotgate

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/botgate-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/botgate-sdk/health.svg)](https://phpackages.com/packages/botgate-sdk)
```

###  Alternatives

[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k12](/packages/tempest-framework)[telnyx/telnyx-php

Official Telnyx PHP SDK — APIs for Voice, SMS, MMS, WhatsApp, Fax, SIP Trunking, Wireless IoT, Call Control, and more. Build global communications on Telnyx's private carrier-grade network.

35729.6k2](/packages/telnyx-telnyx-php)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.8M712](/packages/sylius-sylius)[chargebee/chargebee-php

ChargeBee API client implementation for PHP

758.3M9](/packages/chargebee-chargebee-php)[getbrevo/brevo-php

Official Brevo provided RESTFul API V3 php library

1003.6M46](/packages/getbrevo-brevo-php)[theodo-group/llphant

LLPhant is a library to help you build Generative AI applications.

1.7k371.6k6](/packages/theodo-group-llphant)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
