Привет!

Зарегистрировавшись у нас, вы сможете заработать на своих темах а так же обсуждать, делиться личными сообщениями с другими участниками нашего сообщества.

Зарегистрироваться!

[Telegram] Core — Xenforo [2.0.5 Alpha 9]

XaKWin

Админ
Команда форума
Регистрация
30 Май 2024
Сообщения
530
Рубли
1 946
firefox_2018-05-02_12-21-34.png
Для версий
  1. 2.1
  2. 2.2

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

Добавляет возможность авторизоваться через Telegram Login Widget. Из-за особенностей работы последнего, вместо моментального редиректа на Telegram, происходит открытие страницы с предложением нажать на кнопку авторизации.
P.S.: Т.к. провайдеры блокируют доступ к серверам Telegram, скорее всего, кнопка авторизации Telegram не будет видна без VPN/прокси. Для них предусмотрен вариант перехода в клиент Telegram.

FAQ по плагину [Telegram] Core:​

Q.: Кнопка логина не видна.
A.: РКН... Попробуйте зайти на сайт через VPN/прокси.

Q.: Вместо кнопки появляется текст Bot domain invalid
A.: Либо домен не указан у отца ботов, либо указан неверно. Повторите команду /setdomain

Q.: Не выполняются запросы к Telegram Bot API.
A.: Скорее всего Ваш хостинг блокирует доступ к сайтам из реестра РКН. Можете попробовать включить прокси в настройках (/admin.php?options/groups/telegram/)
Так же, обратите внимание, что хостинги могут блокировать исходящие соединения к неизвестным им портам. Таковым может стать порт прокси-сервера. В таком случае обратитесь в техническую поддержку с просьбой открыть исходящие соединения на порт прокси-сервера.

Q.: Вебхуки не приходят, использую CloudFlare / любой иной CDN-прокси.
A.: В файрвол "клауда" добавить подсети 149.154.160.0/20 и 91.108.4.0/22.

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

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

    Обратите внимание на предостережение отца ботов касательно токена. Никому его [токен] не показывайте! Это важно!
  5. Для возможности использовать авторизацию через Telegram, нам так же нужно сообщить отцу ботов, на каком домене располагается наш сайт. Для этого, мы либо листаем в диалоге выше, находим команду /setdomain и нажимаем левой кнопкой мыши по ней, либо вводим её вручную в чате.
    В вылезшей клавиатуре выбираем нашего бота и отправляем в ответ чисто домен (без протокола; пример ниже).

  6. На этом наши приготовления бота завершены. Если необходимо - можете так же через отца задать аватарку (/setuserpic) или изменить имя (/setname). Изменить тег бота не представляется возможным на данный момент. Если Вы на этом этапе резко осознали, что выбрали плохой тег боту - самое время удалить бота (/deletebot) и сделать его с нуля.
    • Переходим на форум и заходим в панель администратора (/admin.php). В меню сбоку заходим в Setup → Service providers → Connected accounts, в списке находим Telegram и нажимаем левой кнопкой мыши по нему.
    • В отличие от 1.х, где нам нужно было ввести и имя бота в определенном формате (без символа собаки) и токен, в 2.х теперь нужен только токен. Его и заполняем, выбираем способ авторизации и нажимаем Save.
      Спойлер: Если при сохранении вылезает ошибка, а токен верный (и без пробелов в начале или в конце)...
  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
Вот и вся настройка. Всё не так сложно, как кажется.
По мере необходимости, пост буду дополнять.
 

Вложения

  • SModders-TelegramCore-2.0.5 Alpha 9.zip
    156,6 КБ · Просмотры: 2
  • language-Russian-(RU)-SModders-TelegramCore.zip
    3,2 КБ · Просмотры: 2
  • smodders-core-1_0_2_4.zip
    20,3 КБ · Просмотры: 2
Верх Низ