You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Транспорт Telegram умеет как просто отправлять уведомления, так и работать в качестве полноценного бота: регистрировать клиентов, услуги, пополнять баланс и т.п.
Для того, чтобы SHM мог отправлять сообщения Вашим пользователям, необходимо:
21
-
1. Создать Telegram Bot-а, с помощью бота @BotFather(https://telegram.me/BotFather)
22
-
2.В админке, в "Настройки" -> "Конфигурация", необходимо сохранить Telegram Token, полученный на предыдущем шаге
45
+
1. Создать Telegram Bot-а, с помощью бота [@BotFather](https://t.me/BotFather) (https://handbook.tmat.me/ru/dev/botfather)
46
+
2.Создайте "Профиль" в SHM и укажите в нем `token` созданного бота
23
47
3. Создайте шаблон сообщения в админке, которое вы хотите отправлять своим пользователям ("Настройки" -> "Шаблоны")
24
48
4. Создайте нужное событие. Привяжите Ваш шаблон к нужному событию. В качестве группы серверов необходимо указать "Telegram уведомления", или любую другую группу, транспорт которой "telegram"
25
49
5. Дайте Вашему пользователю ссылку на вашего бота, чтобы он мог его себе добавить. После добавления бота Ваш клиент сможет получать от него уведомления
26
50
27
51
> В случаях, когда Ваш клиент регистрировался в SHM НЕ через Telegram bot-а, необходимо указать его логин telegram в его профиле (кабинете)
28
52
53
+
### Отправка уведомлений
54
+
55
+
Отправить сообщения в Telegram своим клиентам можно следующими способами:
56
+
1. С помощью транспорта Telegram
57
+
2. С помощью специального метода Шаблонизатора (`telegram.send()`)
58
+
3. С помощью специального метода Шаблонизатора (`telegram.bot()`)
59
+
60
+
#### `Отправка текста с помощью транспорта Telegram`
61
+
- Создайте шаблон с нужным текстом для отправки клиентам
62
+
- Привяжите шаблон к нужному событию, указав при этом транспорт Telegram
63
+
64
+
Пример шаблона отправки текста в Telegram:
65
+
```go
66
+
Тестовое сообщение для пользователя: {{ user.full_name }}
67
+
```
68
+
69
+
#### `Использование API Telegram с помощью транспорта Telegram`
70
+
Если вы хотите отправить не просто текст:
71
+
- Создайте шаблон с `JSON` данными для отправки в API Telegram
72
+
- Привяжите шаблон к нужному событию, указав при этом транспорт Telegram
73
+
- Пропишите в `settings` шаблона: `{"telegram":{"raw":true}}`
74
+
75
+
Пример использования [`sendMessage`](https://core.telegram.org/bots/api#sendmessage) в API Telegram:
76
+
```go
77
+
{{ toJson( sendMessage = {
78
+
text = "Тестовое сообщение для пользователя: " _ user.full_name
79
+
reply_markup = {
80
+
inline_keyboard = [[{
81
+
text = "Посетите наш сайт"
82
+
url = "https://domain.com"
83
+
}]]
84
+
}
85
+
})
86
+
}}
87
+
```
88
+
89
+
Пример шаблона отправки нескольких сообщений в API Telegram:
>> Если клиент использует сразу несколько ботов, то получит сообщение в каждый из них. Если нужно указать конкретный Профиль, то это можно сделать путем указания его в `settings` шаблона: `{"telegram":{"profile":ИМЯ_ПРОФИЛЯ}}`
98
+
99
+
### Отправка уведомлений себе
100
+
101
+
В случае, если Вы хотите отправлять системные сообщения себе в Telegram, то для этого:
102
+
- Создайте шаблон с нужным содержимым
103
+
- Создайте отдельный Профиль Telegram, укажите в нём `token` бота и `chat_id`, куда отправлять сообщения
104
+
- В `settings` шаблона укажите Профиль: `{"telegram":{"profile":"ИМЯ_ПРОФИЛЯ"}}`
105
+
- Привяжите ваш шаблон к нужным событиям
106
+
107
+
29
108
## Telegram bot
30
109
110
+
Telegram bot реализован с помощью шаблона SHM (`telegram_bot` по-умолчанию)
- Выполнить шаги 1 и 2 из предыдущего раздела (Telegram уведомления), если еще не выполнены.
37
-
- Настроить Telegram API, сообщить ему адрес, куда отправлять запросы от клиента (от бота). Для этого [скачайте](https://raw.githubusercontent.com/danuk/shm/master/scripts/telegram/setWebhook.sh) bash скрипт.
38
-
Перед запуском скрипта необходимо его отредактировать, записать в него свой token и HTTP адрес SHM. Выполните скрипт.
39
-
- Проверьте наличие шаблона `telegram_bot`. Внесите в него изменения по своему усмотрению.
40
-
- Запустите бота (`/start`). Если всё настроено верно, вы увидите приветствие.
117
+
- Выполнить шаги 1 и 2 из раздела: "Telegram уведомления" (если еще не выполнены).
118
+
- Настроить Telegram API, сообщить ему адрес, куда отправлять запросы от клиента (от бота). Для этого скачайте bash скрипт [setWebhook.sh](https://raw.githubusercontent.com/danuk/shm/master/scripts/telegram/setWebhook.sh). Перед запуском скрипта необходимо его отредактировать, укажите:
119
+
-`token` бота
120
+
- HTTPS адрес SHM (например: https://domain.com)
121
+
- имя шаблона (`telegram_bot` по-умолчанию)
122
+
- Выполните скрипт `setWebhook.sh` на любом Linux/Unix устройстве, так же подойдет и MacOS.
123
+
- Проверьте наличие шаблона для бота (`telegram_bot` по-умолчанию). Внесите в него изменения по своему усмотрению.
124
+
- Зайдите в своего бота в клиенте Telegram и выполните команду: `/start`. Если всё настроено верно, вы увидите приветствие.
41
125
42
-
>Telegram bot - использует шаблон `telegram_bot`. В шаблоне заложена вся логика бота.
126
+
>> По-умолчанию SHM определяет профиль для бота по имени шаблона. Если нужно использовать другой профиль, то это можно указать в скрипте `setWebhook.sh`, добавив после имени шаблона параметр: `tg_profile`, например: `telegram_bot?tg_profile=profile1`
43
127
44
-
Более подробно о шаблоне Telegram читайте здесь: [Шаблон Telegram bot]({{<ref "docs/setup/templates/telegram_bot" >}})
128
+
Более подробно о шаблонах Telegram читайте здесь: [Шаблон Telegram bot]({{<ref "docs/setup/templates/telegram_bot" >}})
Copy file name to clipboardExpand all lines: content/ru/docs/setup/services/events.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -73,7 +73,7 @@ flowchart LR
73
73
Для события необходимо указать "Категорию" услуги и "Группу серверов", для выполнения команд.
74
74
75
75
Категория события должна соответствовать категории услуги, для которой создается это событие и может быть указана с маской,
76
-
например: `vpn-*`, где `*` заменяет любые символы.
76
+
например: `category-%`, где `%` заменяет любые символы.
77
77
78
78
В зависимости от выбранной группы серверов, могут быть использованы дополнительные настройки, зависящие от [Транспорта]({{< ref "/docs/setup/servers/transport" >}}) группы.
Copy file name to clipboardExpand all lines: content/ru/docs/setup/templates/telegram_bot/_index.md
+15-59Lines changed: 15 additions & 59 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,9 +20,9 @@ hide_summary: false
20
20
В каждой секции мы можем писать реальные команды Telegram. Например, команда `sendMessage` отправляет сообщение в Telegram.
21
21
Вы можете использовать эту команду в соответсвии с [документацией](https://core.telegram.org/bots/api#sendmessage) Telegram.
22
22
23
-
В каждой секции можно писать множество команд, через запятую (см. пример в секции `/balance`).
23
+
Для отправки команд в API Telegram используйте метод `tg_api`.
24
24
25
-
Для того, чтобы лучше понять, как строятся всевозможные кнопочки, читайте документацию Telegram. В этом шаблоне всего-лишь описаны вызовы этих методов.
25
+
Для того, чтобы лучше понять, как строятся всевозможные [кнопочки](https://handbook.tmat.me/ru/messages/buttons), читайте документацию Telegram. В этом шаблоне всего-лишь описаны вызовы этих методов.
Шаблон используется для возможности ввода произвольной суммы и выбора настроенных платежных систем SHM.
216
216
217
217
1.[Настройте]({{< ref "/docs/setup/payments" >}}) одну или несколько платежных систем
218
-
2.[Скачайте шаблон](https://raw.githubusercontent.com/danuk/shm-templates/main/telegram_bot/tg_payments.tmpl) и сохраните в SHM под названием `tg_payments`
218
+
2.[Скачайте шаблон](https://raw.githubusercontent.com/danuk/shm-templates/main/telegram_bot/tg_payments_webapp.tmpl) и сохраните в SHM под названием `tg_payments_webapp`
219
219
3. В Шаблоне своего бота используйте конструкцию вида:
Для связки пользователя SHM и пользователя Telegram используется `user_id` из Telegram.
245
-
246
-
#### Для отправки сообщений пользователю в Telegram необходимо знать:
247
-
- user_id - идентификатор пользователя Telegram
248
-
- chat_id - идентификатор чата Telegram
249
-
250
-
Если пользователь хоть раз взаимодействовал с ботом, подключенным к SHM, то его `user_id` и `chat_id` автоматически сохраняются в `settings` пользователя.
251
-
252
-
#### `chat_id` определяется в следующем порядке:
253
-
- Из сообщения Telegram (в случае, если клиент отправил команду боту)
254
-
- Из `settings` шаблона (`telegram.chat_id`)
255
-
- Из `settings` пользователя SHM (`telegram.chat_id`)
256
-
257
-
258
-
## Отправка системных сообщений
259
-
260
-
В случае, если Вы хотите отправлять системные сообщения себе в телеграм, то для этого Вы можете создать отдельный
261
-
шаблон, и в его settings прописать:
262
-
```go
263
-
{
264
-
"telegram": {
265
-
"chat_id": ID_вашего_чата
266
-
}
267
-
}
235
+
)
236
+
}}
268
237
```
269
238
270
-
Пример шаблона:
271
-
```go
272
-
Событие: {{ event_name }}
273
239
274
-
Пользователь: {{ user.login }} ({{ user.id }})
275
240
276
-
{{ IF us.id }}
277
-
Услуга: [{{ us.id }}] {{ us.name }}
278
-
{{ END }}
279
-
280
-
{{ IF event_name == "PAYMENT" }}
281
-
Платеж на сумму: {{ user.pays.last.money }} зачислен для пользователя: {{ user.login }}
0 commit comments