С помощью данного дополнения вы сможете создать telegram бота для своего сайта, который сможет вести диалог с вашими пользователями , оповещать их о сообщениях / уведомлениях на сайте, а так же отправлять realtime оповещения выбранным пользователям о каких-либо событиях на сайте.
Важно! Я тестировал бота на 3ех разных хостингах и нигде запросы к телеграм не блокируются, как я понял это делают только "домашние" провайдеры. В любом случае я не несу никакой ответственности если вдруг ваш хостинг провайдер по какой-то причине заблокирует доступ к телеграм и бот из-за этого перестанет работать.
Создание бота
Для создание бота напишите в telegram @BotFather сообщение /newbot и следуйте инструкциям. После создания бота вам предоставят Token, который вы должны вставить на странице:
WP-Recall -> Настройки -> Rcl Telegram
Там же укажите в поле WebHook secret рандомную комбинацию символов и нажмите OK
Регистрация пользователя
На данный момент пользоваться ботом смогут только пользователи, которые будут иметь аккаунт на вашем сайте. В личном кабинете, на вкладке "Профиль" появится новая опция "привязать telegram" где будет описана процедура регистрации у бота:
После регистрации телеграм аккаунт пользователя будет связан с аккаунтом на сайте и он сможет пользоваться командами вашего бота:
Создание команд
Новые команды создаются в админке, на странице Telegram -> Команды бота
Процесс наполнения бота командами я постарался сделать максимально простым и понятным и на данный момент он выглядит так:
- Вы указываете команду, на которую будет реакция бота
- Вы указываете ответ - сообщение которое отправит бот пользователю
- В ответе вы можете использовать шаблоны, которые будут заменены на соотв. значения, например:
- {notifi} - будет заменено на кол-во текущих уведомлений пользователя
- {balance} - на баланс пользователя
- {online} - на текущий онлайн пользователей на сайте
- и т.д.
- В ответе вы можете использовать шаблоны, которые будут заменены на соотв. значения, например:
- При необходимости вы можете прикрепить к ответу кнопки - при нажатии на каждую можно указать свою команду, таким образом можно вести диалог с пользователем без необходимости набирать сообщения
Этого вполне достаточно для создание простого бота. Но если вам нужно больше - то можете использовать доп. настройки:
- Remove parent - если поставить галочку, то сообщение в котором кликнули по кнопке с данном командой будет удалено:
- Это используется в команде /unreg - при ее использовании появляется сообщение которое просит подтвердить или отменить отвязку аккаунта telegram. К этому сообщению привязаны 2 кнопки с командами /unreg0 - ответа и /unreg1 - подтверждение. Вот у этих кнопок и выбран параметр Remove parent - после клика по ним сообщение с подтверждением отвязки будет удалено.
- callback - название функции, которая будет вызвана при получении ботом указанной команды. Функция принимает 1 параметр - объект Telegram_Msg
- await callback - название функции, которая будет вызвана при получении ответа на вашу команду. Функция принимает 1 параметр - объект Telegram_Msg. Должна возвращать true - если ответ пользователя корректный и false - если вы ожидали другой ответ.
- Пример: Добавляет команду /setname и указываем у нее await callback - функцию которая обработает сообщение пользователя после этой команды. Мы ожидаем что это сообщение - новое имя юзера. Если все прошло ок - возвращаем true больше функция не будет вызываться. Если что-то пошло не так (некорректное имя) то возвращаем false и ожидаем новых данных от пользователя.
Объект Telegram_Msg
В callback и await callback функции передается 1 параметр: объект Telegram_Msg с помощью которого вы можете отправить сообщение юзеру и получить данные сообщения.
Доступные методы:
$Telegram_Msg ->
getUserId() - возвращает id пользователя на сайте, от которого получено сообщение в телеграм
isCallback() - возвращает true - если это сообщение получено в результате клика по кнопке
getText() - возвращает текст сообщения
getMessage() - возвращает полные данные сообщения, которые получены от telegram
isBotCommand() - возвращает true если полученное сообщение - команда бота
getBotCommand() - возвращает полученную команду бота
reply() - позволяет отправить ответ пользователю
Например:
$telegram_msg->reply(array(text=>'Текст ответного сообщения'))
Массовые уведомления
Так же дополнение позволяет рассылать пользователям, которые привязали свой telegram, сообщения о наличии новых уведомлений / сообщений.
На странице настроек WP-Recall -> Настройки -> Rcl Telegram вы можете выбрать как часто будет происходить рассылка: раз в день, 2 раза вдень, каждые 6, 3, 1 часов.
А на странице Telegram->Массовые уведомления вы сможете настроить текст этих уведомлений и при необходимости вкл / выкл их.
Realtime уведомления
Еще бот может отправлять оповещения о каких-либо действиях выбранным пользователям в реальном времени, т.е. в момент события, а не по крону как "Массовые уведомления".
Из-за того что уведомления отправляются в реальном времени, я сделал возможность указать id пользователей которым будут доступны realtime уведомления - можете указать туда себя или модераторов / других админов - тем кому важно узнавать о событиях на сайте как можно быстрее.
Доступные на данный момент типы realtime уведомления:
Новое уведомление - когда у юзера, который указан в блоке придет уведомление - он получит оповещение в telegram с темой уведомления и ссылкой на страницу уведомлений
Новое сообщение - когда юзеру, который указан в блоке придет новое приватное сообщение - он получит оповещение в telegram с ссылкой на страницу сообщений
Новая запись ожидает утверждения - когда на сайте появится новая запись на утверждении, всем пользователям которые указаны в блоке придет оповещение в telegram с заголовком записи и ссылкой на нее
Опубликована новая запись - когда на сайте появится новая запись, всем пользователям которые указаны в блоке придет оповещение в telegram с заголовком записи и ссылкой на нее
Создан новый заказ - когда на сайте появится новый заказ (Rcl Commerce), всем пользователям которые указаны в блоке придет оповещение в telegram с суммой заказа и ссылкой на страницу заказов
Почему realtime уведомления не для всех?
Потому что у телеграма есть ограничение на 30 сообщений в секунду и если рассылать уведомления всем по каждому чиху - это будет очень долго, т.к. надо вписываться в ограничения, а так же юзерам это может надоесть, на мой взгляд лучше раз в сутки отправлять им информацию о наличии новых уведомлений / сообщений и все.
Стандартная. Выбрать архив с дополнением и нажать "Установить". Или ручками поместить папку дополнения в /wp-content/wp-recall/add-on/
* Фикс ошибки при сохранении команды с удаленным ответом
* Поле вывода информации для привязки аккаунта перенесено в менеджер полей
* Теперь поле должно появляться в допе profile types manager
* Внимание! Что бы поле отобразилось после обновления - зайдите в менеджер полей профиля, перенесите поле из неактивных в нужное место и сохраните настройки!
* Исправлена ошибка когда могли не отправляться RealTime уведомления
* Добавлена поддержка recall 16.22+
* Исправлена пара мелких багов при создании комманд для бота
* Добавлена очистка сохраненных чатов при удалении дополнения, это позволит сбросить все авторизации в telegram при удалении дополнения через админку
* Теперь бот может оповещать выбранных пользователей о каких-либо действиях на сайте в режиме реального времени
* Теперь бот может оповещать пользователей о наличии новых уведомлений и сообщений на сайте
* Релиз
Огонь! Интеграции с телегой сейчас топ!
ВЕШЬ НУЖНАЯ 👍
Обновлено!
Теперь бот стал еще умнее и научился отправлять некоторые оповещения в реальном времени для избранных пользователей.
Доступные на данный момент типы оповещения realtime:
Новое уведомление
Новое личное сообщение
Новая запись на утверждении
Новая опубликованная запись
Новый заказ (Rcl Commerce)
Каждый тип можно выключить и для каждого типа указать отдельных пользователей, которым будет доступны эти оповещения.
По запросу можно будет добавить другие важные для вас оповещения.
Итого бот теперь умеет:
Вести простые диалоги
По крону оповещать пользователей о уведомлениях/сообщениях на вашем сайте
Сообщать избранным пользователям в реальном времени о важных событиях на сайте, например о созданном заказе.
А заказы Вукоммерс?
По умолчанию нет такого, но в принципе можно добавить
Здравствуйте, рассматриваю к покупке данное дополнение. Я правильно понимаю, что если я админ, то когда мне приходит личное сообщение в личном кабинете, то оно придет и на телеграм и я смогу с телеграм на него и ответить? Если да, то это возможно только админу или еще каким либо определенным ролям, у которых есть доступ к консоли сайта?
Здравствуйте. Тут ничего про возможность ответа не написано. В телеграм придет только уведомление что пришло новое сообщение, отвечать на него надо через сайт.
Интеграция это здорово! Есть ли возможность сделать оповещения о начислении с депозита? И изменения баланса? Или для админа например о запросе средств на вывод? Ещё можно оповещать о запуске нового конкурса на сайте)))
Ну это слишком индивидуально все, слать уведомление при каком-то событии - можно, но надо будет писать код.
Итого к покупке не рекомендую пока бот не будет допилен. на данный момент косяки:
1. Пропадают все команды из видимости если удалить какую нибудь из команд.
2. Нет статистики кто из участников активировал бота и привязался.
3. Не нашел возможности пере провязать аккаунт в случае если тг аккаунт будет заблокирован. И я сейчас админ не могу пользоваться ботом так как аккаунт который был привязан заблочен.
4. На форуме поддержки игнор.
4. На форуме проблема решается. Этот пункт не действительный.