Модуль Rules Telegram (только Drupal 7)

Аватар пользователя ivnish ivnish 29 апреля 2019 в 12:28
4

Хочу представить новый модуль, который будет использоваться здесь, на друпал.ру в том числе.

Модуль называется Rules Telegram и позволяет отправлять уведомления о событиях на сайте не на e-mail, а в телеграм через правила модуля rules.

Примеры уведомлений:

  • Создание, редактирование, удаление материала на сайте
  • Создание, редактирование, удаление комментария на сайте
  • Создание, редактирование, удаление пользователя на сайте
  • Любое событие, которое может обработать модуль rules

Идея модуля была взята из репозитория Алексея Дёмина. Основная фишка кроется в том, что модуль позволяет использовать прокси сервер, т.к. телеграм на территории РФ заблокирован и отправка уведомлений через боты не работает.

На друпал.ру пока что модуль будет использоваться только для админов и модераторов. Возможно потом функционал отправки уведомлений в телеграм будет доступен и для пользователей.

Где версия для Drupal 8???

А её нет и, скорее всего, не будет, т.к. rules в Drupal 8 довольно глючный и нестабильный. Для отправки уведомлений о новых комментариях на сайте уже сейчас можно использовать стабильный Simple Comment Notify

Комментарии

Аватар пользователя seonomad seonomad 7 мая 2019 в 10:56

Отличная идея, но у меня почему то не отрабатывает правило и сообщение в канал не отправляются. Посмотрел в журнале, пишет ошибку Illegal characters found in URL

Аватар пользователя ivnish ivnish 7 мая 2019 в 11:03

Попробуйте писать меньше текста в поле сообщение. И убрать из него всякие спецсимволы.

Аватар пользователя seonomad seonomad 7 мая 2019 в 11:04

Сначала просто ставил токен [node:url], потом убрал и оставил просто текст "Тестовое сообщение". Короче уже некуда)

Аватар пользователя seonomad seonomad 7 мая 2019 в 11:40

ок! добавлю! Там по русску можно или лучше на английском ? Кстати почему Chat IDs именно через ID решили делать а не через @имя чата? Лишние телодвижения по поиску этого ID через отдельных ботов что путаницу некоторую вносит и неуверенность в правильности это ID

Аватар пользователя ivnish ivnish 7 мая 2019 в 11:55

Потому что изначально предполагается отправка ботом уведомлений в личку. А для этого нужно получить Chat ID

Аватар пользователя 7Rei 7Rei 1 июня 2019 в 14:53

Добрый день! На сколько просто будет прикрутить к данному модулю функцию ответа на комментарий администратором (через ответ на сообщение в чате с ботом)?
Благодарю.

Аватар пользователя vladtulku vladtulku 16 августа в 15:33

Доброго времени суток!
Модуль не хочет работать на хостинге. При этом, параллельная отправка письма, нормально срабатывает. Также этот модуль нормально работает на локалке. Куда смотреть, что делать?

Аватар пользователя ivnish ivnish 16 августа в 15:53

В логах друпала на хостинге есть что-то? Модуль php curl на хостинге включен?

Аватар пользователя vladtulku vladtulku 17 августа в 5:03

PHP 7.3.21 Curl 7.29.0 enabled
Логи на сервере отключены disable_functions -syslog. Также выдает ошибку
Warning: syslog() has been disabled for security reasons в функции syslog_watchdog() (строка 118 в файле /home/host/pri____ru/htdocs/www/modules/syslog/syslog.module).
но есть логи хостинга, которые только постоянно ругаются на ключи ssl
[Sun Aug 16 23:10:12 2020] [warn] RSA server certificate wildcard CommonName (CN) `*.pri___ru' does NOT match server name!?
других ошибок нет. Пробовал отключить ssl, вообще весь сайт сдох.
В отчетах -Последние записи журнала -сообщение о создании пользователя и отправка письма правилами. Аналогичные записи и на локальном сервере. При том, что на локальном, в телеграмм сообщения уходят. Никаких ошибок нет и записи, что отправлено правилами в телеграмм нет.

Аватар пользователя ivnish ivnish 17 августа в 5:15

К сожалению, по таким входным данным ничего не смогу подсказать. Попробуйте добиться помощи у хостера

Аватар пользователя vladtulku vladtulku 17 августа в 17:53

Воспользовавшись методом научного тыка, я заменил одно значение на FALSE и все заработало.

<?php    curl_setopt($curlCURLOPT_POSTFALSE);?>

Так же полное удаление этой строки дает положительный результат на сервере и локалке.
Так можно?