CrazyHackGUT
Проверенные
- Сообщения
- 3,863
- Решения
- 123
- Реакции
- 8,981
- Баллы
- 2,600
- Меценат
- #241
Подробный разбор установки 2.х
С 1.х многое поменялось. Что-то стало проще, что-то - сложнее. Мне показалось, что будет разумнее написать один большой пост про установку и ссылаться, в случае чего, на него. Ну и ссылку на него в описание впилить...
В этом "подробном" разборе будет опущена процедура скачивания архива, его распаковки и загрузки на удалённый сервер посредством любого протокола (
Если выбран Direct способ, и бот Вам ничем не отвечает (читай: не работает) после установки веб-хуков (если Cron - нужно время, чтобы задача сработала), есть два возможных корня проблемы:
Вот и вся настройка. Всё не так сложно, как кажется.
По мере необходимости, пост буду дополнять.
С 1.х многое поменялось. Что-то стало проще, что-то - сложнее. Мне показалось, что будет разумнее написать один большой пост про установку и ссылаться, в случае чего, на него. Ну и ссылку на него в описание впилить...
В этом "подробном" разборе будет опущена процедура скачивания архива, его распаковки и загрузки на удалённый сервер посредством любого протокола (
FTP
/ SFTP
/ WebDav
) с последующим нажатием кнопки Установить в админке. Это такие банальные вещи, которые надо уже уметь делать без явных уточнений, что и как.- Переходим в Telegram и через поиск находим "отца ботов" (
@BotFather
). - В диалоге с ним нажимаем Start.
- В ответ, отец напишет Вам, что он помогает с созданием и управление ботами в Telegram, и выведет перечень всех команд, которые он для этого знает. Нас интересует
/newbot
. Нажимаем на неё прямо в сообщении.
В ответ последовательно сообщаем отцу имя нашего бота и его имя пользователя. - В ответ, отец пришлёт нам токен бота. На скриншоте ниже, его местоположение будет выделено красной рамочкой.
Обратите внимание на предостережение отца ботов касательно токена. Никому его [токен] не показывайте! Это важно! - Для возможности использовать авторизацию через Telegram, нам так же нужно сообщить отцу ботов, на каком домене располагается наш сайт. Для этого, мы либо листаем в диалоге выше, находим команду
/setdomain
и нажимаем левой кнопкой мыши по ней, либо вводим её вручную в чате.
В вылезшей клавиатуре выбираем нашего бота и отправляем в ответ чисто домен (без протокола; пример ниже).
Клавиатура может вылезть, а может и не вылезть.
Своего первого бота я делал в 2016 году, и с тех пор утекло много воды. Всех деталей я не помню.
Но, на данный момент, на моём аккаунте приличное кол-во аккаунтов ботов (не менее 10 штук), и я всегда вижу эту клавиатуру. Вылезает ли она, когда бот один - я, соответственно, не помню. - На этом наши приготовления бота завершены. Если необходимо - можете так же через отца задать аватарку (
/setuserpic
) или изменить имя (/setname
). Изменить тег бота не представляется возможным на данный момент. Если Вы на этом этапе резко осознали, что выбрали плохой тег боту - самое время удалить бота (/deletebot
) и сделать его с нуля. - Переходим на форум и заходим в панель администратора (
/admin.php
). В меню сбоку заходим вSetup
→Service providers
→Connected accounts
, в списке находим Telegram и нажимаем левой кнопкой мыши по нему. - В отличие от 1.х, где нам нужно было ввести и имя бота в определенном формате (без символа собаки) и токен, в 2.х теперь нужен только токен. Его и заполняем, выбираем способ авторизации и нажимаем Save.
Похоже, Ваш хостинг-провайдер чтит законы РФ и блокирует доступ к Telegram. Поздравляем.
На эти случаи, аддон имеет возможность настройки прокси-сервера. Она локальная и распространяется только на запросы к Telegram API.
ВSetup
→Options
находимTelegram
(/admin.php?options/groups/smodders_telegram/
). Там будет опцияProxy connection string
. В неё нам нужно ввести адрес прокси-сервера в определённой URL-схеме (для тех, кому нужны подробности - на странице настроек, прямо в описании данного пункта есть ссылочка).
Тут можно напороться снова на хостинг-провайдера, который блокирует запросы к неизвестным портам.
Чтож, тут можно написать в техническую поддержку с просьбой открыть исходящие TCP-соединения на порт выбранного прокси-сервера. - В настройках аддона (
Setup
→Options
находимTelegram
(/admin.php?options/groups/smodders_telegram/
)) включаем веб-хуки в идеале для того, чтобы все выполняемые действия с ботом (новые сообщения, например, к нему от кого-то; нужно если выбрали Direct способ авторизации) приходили на наш сервер самостоятельно.
Если Вы до сих пор сидите без HTTPS, можете даже не пробовать включать веб-хуки. Telegram без HTTPS присылать веб-хуки откажется, и единственно верным решением для Вашей ситуации будет лонг-поллинг (крон-задача), но тут надо понимать, что по-умолчанию, cron-задачи обрабатываются XF только когда кто-то заходит на сайт, потому задумайтесь об установке хотя бы Lets Encrypt сертификата.
Если выбран Direct способ, и бот Вам ничем не отвечает (читай: не работает) после установки веб-хуков (если Cron - нужно время, чтобы задача сработала), есть два возможных корня проблемы:
- Хостинг-провайдер чтит законы, и блокирует входящие запросы от Telegram.
Честно, редко такое вижу (на ру-хостах, да), но оно есть. На такие случаи реализован "финт ушами" в виде проксирования веб-хуков.
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация, который все входящие POST-запросы с типомapplication/json
"реплицирует" на полученный в GET-параметрах адрес. Такой простой, но действенный "финт ушами".
Я его тоже захостил. Кому необходимо - значение для настройкиhttps://one.oracle.kruzya.me/telegramWebHookProxy.php?_target={webHook}
- "Анти-ддос" сервисы (привет, CloudFlare).
Решается добавлением IP-адресов Telegram в белый список на файрволе. Подсети IP-адресов, откуда приходят веб-хуки,У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация, но если Вам мешает РКН -149.154.160.0/20
и91.108.4.0/22
(актуально на 16.11.2019).
Вот и вся настройка. Всё не так сложно, как кажется.
По мере необходимости, пост буду дополнять.
Последнее редактирование: