Addon for Xenforo 2.x.x [Telegram] Core — Xenforo [2.0.5 Alpha 9]

Black_Dragon
  • Black_Dragon
  • Хранитель порядка
  • 22,816
Red_Dragon разместил(а) новый ресурс:

[Telegram] Core — Xenforo - Добавляет возможность авторизоваться через Telegram Login Widget

Поднимаем прокси сервер | Установка | GitHub | Travis | Модули | Временный патч для 2.2

Описание плагина [Telegram] Core — Xenforo:​

Добавляет возможность авторизоваться через Telegram Login Widget. Из-за особенностей работы...

Посмотреть страницу этого ресурса...
 
Black_Dragon
  • Black_Dragon
  • Хранитель порядка
  • 22,816

Подробный разбор установки 2.х​

С 1.х многое поменялось. Что-то стало проще, что-то - сложнее. Мне показалось, что будет разумнее написать один большой пост про установку и ссылаться, в случае чего, на него. Ну и ссылку на него в описание впилить...
В этом "подробном" разборе будет опущена процедура скачивания архива, его распаковки и загрузки на удалённый сервер посредством любого протокола (FTP / SFTP / WebDav) с последующим нажатием кнопки Установить в админке. Это такие банальные вещи, которые надо уже уметь делать без явных уточнений, что и как.
  1. Переходим в Telegram и через поиск находим "отца ботов" (@BotFather).
  2. В диалоге с ним нажимаем Start.
  3. В ответ, отец напишет Вам, что он помогает с созданием и управление ботами в Telegram, и выведет перечень всех команд, которые он для этого знает. Нас интересует /newbot. Нажимаем на неё прямо в сообщении.

    Трюк с нажатием на команду в тексте сообщения точно работает в официальных клиентах. Если у Вас - неофициальный, наберите/скопируйте её руками и отправьте в чат как обычно.

    offtop

    В ответ последовательно сообщаем отцу имя нашего бота и его имя пользователя.
  4. В ответ, отец пришлёт нам токен бота. На скриншоте ниже, его местоположение будет выделено красной рамочкой.
    1573929394429
    Обратите внимание на предостережение отца ботов касательно токена. Никому его [токен] не показывайте! Это важно!
  5. Для возможности использовать авторизацию через Telegram, нам так же нужно сообщить отцу ботов, на каком домене располагается наш сайт. Для этого, мы либо листаем в диалоге выше, находим команду /setdomain и нажимаем левой кнопкой мыши по ней, либо вводим её вручную в чате.
    В вылезшей клавиатуре выбираем нашего бота и отправляем в ответ чисто домен (без протокола; пример ниже).
    Клавиатура может вылезть, а может и не вылезть.
    Своего первого бота я делал в 2016 году, и с тех пор утекло много воды. Всех деталей я не помню.
    Но, на данный момент, на моём аккаунте приличное кол-во аккаунтов ботов (не менее 10 штук), и я всегда вижу эту клавиатуру. Вылезает ли она, когда бот один - я, соответственно, не помню.
    1573929741515
  6. На этом наши приготовления бота завершены. Если необходимо - можете так же через отца задать аватарку (/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-соединения на порт выбранного прокси-сервера.
      [*]
  7. В настройках аддона (Setup → Options находим Telegram (/admin.php?options/groups/smodders_telegram/)) включаем веб-хуки в идеале для того, чтобы все выполняемые действия с ботом (новые сообщения, например, к нему от кого-то; нужно если выбрали Directспособ авторизации) приходили на наш сервер самостоятельно.
    Если Вы до сих пор сидите без HTTPS, можете даже не пробовать включать веб-хуки. Telegram без HTTPS присылать веб-хуки откажется, и единственно верным решением для Вашей ситуации будет лонг-поллинг (крон-задача), но тут надо понимать, что по-умолчанию, cron-задачи обрабатываются XF только когда кто-то заходит на сайт, потому задумайтесь об установке хотя бы Lets Encrypt сертификата.
  8. Готово. Можно проверить, всё ли работает. Хоть из админки.
    Если выбран Direct способ, и бот Вам ничем не отвечает (читай: не работает) после установки веб-хуков (если Cron - нужно время, чтобы задача сработала), есть два возможных корня проблемы:
    1. Хостинг-провайдер чтит законы, и блокирует входящие запросы от Telegram.
      Честно, редко такое вижу (на ру-хостах, да), но оно есть. На такие случаи реализован "финт ушами" в виде проксирования веб-хуков.
      На GitHub опубликован скрипт, который все входящие POST-запросы с типом application/json "реплицирует" на полученный в GET-параметрах адрес. Такой простой, но действенный "финт ушами".
      Я его тоже захостил. Кому необходимо - значение для настройки https://one.oracle.kruzya.me/telegramWebHookProxy.php?_target={webHook}
    2. "Анти-ддос" сервисы (привет, CloudFlare).
      Решается добавлением IP-адресов Telegram в белый список на файрволе. Подсети IP-адресов, откуда приходят веб-хуки, опубликованы на сайте Telegram, но если Вам мешает РКН - 149.154.160.0/20 и 91.108.4.0/22
Вот и вся настройка. Всё не так сложно, как кажется.
По мере необходимости, пост буду дополнять.
 
Black_Dragon
  • Black_Dragon
  • Хранитель порядка
  • 22,816
Распаковать на сервере с дополнением поверх уже установленного оригинального, перестроить мастер-данные дополнения:
1620200071607
После должно заработать без проблем.
В архив включил только изменившиеся файлы, потому обязательно наличие ранее установленного этого дополнения. Либо хотя бы загруженного на сервер архива из ресурса. Полноценный патч, пригодный так же для раскатки через админку, будет вечером. Он же в ресурс и будет загружен.
 

Attachments

  • SModders-TelegramCore-2.0.5 Alpha 7_patch.zip
    11.8 KB · Views: 67
gusbus
@Black_Dragon приветствую. Подскажи пожалуйста, что делать, если код приходит и дает авторизацию, а вот подтверждение по кнопке не работает.
 
xakwin
Что то у меня не получается даже при авторизации даже не выводиться ....
 
xakwin
Корректный запрос на подключение к внешней учётной записи отсутствует. Пожалуйста, попробуйте ещё раз.
а бот авторизовался пишет..
 
Aleksandr
При скачивании требует [SModders] Core v1.0.2.4+
 
V
Плагин [Telegram] Notifications 2.0.0 есть у кого ? без RC 5 нужен Notifications 2.0.0 2023 года
 
TopBottom