PHPackages                             teapodsoft/slim-app-telegram - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. teapodsoft/slim-app-telegram

ActiveProject[Utility &amp; Helpers](/categories/utility)

teapodsoft/slim-app-telegram
============================

TeapodSoft Telegram Bot Integrations

1.1.1(3mo ago)01PHPPHP &gt;=8.4

Since Jan 23Pushed 3mo agoCompare

[ Source](https://github.com/teapodsoft/slim-app-telegram)[ Packagist](https://packagist.org/packages/teapodsoft/slim-app-telegram)[ RSS](/packages/teapodsoft-slim-app-telegram/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (14)Versions (5)Used By (0)

Teapodsoft Slim Telegram Bot Application
========================================

[](#teapodsoft-slim-telegram-bot-application)

Основная задача данного проекта - предоставить разработчику возможность легко и быстро запустить бота для работы с Telegram.

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

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

- Хостинг с поддержкой PHP 8.4 или выше и Apache
- SSL сертификат для домена (подойдет и Let's encrypt)

Структура проекта
=================

[](#структура-проекта)

Приложение построено по следующей структуре:

```
configs/                    Файлы настроек приложения
    config.php              Файл с настройками приложения
    routes.php              Файл с настройками ссылок и обработчиков
docker/                     Директория для создания образа Docker
public/                     Основная директория работы приложения
    index.php               Основной файл для работы приложения
secrets/                    Директория с секретными данными для работы окружения
src/                        Исходный код приложения
    Applications/           Директория с проектом и необходимым настройками
        Middlewares/        Директория с обработчиками Middleware
        ResponseEmiter/     Директория с обработчиками Response запросов
        Settings/           Директория с настройками и обработчиками
    Base/                   Директория с базовыми классами для работы
    Composer/               Директория для работы с Composer и действия postInstall событиями
    Routes/                 Обработчики для ссылок configs/routes.php
        Bot/                Обработчики запросов для Telegram Bot
    Telegram/               Обработчики для Telegram
        Commands/           Обработчики команд для Telegram
tests/                      Тесты для проверки работоспособности
vendor/                     Директория с установленными Composer пакетами

```

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

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

Установка локально для последующей загрузки на хостинг
------------------------------------------------------

[](#установка-локально-для-последующей-загрузки-на-хостинг)

Для того, что бы установить приложение и загрузить итоговый вариант на хостинг потребуется наличие [Docker](https://www.docker.com/) на локальном месте и дополнения [Docker Compose](https://docs.docker.com/compose/).

### Подготовка проекта к работе

[](#подготовка-проекта-к-работе)

Для локального разворота потребуется настроить файл .env. Для этого скопируйте шаблонный .env.dist через команду

```
cp .env.dist .env
```

Для разворота используйте команду и дождитесь итоговой сборки:

```
docker compose up -d
```

Установка с использованием Composer на хостинге
-----------------------------------------------

[](#установка-с-использованием-composer-на-хостинге)

Если у вас нет [Composer](https://getcomposer.org/), вы можете использовать инструкцию с сайта [getcomposer.org](https://getcomposer.org/doc/00-intro.md).

Создание проекта:

```
composer create-project teapodsoft/slim-app-telegram myproject
cd myproject
```

Настройка проекта
=================

[](#настройка-проекта)

Для корректной настройки приложения вам потребуется настроить файл secrets.json, который находится в директории secrets.

В случае, если после установки приложения у вас не создался файл secrets.json, то требуется использовать команду

```
cp secrets/secrets.example.json secrets/secrets.json
```

Структура secrets.json

```
{
    "project": {
        "NAME": "Basic Template Bot API",
        "DOMAIN": "https://bots.my-domain.ltd"
    },
    "telegram": {
        "TOKEN": "ТОКЕН от BotFather"
    }
}

```

Работа с Telegram Bot Webhook
=============================

[](#работа-с-telegram-bot-webhook)

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

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

В рамках использования подхода webhook требуется отправить запрос в Telegram Bot API с указанием ссылки, на которую будут отправляться запросы, когда пользователи пишут боту. Для этого, после разворота требуется открыть в браузере ссылку

В ответ вы получите результат, что webhook установлен:

```
{
    "result": true
}
```

Проверка текущего состояния
---------------------------

[](#проверка-текущего-состояния)

Для проверки установленного webhook можете воспользоваться ссылкой

В ответ вы получите результат с информацией об установке:

```
{
    "url": "https://bots.my-domain.ltd/webhook",
    "has_custom_certificate": false,
    "pending_update_count": 0,
    "ip_address": "1.1.1.1",
    "max_connections": 40
}
```

Удаление установленного webhook
-------------------------------

[](#удаление-установленного-webhook)

В случае если вам требуется удалить привязку Telegram бота от webhook - воспользуйтесь ссылкой

В ответ вы получите результат

```
{
    "result": true
}
```

Работа со Swagger
-----------------

[](#работа-со-swagger)

Приложение поддерживает Swagger. Вы можете получить список всех доступных для работы ссылок, обратившись по ссылке

Настройка своих команд для Telegram Bot
=======================================

[](#настройка-своих-команд-для-telegram-bot)

Для того, что бы настроить свои команды для работы потребуется

- Создать класс в директории /src/Telegram/Commands
- Наследовать ваш класс от абстрактного класса Command
- Добавить все необходимые функции для работы

Пример класса:

```
