> For the complete documentation index, see [llms.txt](https://vitrina-blogerov.gitbook.io/bloggers-showcase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vitrina-blogerov.gitbook.io/bloggers-showcase/telegram-bot/dostup-administratora.md).

# Доступ администратора

React to deploys, comments, and external events with workflows that run on the platform.

Админ-доступ в Telegram-боте выдается по Telegram ID. Это отдельный механизм, который не связан с логином и паролем веб-админки.

{% hint style="warning" %}
Telegram-администратор может выполнять операционные действия в боте. Добавляйте только тех людей, которым действительно можно доверять рассылки, публикации и быстрые настройки.
{% endhint %}

### Как бот узнает администратора

Список администраторов хранится в настройке `ADMIN_IDS` в базе проекта.

Когда пользователь отправляет `/start` или нажимает админскую кнопку, бот проверяет его Telegram ID:

```mermaid
flowchart LR
    A["Пользователь"] --> B["Telegram ID"]
    B --> C{"ID есть в ADMIN_IDS?"}
    C -->|Да| D["Админское меню доступно"]
    C -->|Нет| E["Обычный режим пользователя"]
```

### Где управлять списком

Список Telegram-администраторов управляется через веб-админку.

Backend использует методы:

| Метод                       | Назначение                          |
| --------------------------- | ----------------------------------- |
| `GET /api/admin/bot/admins` | Получить текущий список Telegram ID |
| `PUT /api/admin/bot/admins` | Сохранить новый список Telegram ID  |

Формат данных:

```json
{
  "admin_ids": ["123456789", "987654321"]
}
```

После сохранения бот начинает использовать обновленный список из базы.

{% hint style="info" %}
Нужно добавлять именно Telegram ID, а не username. Username можно изменить, Telegram ID остается постоянным.
{% endhint %}

### Что видит администратор

После `/start` администратор получает приветствие, затем сообщение о входе как администратор и дополнительную клавиатуру.

{% tabs %}
{% tab title="Коммуникации" %}
Администратор может отправлять рассылки пользователям бота и публиковать посты в Telegram-канал.
{% endtab %}

{% tab title="Настройки" %}
Администратор может посмотреть или изменить приветствие, финальное сообщение после AI-подбора и финальные кнопки.
{% endtab %}

{% tab title="Статистика" %}
Администратор может посмотреть статистику пользователей, выгрузить Excel-файл и очистить пользователей, которые заблокировали бота.
{% endtab %}
{% endtabs %}

### Рассылки

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

После подтверждения бот копирует сообщение всем пользователям из базы `bot_users`.

<details>

<summary>Почему бот не может написать любому человеку</summary>

Telegram не разрешает боту первым писать пользователю. Пользователь должен хотя бы один раз запустить бота. После этого он попадает в базу `bot_users`, и бот сможет отправлять ему рассылки.

</details>

### Посты в канал

Для публикации в канал нужен настроенный `CHANNEL_ID`. Также бот должен быть добавлен в канал и иметь права администратора.

Если канал не настроен или прав недостаточно, Telegram отклонит публикацию, а бот сообщит об ошибке.

### Статистика и очистка базы

Администратор может посмотреть количество пользователей бота и количество пользователей, которые заблокировали бота.

Excel-выгрузка содержит Telegram ID, username, имя, фамилию и результат последней рассылки.

Очистка базы удаляет только пользователей со статусом `blocked`.

### Отличие от веб-админки

{% tabs %}
{% tab title="Веб-админка" %}
Защищена логином, паролем и JWT. Через нее управляют карточками, настройками витрины, Telegram token, AI, каналом и общими параметрами проекта.
{% endtab %}

{% tab title="Telegram-админ" %}
Определяется по Telegram ID. Нужен для быстрых действий внутри Telegram: рассылки, посты, статистика, приветствие и быстрый переход в админку.
{% endtab %}
{% endtabs %}

### Безопасная выдача доступа

Добавляйте только личные Telegram ID людей, которым действительно нужен доступ.

Удаляйте ID сотрудника, если доступ больше не нужен.

Если есть сомнение, сначала попросите человека написать боту и проверьте, что указан правильный аккаунт.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://vitrina-blogerov.gitbook.io/bloggers-showcase/telegram-bot/dostup-administratora.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
