[modTelegram] - Telegram сообщения
[modTelegram] — Небольшое дополнение для работы с Telegram.
Реализовано:
— методы работы с api
— помощник сайта
отправка текстового сообщения
отправка фото
помощник сайта
Реализован по мотивам вот этой заметки на habrahabr.ru/post/302056/ и пожеланию одного хорошего человека.
Для того чтобы установить webhook необходимо выполнить следующий код (можно выполнить в console)
доступные действия помощника
action — список доступных действий
login — авторизоваться в системе
password — пароль пользователя
пользователь должен быть членом группы «Telegram manager»
logout — выйти из системы
chatout — отключить чат
history — получить историю чата
reply — написать в активный чат
removeall — удалить все данные
pusher
Добавлен pusher чтобы не бомбить сервер ajax запросами. Бесплатного тарифа вполне должно хватить для насущных нужд.
Нужно зарегаться на pusher.com/ зайти в настройки пакета и прописать соответствующие настройки и активировать pusher.
PS. пакет доступен на гитхаб
Код на github, создавайте isuue
Важно
Работает через webhook, для него требуется обязательно https.
Компонент бесплатный, буду рад donation
донат:
Реализовано:
— методы работы с api
— помощник сайта
отправка текстового сообщения
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSendMessage(array(
'chat_id' => '1111111111',
'text' => 'текст сообщения',
));
отправка фото
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSendPhoto(array(
'chat_id' => '1111111111',
'from_path' => '1.jpg',// путь к картинке
));
помощник сайта
Реализован по мотивам вот этой заметки на habrahabr.ru/post/302056/ и пожеланию одного хорошего человека.
- установить пакет
- добавить бота @BotFather и создать бота
- получить токен и добавить его в настройки пакета
- установить webhook
- вызвать сниппет [[!modTelegram.helper]]
Для того чтобы установить webhook необходимо выполнить следующий код (можно выполнить в console)
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSetWebHook();
доступные действия помощника
action — список доступных действий
/action
login — авторизоваться в системе
/login_username_password
username — почта пользователяpassword — пароль пользователя
пользователь должен быть членом группы «Telegram manager»
logout — выйти из системы
/logout
chatin — подключить чат/chatin_id
chatout — отключить чат
/chatout
history — получить историю чата
/history_id
reply — написать в активный чат
/reply_message
location — получить локацию/location
removeall — удалить все данные
/removeall_password
pusher
Добавлен pusher чтобы не бомбить сервер ajax запросами. Бесплатного тарифа вполне должно хватить для насущных нужд.
Нужно зарегаться на pusher.com/ зайти в настройки пакета и прописать соответствующие настройки и активировать pusher.
PS. пакет доступен на гитхаб
Код на github, создавайте isuue
Важно
Работает через webhook, для него требуется обязательно https.
Компонент бесплатный, буду рад donation
донат:
- Андрей Кухарев — 500 руб.
- shtyrman — 490 руб.
- Денис Богдановский — 490 руб.
Поблагодарить автора
Отправить деньги
Комментарии: 140
Круто!
Отлично, спасибо
В ModStore не планируется?
закинул, должно вскоре появится.
Спасибо, оперативно!
Если вы установили webhook, но бот ничего вам не шлет в ответ — то скорее всего у вас кривоустановленый сертификат. При этом ошибок от telegram не будет — будет просто тишина…
Вот такой вот момент.
Вот такой вот момент.
например для сертификатов COMODO нужно склеить все промежуточные сертификаты и корневой по такому типу
cat www_example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt
Дал прикурить Jivosite и прочим. Спасибо!
Никак не сделать, чтобы работало без https? а то подавляющее количество сайтов работает всё-таки без https
— поставить самоподписной сертификат, весь сайт переводить на https необязательно, достаточно чтоб webhook работал через него
— посмотрел в pusher есть webhook и можно написать отдельно обрабочик для него, должно сработать.
— посмотрел в pusher есть webhook и можно написать отдельно обрабочик для него, должно сработать.
А есть живой пример?
есть но не дам. Нет интереса ловить кучу сообщений....)
Вы уж поймите меня правильно.
Вы уж поймите меня правильно.
Это вообще огонь! Модекс теперь в восходящем тренде.
Нужно развивать это дополнение.
Нужно развивать это дополнение.
Спасибо, постараюсь по мере возможностей.
Обновление:
— добавлена группа Telegram manager для авторизации под менеджером пользователь должен состоять в группе
— добавлена команда /removeall — удаляет все данные, вводить с паролем
— добавлена группа Telegram manager для авторизации под менеджером пользователь должен состоять в группе
— добавлена команда /removeall — удаляет все данные, вводить с паролем
/removeall_000000
— добавлена очистка чатов и сообщений при /logout и /chatout
Было бы круто добавить вывод списка чатов за определенный период времени. 500р добавил
ввывод служеной инфо я планировал на команду /status
как раз туда это и можно добавить.
как раз туда это и можно добавить.
500р добавилпришло, спасибо!)
Отличное дополнение, очень доволен.
Есть пару моментов
1. Если приложение ставится до установки ssl, то в настройках адрес Webhook прописывается с http, и уже после того как добавил sll так и остается. Соответственно при попытке установить webhook выдает ошибку.
2. Обновление чата на сайте происходит только после того как обновится страница.
Есть пару моментов
1. Если приложение ставится до установки ssl, то в настройках адрес Webhook прописывается с http, и уже после того как добавил sll так и остается. Соответственно при попытке установить webhook выдает ошибку.
2. Обновление чата на сайте происходит только после того как обновится страница.
По поводу пункта №2
Обратил внимание что это происходит если включить Pusher.
Выдает ошибку yadi.sk/i/0_qZB0ZgvZdUp — ругается на неверно указанный кластер если я правильно понял.
Также обратил внимание что на ваших скринах присутствует настройка кластера, а в текущей версии его нет. При этом если добавить данную настройку то ситуация не меняется.
Обратил внимание что это происходит если включить Pusher.
Выдает ошибку yadi.sk/i/0_qZB0ZgvZdUp — ругается на неверно указанный кластер если я правильно понял.
Также обратил внимание что на ваших скринах присутствует настройка кластера, а в текущей версии его нет. При этом если добавить данную настройку то ситуация не меняется.
Выдает ошибку yadi.sk/i/0_qZB0ZgvZdUp — ругается на неверно указанный кластер если я правильно понял.Проверьте все настройки и сопоставьте с теми что указаны в админке. Настройку кластера я выкинул, так как работало без нее.
Также обратил внимание что на ваших скринах присутствует настройка кластера, а в текущей версии его нет. При этом если добавить данную настройку то ситуация не меняется.
Возможно у вас старый js в котором указано использовать кластер, а самой настройки уже нет — вот и вас сыпет подобную ошибку.
Дополнение ставил вчера, до этого не использовал старую версию.
Сейчас используется modtelegram-1.0.11-beta
Сейчас используется modtelegram-1.0.11-beta
тогда проверяйте правильность введенных данных, чудес то не бывает…
Ну это я проверил не один раз, даже новые ключи генерировал, ситуация не изменилась, есть возможность глянуть у вас?
привет, напиши в скайп.
Такая же проблема. Была.
Добавьте здесь github.com/vgrish/modTelegram/blob/master/assets/components/modtelegram/js/web/default.js#L336
Добавьте здесь github.com/vgrish/modTelegram/blob/master/assets/components/modtelegram/js/web/default.js#L336
cluster: 'eu',
и здесь github.com/vgrish/modTelegram/blob/master/core/components/modtelegram/model/modtelegram/modtelegram.class.php#L1379'cluster' => 'eu',
Проблема была в том что при регистрации Pusher я начал выбирать параметры, а достаточно было получить ключ по умолчанию, без указания ПО и Платформ.
1. Если приложение ставится до установки ssl, то в настройках адрес Webhook прописывается с http, и уже после того как добавил sll так и остается. Соответственно при попытке установить webhook выдает ошибку.настройка modtelegram_web_hook_url — выставьте там правильный url и установите Webhook
Ну я так и сделал, может стоит изначально предусмотреть чтобы прописывался адрес с https, вне зависимости работает сервер с ssl или нет.
Обновление чата на сайте происходит только после того как обновится страница.вы включили использовать Pusher, но он по какой то причине у вас не работает. Естественно обновлений сообщений не будет
Я понимаю что Pusher не работает, тут я описал в чем возможно кроется проблема.
Володя, подскажите что делать, из системных настроек пропал кластер pusher'а. Было «Eu» и пропала строка настроек после переустановки с целью: "… пытался настроить, не мог залогиниться в боте"
Все заработало, но пушер не обновляет.
Все заработало, но пушер не обновляет.
Ставил Ваш мега дополнение седня первый раз… Может показалось что видел UE в настройках. чат работает, но не обновляется без перезагрузки.
Ошибки в консоли две:
WebSocket connection to 'wss://ws.pusherapp.com/app/b3b1d2b6979bf7380ed6?protocol=7&client=js&version=3.2.4&flash=false' failed: WebSocket is closed before the connection is established.
+
code":4001,«message»:«Did you forget to specify the cluster when creating the Pusher instance? App key b3b1d2b6979bf7380ed6 does not exist in this cluster
WebSocket connection to 'wss://ws.pusherapp.com/app/b3b1d2b6979bf7380ed6?protocol=7&client=js&version=3.2.4&flash=false' failed: WebSocket is closed before the connection is established.
+
code":4001,«message»:«Did you forget to specify the cluster when creating the Pusher instance? App key b3b1d2b6979bf7380ed6 does not exist in this cluster
Добрый день.
Did you forget to specify the cluster when creating the Pusher instance? App key b3b1d2b6979bf7380ed6 does not exist in this clusterпо моему очень говорящая ошибка…
Проверено, в настройках на сайте — актуальные данные с pusher.com
app_id = «401223»
key = «b3b1d2b6979bf7380ed6»
secret = «a93b48a86a7455e86571»
cluster = «eu»
Я со второй попытки сумел все сделать, возможно первые значения настроек где-то сохранились. Сейчас удалю все дополнение и кэш на хостинге, попробую заново сделать.
app_id = «401223»
key = «b3b1d2b6979bf7380ed6»
secret = «a93b48a86a7455e86571»
cluster = «eu»
Я со второй попытки сумел все сделать, возможно первые значения настроек где-то сохранились. Сейчас удалю все дополнение и кэш на хостинге, попробую заново сделать.
Решилось — созданием нового ключа на пушера. Работаете везде на hhtps и поддоменах.
Вот это компонент!)
Володя, спасибо вам большое.
В частности за ваш стиль, я все ошибки описанные в этой теме собрал, за пару вечеров разобрался. ) Очень прокачиваться помогаеге!!!
Вот это компонент!)
Володя, спасибо вам большое.
В частности за ваш стиль, я все ошибки описанные в этой теме собрал, за пару вечеров разобрался. ) Очень прокачиваться помогаеге!!!
Здорово! Благодарю за труд и отличное приложение!
Мне кажется будет востребован автопостинг анонсов статей/товаров в канал телеграмма. Телеграмм становится всё популярнее, уже налоговая в нём техподдержку организовала!
Мне кажется будет востребован автопостинг анонсов статей/товаров в канал телеграмма. Телеграмм становится всё популярнее, уже налоговая в нём техподдержку организовала!
Спасибо!
будет востребован автопостинг анонсов статей/товаровДля этого нужно просто написать плагин, для того кто хоть немного разбирается, не составит труда это сделать и на событие выполнить
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSendMessage(array(
'chat_id' => '1111111111',
'text' => 'текст сообщения',
));
Классное дополнение и нужное. Было бы неплохо реализовать еще возможность задавать свой чанк для кнопки помощника в настройках.
Наконец то дошли руки опробовать это дополнение.
Столкнулся с проблемой вот в этом:
/login_username_password
username — почта пользователя
password — пароль пользователя — тут не понятно пароль из настроек или пароль пользователя для входа на сайт?
у меня домен с тире и нет возможности написать почту…
/login_name@si-te.ru_000000
прерывается на тире и выдает ошибку входа
Столкнулся с проблемой вот в этом:
/login_username_password
username — почта пользователя
password — пароль пользователя — тут не понятно пароль из настроек или пароль пользователя для входа на сайт?
у меня домен с тире и нет возможности написать почту…
/login_name@si-te.ru_000000
прерывается на тире и выдает ошибку входа
Разобрались, проблема была не в тире, а в заглавных буквах в пароле пользователя.
Как узнать id бота? Поискал информацию и так толком и не нашел. В базу сохраняется только id менеджера.
Друзья, не ругайте сильно, пожалуйста.
Как установить webhook?
Вроде того?
Как установить webhook?
Вроде того?
https://api.telegram.org/bot<token>/setWebhook?url=https://mywebsite.com/чтописатьсюданепонятно
Еще у меня в логах пишет
И последнее, ребята, пожалуйста, помогите, от куда я должен взять modtelegram_action_password?
WARN @ /var/www/mysite/core/components/modtelegram/model/modtelegram/modtelegram.class.php : 455) PHP notice: Undefined index: action
Может по этому ничего не работает?И последнее, ребята, пожалуйста, помогите, от куда я должен взять modtelegram_action_password?
Писал в отчаяние все это. Удалить бы.
Не могу сказать, что разобрался, но работает.
Установить webhook — это привязать к боту адрес, на который будут отсылаться POST/GET запросы
Не могу сказать, что разобрался, но работает.
Установить webhook — это привязать к боту адрес, на который будут отсылаться POST/GET запросы
https://api.telegram.org/bot<token>/setWebhook?url=https://mywebsite.com/assets/components/modtelegram/webhook.php
modtelegram_action_password — вписал пароль от пользователя, который в группе Telegam manager
Можно было и проще сделать. Установить пакет Console из репозитория Modx. Зайти в него и в строке выполнить код прописать тот код, что дан в описании modTelegram для установки webHook и выполнить его.
Тоже сделал так — через консоль не хотел устанавливаться webhook.
А более подробной инструкции на этот замечательный мод нету???
Приветствую ещё раз, ошибка вышла при установки хука \core\components\modtelegram\model\modtelegram\modtelegram.class.php: 391)
внутрь залез этого файла:
внутрь залез этого файла:
public function log($message = '', $data = array(), $showLog = false)
{
if ($showLog OR $this->getOption('showLog', null, false, true)) {
$this->modx->log(modX::LOG_LEVEL_ERROR, $message);
if (!empty($data)) {
$this->modx->log(modX::LOG_LEVEL_ERROR, print_r($data, 1));
}
}
}
А вот что с этим делать? Подскажите пожалуйста.
Привет.
И какой текст ошибки?
При установке хука выводится сообщение в лог и все
github.com/vgrish/modTelegram/blob/master/core/components/modtelegram/model/modtelegram/modtelegram.class.php#L1096-L1099
И какой текст ошибки?
При установке хука выводится сообщение в лог и все
github.com/vgrish/modTelegram/blob/master/core/components/modtelegram/model/modtelegram/modtelegram.class.php#L1096-L1099
При установке хука происходит это:
[2016-12-02 15:43:26] (ERROR @ C:\server\http\***.ru\core\components\modtelegram\model\modtelegram\modtelegram.class.php: 391)
[2016-12-02 15:43:26] (ERROR @ C:\server\http\***.ru\core\components\modtelegram\model\modtelegram\modtelegram.class.php: 391)
SetWebHook failure
[2016-12-02 15:43:26] (ERROR @ C:\server\http\***.ru\core\components\modtelegram\model\modtelegram\modtelegram.class.php: 391)
[2016-12-02 15:43:26] (ERROR @ C:\server\http\***.ru\core\components\modtelegram\model\modtelegram\modtelegram.class.php: 391)
SetWebHook failure
https на сайте есть?
Проверьте какое значение настройки modtelegram_web_hook_url, если оно неверно определилось пропишите туда правильное значние и попытайтесь установить хук заново.
Проверьте какое значение настройки modtelegram_web_hook_url, если оно неверно определилось пропишите туда правильное значние и попытайтесь установить хук заново.
https я сделал, правильно ли я понял, что modtelegram_web_hook_url должен быть полным путём до webhook.php? (\assets\components\modtelegram\webhook.php)
Прошу выложить конфиг рабочего мода с затёртыми личными элементами, ну или более подробную инструкцию, а то вообще не понятно, что и где, и как. Я с телеграмом как свинья в апельсинах, неделю бъюсь. Отправлено 500 р.
скиньте в личку доступы к сайту, быстрее будет.
Спасибо!
з.ы. можно продублировать в скайп
Спасибо!
з.ы. можно продублировать в скайп
Скинул, первое ЛС ошибочное, второе верное
Приветствую ещё раз, установил, всё верно, залогинился, пишу в чат, но тишина))))
А теперь вот такая штука ))) Блин у меня полный набор всего что только может быть. \core\components\modtelegram\vendor\pusher\lib\Pusher.php: 463) PHP warning: json_encode(): Invalid UTF-8 sequence in argument. Я так понял это в PHP чего-то нехватает?
Друзья, у меня в логи сыпет очень много варнингов, лог-файл пухнет.
(WARN @ /var/www/happybu/core/components/modtelegram/model/modtelegram/modtelegram.class.php : 455) PHP notice: Undefined index: action
Может я не прописал в настройки что то.
это php7) допишите в класс проверку на существование переменной action (isset). А Володя наверное поправит потом)
В управлении словарями меняю значения, например, modtelegram_helper или modtelegram_chat_welcome со стандартных на свои, но выводятся все равно стандартные значения — «Помошник» и «Приветствую!» т.п.
Снипет вызвается с параметром &frontendLexicon=`modtelegram:ru`
В словаре меняю для языка ru, в логах ошибок нет. Можно как нибудь что-то сделать?
Снипет вызвается с параметром &frontendLexicon=`modtelegram:ru`
В словаре меняю для языка ru, в логах ошибок нет. Можно как нибудь что-то сделать?
удалите файл lexicon.js, он сформируется заново с внесенными изменениями
при вводе в консоле для webhook ругается на следующее:
[2017-03-16 19:33:46] (ERROR @ ..../core/components/modtelegram/model/modtelegram/modtelegram.class.php: 391)
SetWebHook success
[2017-03-16 19:33:46] (ERROR @ ..../core/components/modtelegram/model/modtelegram/modtelegram.class.php: 393)
1
Не подскажите как решить это?
[2017-03-16 19:33:46] (ERROR @ ..../core/components/modtelegram/model/modtelegram/modtelegram.class.php: 391)
SetWebHook success
[2017-03-16 19:33:46] (ERROR @ ..../core/components/modtelegram/model/modtelegram/modtelegram.class.php: 393)
1
Не подскажите как решить это?
SetWebHook successну он вам сообщил что все ОК. чего решать то?)
Да в том то и дело) не пойму, почему error то)
написал вам в профиле на почту
написал вам в профиле на почту
Володя простите, оч сильно тупанул) все работает, спс вам за дополнение. Скину в пожертвование)
Надеюсь будете развивать сие дело!
Надеюсь будете развивать сие дело!
Скину в пожертвование)Спасибо!
Здравствуйте. Все прекрасно работало, но заметил в последнее время что появились сбои.
В общем проверил все настройки и как делал в прошлый раз, но почему не получается.
Проблема заключается в том, что сообщения с сайта уходят, а вот в самом телеграмме не получается авторизоваться и выполнить какие-либо команды. Раньше помню, когда авторизуешься по /login_mail_password то приходило подтверждение об успешной авторизации, сейчас этого нет. Т.е. в данное время почему то работает это в одну сторону…
Каких либо ошибок в логах вообще нету.
имеем modx 2.5.6 php 7.1
upd. Извините, снова разобрался) просто подключил в консоли вебхук. Не знаю почему пришлось заново его подключать…
В общем проверил все настройки и как делал в прошлый раз, но почему не получается.
Проблема заключается в том, что сообщения с сайта уходят, а вот в самом телеграмме не получается авторизоваться и выполнить какие-либо команды. Раньше помню, когда авторизуешься по /login_mail_password то приходило подтверждение об успешной авторизации, сейчас этого нет. Т.е. в данное время почему то работает это в одну сторону…
Каких либо ошибок в логах вообще нету.
имеем modx 2.5.6 php 7.1
upd. Извините, снова разобрался) просто подключил в консоли вебхук. Не знаю почему пришлось заново его подключать…
Володя, хелп! Уперся в «Нет доступных менеджеров»… не могу понять в чем дело. В каких случаях это сообщение выпадает?
Менеджер не авторизовался в телеграм и не с кем связываться
login — авторизоваться в системеа если в имени пользователя и пароле присутствует символ нижнего подчеркивания "_", то авторизация не прокатит?
/login_username_passwordusername — почта пользователя
password — пароль пользователя
пользователь должен быть членом группы «Telegram manager»
да, вполне возможно. Создай пользователя специально для общения с простым логином паролем…
Ура!
Все фурычит! Спасибо!
Все фурычит! Спасибо!
Если менеджер отправляет сообщение, то нужно обновить браузер, что бы пользователь его увидел.значит pusher не подключен, либо настройки неверны…
посмотри есть в консоли браузера ругань от пушера.
Глянул… нет ошибок. Внимательнее все проверю через 2-3 часа… нужно на работу идти )
Здравствуйте! Вы решили проблему с Pusher? У меня очень похожая проблема, третий день не могу решить.
очевидно что то не так с pusher… Проверяйте настройки.
Я все проверил уже три раза, и никак… Приложение пересоздал и ничего…
Может посмотрите?)
Может посмотрите?)
Денис, как решили? Заработало?
Володя, у меня от юзера когда в форму пишешь — все нормально в онлайне обновляться начало.
Приходят сообщения в ТГ — У вас новый чат /chatin_4606ed757541c318a2ba54b3310064a1
Нажимаю на эту ссылочку, пишу ответ… Пока никак ответ пользователю не приходит в браузер…
Приходят сообщения в ТГ — У вас новый чат /chatin_4606ed757541c318a2ba54b3310064a1
Нажимаю на эту ссылочку, пишу ответ… Пока никак ответ пользователю не приходит в браузер…
скорее всего вы не авторизовались в чате как манагер… потому и нет ответа.
Пишу заметку на будущие)
В консоли Ошибка, хотя все настройки pusher и админки в норме.
1. Делаю новый ключ в пушере, старый удаляю, новые данные вставляю в настройки, и… так через раз удается победить пушер.
Выключаю в настройках пушер и все — Ошибка исчезла, чат онлайн активно обновляется.
Но ответить юзеру не могу. Менеджеру бот присылает /chatin_c117e633f87772f0749ca83f3f4205f3
Ни на какие команды не реаригует. Может вебхук в консоли переустановить или что делать?
Бот не реагирует на /login_admin_000000 или /login_admin_mypass и другие команды, но чаты в него приходят.
Сейчас включаю в настройках пушер — опять эта же ошибка… Юзер пишет в чат — но ничего не проиходит
PS посоветуйте пожалуйста что-нить, где искать…
В консоли Ошибка, хотя все настройки pusher и админки в норме.
code":4001,«message»:«Did you forget to specify the cluster when creating the Pusher instance? App key b3b1d2b6979bf7380ed6 does not exist in this cluster
При следующей последовательности получается починить… не всегда с первой попытки.1. Делаю новый ключ в пушере, старый удаляю, новые данные вставляю в настройки, и… так через раз удается победить пушер.
Выключаю в настройках пушер и все — Ошибка исчезла, чат онлайн активно обновляется.
Но ответить юзеру не могу. Менеджеру бот присылает /chatin_c117e633f87772f0749ca83f3f4205f3
Ни на какие команды не реаригует. Может вебхук в консоли переустановить или что делать?
Бот не реагирует на /login_admin_000000 или /login_admin_mypass и другие команды, но чаты в него приходят.
Сейчас включаю в настройках пушер — опять эта же ошибка… Юзер пишет в чат — но ничего не проиходит
PS посоветуйте пожалуйста что-нить, где искать…
за все время существования этого пакета, писало около 25-30 чел. со схожими проблемами. Итог один — неверные настройки пушера, либо несоответствие данных настроек настройкам в админке.
Не думаю что ты исключение… потому если устал, отдохни, займись чем нибудь другим.
Затем попробуй заново и по порядку. ТЫ сможешь! Верь в себя!)
Не думаю что ты исключение… потому если устал, отдохни, займись чем нибудь другим.
Затем попробуй заново и по порядку. ТЫ сможешь! Верь в себя!)
Спасибо, буду пробывать.
Не в настройках проблема. Может все таки что-то сохранилось в JS файл или еще куда-то?
Через ctrl+F видно 100%-ю идентичность КЕЙ АЙДИ и секрета пушера
т.е. на сайте пушера тоже самое что и в настройках.
Не в настройках проблема. Может все таки что-то сохранилось в JS файл или еще куда-то?
Через ctrl+F видно 100%-ю идентичность КЕЙ АЙДИ и секрета пушера
т.е. на сайте пушера тоже самое что и в настройках.
Ну да. Переустановки с 10-ой заработало)
Кто следующий пробуйте включать и выключать компонент.
Удачного.
Кто следующий пробуйте включать и выключать компонент.
Удачного.
Большое спасибо за компонент! <3
Ошибки при включенном пушере:
pusher.min.js?_=1505758845747:8 WebSocket connection to 'wss://ws.pusherapp.com/app/b5705d6329a36e922d13?protocol=7&client=js&version=3.2.4&flash=false' failed: Invalid frame header
Pusher: Error: {«type»:«WebSocketError»,«error»:{«type»:«PusherError»,«data»:{«code»:1006}}}
pusher.min.js?_=1505758845747:8 WebSocket connection to 'wss://ws.pusherapp.com/app/b5705d6329a36e922d13?protocol=7&client=js&version=3.2.4&flash=false' failed: Invalid frame header
(index):1 WebSocket connection to 'wss://ws.pusherapp.com/app/b5705d6329a36e922d13?protocol=7&client=js&version=3.2.4&flash=false' failed: WebSocket is closed before the connection is established.
pusher.min.js?_=1505758845747:8 Pusher: Error: {«type»:«WebSocketError»,«error»:{«type»:«PusherError»,«data»:{«code»:1006}}}
Pusher: Error: {«type»:«WebSocketError»,«error»:{«type»:«PusherError»,«data»:{«code»:4001,«message»:«Did you forget to specify the cluster when creating the Pusher instance? App key b5705d6329a36e922d13 does not exist in this cluster.»}}}
а когда выключаю — все ок, тока манагер все читает, но ответить не может.
в консоли только modTelegram > reconect
pusher.min.js?_=1505758845747:8 WebSocket connection to 'wss://ws.pusherapp.com/app/b5705d6329a36e922d13?protocol=7&client=js&version=3.2.4&flash=false' failed: Invalid frame header
Pusher: Error: {«type»:«WebSocketError»,«error»:{«type»:«PusherError»,«data»:{«code»:1006}}}
pusher.min.js?_=1505758845747:8 WebSocket connection to 'wss://ws.pusherapp.com/app/b5705d6329a36e922d13?protocol=7&client=js&version=3.2.4&flash=false' failed: Invalid frame header
(index):1 WebSocket connection to 'wss://ws.pusherapp.com/app/b5705d6329a36e922d13?protocol=7&client=js&version=3.2.4&flash=false' failed: WebSocket is closed before the connection is established.
pusher.min.js?_=1505758845747:8 Pusher: Error: {«type»:«WebSocketError»,«error»:{«type»:«PusherError»,«data»:{«code»:1006}}}
Pusher: Error: {«type»:«WebSocketError»,«error»:{«type»:«PusherError»,«data»:{«code»:4001,«message»:«Did you forget to specify the cluster when creating the Pusher instance? App key b5705d6329a36e922d13 does not exist in this cluster.»}}}
а когда выключаю — все ок, тока манагер все читает, но ответить не может.
в консоли только modTelegram > reconect
ps в настройках на сайте и на pusher com
какой вэбхук должен быть*
какой вэбхук должен быть*
https://auto-grow.ru/assets/components/modtelegram/webhook.php
илиhttps://auto-grow.ru/assets/components/modtelegram/pusherhook.php
ps все работало по максимуму, я разлогинился в боте, теперь ни как не могу залогиниться… /login_admin_pass не помогает — ошибка входа что-только не делал
На любые команды — бот отвечает ошибка входа.
Не помню как в прошлый раз этот вопрос решился, тоже долго не мог залогиниться
/login_admin_mypass
/login_admin_000000
/login_admin@site.ru_000000
Как то он по хитрому работает
Не помню как в прошлый раз этот вопрос решился, тоже долго не мог залогиниться
/login_admin_mypass
/login_admin_000000
/login_admin@site.ru_000000
Как то он по хитрому работает
Очень долго не мог залогиниться.
сделал почту пользователя без @site.ru т.е. просто /login_user_pass
сделал в пушере и настройках auto-grow.ru/assets/components/modtelegram/webhook.php
С третьего вызова залогинился, больше выходить не буду ))
дело за малым, вернул в настройки /pusherhook.php и все должно заработать.
Получилось, почти работает — осталось онлайн обновление чата отладить.
Для этого один раз выключил и включил компомент…
Все хорошо работало — осталось чтобы бот на команду /chatin реагировал и мог ответить…
Далее снова бот не отвечает на команды. По кругу… далее заново устанавливаю компонент.
И опять… что-то из выше описанного.
ps все выше написанное — мои предположения, ошибки возможно.
Вот-так снова поставил веб-хук — снова заработало. Хм, пока все работает… Ну все слава… Обидно только что четкую зависимость не смог увидеть…
сделал почту пользователя без @site.ru т.е. просто /login_user_pass
сделал в пушере и настройках auto-grow.ru/assets/components/modtelegram/webhook.php
С третьего вызова залогинился, больше выходить не буду ))
дело за малым, вернул в настройки /pusherhook.php и все должно заработать.
Получилось, почти работает — осталось онлайн обновление чата отладить.
Для этого один раз выключил и включил компомент…
Все хорошо работало — осталось чтобы бот на команду /chatin реагировал и мог ответить…
Далее снова бот не отвечает на команды. По кругу… далее заново устанавливаю компонент.
И опять… что-то из выше описанного.
ps все выше написанное — мои предположения, ошибки возможно.
Вот-так снова поставил веб-хук — снова заработало. Хм, пока все работает… Ну все слава… Обидно только что четкую зависимость не смог увидеть…
Вобщем он четко поработал немного, мин 15, потом пушер перестал онлайн обновлять-добавлять новые ответы.
Я в консоли код вэбхук выполнил, снова ноль активности в чате
заново пробую, и сейчас как бы все работает, только чате перезагружать надо, чтобы ответы менеджера видеть
Я в консоли код вэбхук выполнил, снова ноль активности в чате
заново пробую, и сейчас как бы все работает, только чате перезагружать надо, чтобы ответы менеджера видеть
Оч хороший плагин, работал норм… но не долго. Чтото на именно моем сайте вырубает этот плагинчик… Потом разбогатев вернусь к вопросу.
Извините за длинные посты. Просто эмоции. А приложение мне оч нравится )
Сейчас деинсталлировал компонент полностью. И как с первой попытки за 5 секунд установилось, работает… просто идеально.
Но в настройках пушер выключен, стоит «Нет» и вэбхука две строчки в консоли не вызывал. А работает на ура)
спасибо.
Сейчас деинсталлировал компонент полностью. И как с первой попытки за 5 секунд установилось, работает… просто идеально.
Но в настройках пушер выключен, стоит «Нет» и вэбхука две строчки в консоли не вызывал. А работает на ура)
спасибо.
Подскажите, пожалуйста, как начать работу с данным компонентом? Где прописывать эти команды "/login_user_password" итд? В инструкции, к сожалению, совсем мало информации, и для людей, плотно не знакомых с особенностями Телеграм достаточно сложно разобраться. У меня при нажатии кнопки чата выдаёт сообщение, что нет доступных менеджеров. Я так понял, что пользователя админки надо как-то залогинить с помощью скрипта webhook.php, верно? При обращении к этому файлу в браузере постоянно выдаёт Access Denied, какие бы GET параметры я не прописывал (action=login, /action/login итд). Где можно более подробно почитать, как всё пошагово настроить? Вебхук я поставил, пушер зарегил, все настройки прописал. Ничего не работает.
Чат мне удалось запустить (параметры, оказывается, нужно было давать созданному боту через Телеграм-клиент). Но теперь другая проблема: чат на сайте не обновляется без перезагрузки страницы. Сообщения в Телеграм-клиент приходят, но ответы на сайте в чате не отображаются (собственные сообщения тоже), без перезагрузки страницы и повторного нажатия кнопки чата. В пушере создавал разные вебхуки (webhook.php, pusherhook.php). Не помогло. Читал, что проблема может крытся где угодно — в настройках скрипта (параметр кластера), в самом коде JS итд. Что делать — не понятно.
Не могли бы Вы поподробнее описать процесс авторизации менеджера через Телеграм-клиент? Который день бьюсь, а досупных менеджеров нет и нет.
Отключил Пушер в настройках компонента — всё заработало. Проблема, видимо, в реализации взаимодействия с Пушер, так как в самом Пушере все настройки совпадают с настройками компонента (кроме Кластера, настройка которого в компоненте отсутствует).
Теперь у меня другой вопрос: как с помощью данного компонента вывести последние, например, 5 сообщений из группы или канала, в котором Бот является участником (или даже админом)? Нигде не нашёл такой информации, ни в АПИ, ни не форумах. Мне удалось сделать что-то подобное, создав другого бота (без webhook), и при запуске компонента из сниппета я подменяю токен (параметр «modtelegram_api_key») на токен бота без вебхука. Таким образом получаю обновления через метод «telegramGetUpdates()». Но в таком случае бот выводит даже те сообщения, которые он получает от абсолютно любого пользователя Телеграмма, а нужно только сообщения от членов группы. Поставил фильтр по «chat_id», но тогда возникает проблема с количеством принимаемых обновлений. Например, если последние 5 сообщений были от «левых» пользователей (команды, вроде "/start" итд.), то выводить на сайт нечего, а Оффсет обновлений сдвигается. Вот такие дела… Кто может подсказать?
Теперь у меня другой вопрос: как с помощью данного компонента вывести последние, например, 5 сообщений из группы или канала, в котором Бот является участником (или даже админом)? Нигде не нашёл такой информации, ни в АПИ, ни не форумах. Мне удалось сделать что-то подобное, создав другого бота (без webhook), и при запуске компонента из сниппета я подменяю токен (параметр «modtelegram_api_key») на токен бота без вебхука. Таким образом получаю обновления через метод «telegramGetUpdates()». Но в таком случае бот выводит даже те сообщения, которые он получает от абсолютно любого пользователя Телеграмма, а нужно только сообщения от членов группы. Поставил фильтр по «chat_id», но тогда возникает проблема с количеством принимаемых обновлений. Например, если последние 5 сообщений были от «левых» пользователей (команды, вроде "/start" итд.), то выводить на сайт нечего, а Оффсет обновлений сдвигается. Вот такие дела… Кто может подсказать?
не хочет дополнение устанавливаться
Консоль запущена...
Пробуем установить пакет с подписью: modtelegram-1.0.16-beta
Пакет найден... сейчас идёт подготовка к его установке.
Загрузка рабочего пространства пакета...
Рабочее пространство загружено, сейчас устанавливаем пакет...
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_api_url )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_api_key )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_web_hook_url )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_web_hook_action )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_action_password )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_tpl_user_info )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_pusher_active )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_pusher_id )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_pusher_key )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_pusher_secret )
Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => modtelegram_pusher_encrypted )
Skipping vehicle object of class modUserGroup (data object exists and cannot be upgraded); criteria: Array ( [name] => Telegram Manager )
Trying to download pusher. Please wait...
pusher was successfully installed
Trying to download eventsource. Please wait...
eventsource was successfully installed
Trying to download pusher. Please wait...
pusher was successfully installed
Trying to download eventsource. Please wait...
eventsource was successfully installed
Trying to download pusher. Please wait...
pusher was successfully installed
Trying to download eventsource. Please wait...
eventsource was successfully installed
Trying to download pusher. Please wait...
pusher was successfully installed
Trying to download eventsource. Please wait...
eventsource was successfully installed
Trying to download pusher. Please wait...
pusher was successfully installed
Trying to download eventsource. Please wait...
eventsource was successfully installed
Attempting to preserve files at /home/s12933/www/assets/components/modtelegram into archive /home/s12933/www/core/packages/modtelegram-1.0.16-beta/modCategory/a32beec5c14c104c2d87eeae8dd0adc6.0.preserved.zip
Attempting to preserve files at /home/s12933/www/core/components/modtelegram into archive /home/s12933/www/core/packages/modtelegram-1.0.16-beta/modCategory/a32beec5c14c104c2d87eeae8dd0adc6.1.preserved.zip
и на этом все…
посмотрю как будет время.
Версия modx, php?
Версия modx, php?
Та же самая проблема, и те же логи при установке.
MODHOST: MODX 2.6.4-pl, PHP 7.0
MODHOST: MODX 2.6.4-pl, PHP 7.0
Эта ошибка на PHP 5.6 и 7.0
В PHP 7.1 и 7.2 к этой ещё добавляется ошибка
В PHP 7.1 и 7.2 к этой ещё добавляется ошибка
PHP notice: A non well formed numeric value encountered
Видимо дело в последней версии MODX?
попробуй новую версию, должно быть все ок.
Да, всё быстро установилось. Спасибо!
пожалуйста!
Помогите пожалуйста, все нормально настроено, вебхук подключен.
Не вижу реакции в чате на команды вида…
/login_admin_mypass
/login_admin_000000
/login_admin@site.ru_000000
Как правильно вводить то?
Не вижу реакции в чате на команды вида…
/login_admin_mypass
/login_admin_000000
/login_admin@site.ru_000000
Как правильно вводить то?
Разобрался с логинами…
Как и раньше все работает — только при выключенном пушере.
Не знаю как настроить, помоему из-за этого медленно думает.
Кстати, старая проблема «чат не реагирует на команды» решается заменой адреса WebHook.php на и PusherHook.php в настройках компонента, с обязательно переподключением из консоли. И так несколько попыток пока не заработает.
И не помню, помоему пушер сначала включаю в настройках, подключаю в консоли, и отключаю пушер в настройках. И только так работает…
Как и раньше все работает — только при выключенном пушере.
Не знаю как настроить, помоему из-за этого медленно думает.
Кстати, старая проблема «чат не реагирует на команды» решается заменой адреса WebHook.php на и PusherHook.php в настройках компонента, с обязательно переподключением из консоли. И так несколько попыток пока не заработает.
И не помню, помоему пушер сначала включаю в настройках, подключаю в консоли, и отключаю пушер в настройках. И только так работает…
Пишете, что разобрались. Трудно написать, что именно делали?
Нормально что я этот адрес в настройках использую?
auto-grow.ru/assets/components/modtelegram/webhook.php
(у меня там оба файла лежат, webhook.php и pusherhook.php)
pusherhook.php тоже подключается, но чат не работает.
auto-grow.ru/assets/components/modtelegram/webhook.php
(у меня там оба файла лежат, webhook.php и pusherhook.php)
pusherhook.php тоже подключается, но чат не работает.
у меня есть компонент который посылает сообщения/файлы юзеру через телеграм бота без всяких вебхуков и пушеров, как письма по ид юзера вместо email адреса. Сюда залить не получилось да и правилами нельзя заливать похожее, на моем сайте качайте. подробная инструкция как это запустить там внутри. юзер просто запускает бота и дает свой ид, по нему ему через этого бота сервер посылает тексты/файлы.
Во время авторнизации пароль с верхним регистром не подходит.
Тоесть пароль: DdsadDSAdd будет выглядеть ddsaddsass по этому пользователь не авторизуется в системе
Тоесть пароль: DdsadDSAdd будет выглядеть ddsaddsass по этому пользователь не авторизуется в системе
2 года нормально было все и перестал работать. Подскажите пожалуйста это из-за блокировок телеграма?
После кнопки «Начать чат» ничего не происходит.
После кнопки «Начать чат» ничего не происходит.
Через минут 5 окно чата открывается, но сообщения с сайта не отправляются… Так и остаются в форме ввода текста. Но еще через 5 минут сообщения уходят в ленту чата но до телеграма не доходят.
Хм и пушер все это время отключен был в настройках, проблем не было. А сейчас есть.
на сайте разработки только что проверил — все работает.
Спасибо за ответ! может срок действия ключа Пушера кончился, или еще что. Разбираюсь.
если пушер отключен — то причем тут срок его действия?
ps. Не трогал на сайте разработки ничего с момента выпуска пакета — все так же работает, никаких действий с моей стороны не было.
ps. Не трогал на сайте разработки ничего с момента выпуска пакета — все так же работает, никаких действий с моей стороны не было.
Подскажите плз как на кнопку «Начать чат» поставить другую ссылку ...?
Спасибо большое. Очень помогли.
Замечательный плагин, но заставил помучаться Pusher.
Версия плагина 1.0.17-beta, версия modx revo 2.6.5, версия php 7.3.5
В итоге в файле assets/components/modtelegram/js/web/default.js на 336 строке
пришлось добавить в вызов конструктора Pusher дополнительные поля forceTLS и cluster, без них пушер говорил что мол ключ не найден. готовый вызов стал выглядеть так:
С первого раза сообщения не пошли, но сделал еще раз ключ — и все заработало.
Указание на необходимость наличия этих параметров подсмотрел в примере самого пушера.
Огромное спасибо автору!
Версия плагина 1.0.17-beta, версия modx revo 2.6.5, версия php 7.3.5
В итоге в файле assets/components/modtelegram/js/web/default.js на 336 строке
пришлось добавить в вызов конструктора Pusher дополнительные поля forceTLS и cluster, без них пушер говорил что мол ключ не найден. готовый вызов стал выглядеть так:
var pusher = new Pusher(modTelegramConfig.pusher.key, {
cluster: 'eu',
forceTLS: true,
encrypted: true
});
Так же пришлось добавить в файле core/components/modtelegram/model/modtelegram/modtelegram.class.php на 1381 строке в функции loadPusher эти же дополнительные параметры так, чтобы стало так:$this->getOption('pusher_id', null),
array(
'encrypted' => (bool)$this->getOption('pusher_encrypted', null),
'cluster' => 'eu',
'useTLS' => true,
)
и после этого обновить версию modx до 2.6.5+С первого раза сообщения не пошли, но сделал еще раз ключ — и все заработало.
Указание на необходимость наличия этих параметров подсмотрел в примере самого пушера.
Огромное спасибо автору!
Здравствуйте. Помогите, пожалуйста. Не могу понять в чем затык?
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSendMessage(array(
'chat_id' => '******',
'text' => 'Новый заказ',
));
Запускаю из консоли все работает.
Создал плагин с событием msOnCreateOrder
при новом заказе ничего не происходит
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSendMessage(array(
'chat_id' => '******',
'text' => 'Новый заказ',
));
Запускаю из консоли все работает.
Создал плагин с событием msOnCreateOrder
при новом заказе ничего не происходит
Для уведомление о новом заказе использовал это mstelegram
Приветствую. Если писать сообщение в чате, в телегу приходит?
Здравствуйте.
1 Ключ Telegram api прописал
2 Через консоль ввел
4 На сайте нажимаю «Начать чат» появляется alert с «Нет доступных менеджеров»
У кого-нибудь получилось настроить чат в 2022 году? )
1 Ключ Telegram api прописал
2 Через консоль ввел
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSetWebHook();
получил вот такое сообщение[2023-01-06 13:36:10] (ERROR in modRestCurlClient::__construct @ /home/ipont00/frolic.com.ua/www/core/model/modx/rest/modrestcurlclient.class.php : 26)
modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.
[2023-01-06 13:36:10] (ERROR @ /home/ipont00/frolic.com.ua/www/core/components/modtelegram/model/modtelegram/modtelegram.class.php : 391)
SetWebHook success
[2023-01-06 13:36:10] (ERROR @ /home/ipont00/frolic.com.ua/www/core/components/modtelegram/model/modtelegram/modtelegram.class.php : 393)
1
3 Вбиваю в консоль<?php
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSendMessage(array(
'chat_id' => 'id чата',
'text' => 'текст сообщения',
));
В бот приходит.4 На сайте нажимаю «Начать чат» появляется alert с «Нет доступных менеджеров»
У кого-нибудь получилось настроить чат в 2022 году? )
5 В созданном боте ввожу /login_username_password, выдает «Ошибка входа». После ввожу /status. На сайте нажимаю «Начать чат» и все работает. Магия
Коллеги, доброго времени суток.
Требуется помощь! Никак не могу победить этот плагин :-(
Сначала все заработало. успокоился. Привязал к сайту новый поддомен (по 301 redirect), при этом вебхук по старому имени остался доступен.
Перестало работать. При /login_username_pass — пишет ошибка входа, при '/login username pass' ничего не пишет,
При /status — пишет «Менеджер: статус — [[+active]], чатов — [[+chat_count]]»
При клике в браузере «Начать чат» — пишет «Нет доступных менеджеров»
Почему появляется [[+active]], чатов — [[+chat_count]]. ?!? что-то где-то не парсится, в апач еррор лог ошибок нет.
P.S. При даче команды в консоле:
Требуется помощь! Никак не могу победить этот плагин :-(
Сначала все заработало. успокоился. Привязал к сайту новый поддомен (по 301 redirect), при этом вебхук по старому имени остался доступен.
Перестало работать. При /login_username_pass — пишет ошибка входа, при '/login username pass' ничего не пишет,
При /status — пишет «Менеджер: статус — [[+active]], чатов — [[+chat_count]]»
При клике в браузере «Начать чат» — пишет «Нет доступных менеджеров»
Почему появляется [[+active]], чатов — [[+chat_count]]. ?!? что-то где-то не парсится, в апач еррор лог ошибок нет.
P.S. При даче команды в консоле:
<?php
$modtelegram = $modx->getService('modtelegram');
$modtelegram->telegramSendMessage(array(
'chat_id' => 'id чата',
'text' => 'текст сообщения',
));
Сообщение в телегу приходит.
Поразбирался немного, в результате:
$q формируется как
$user = $this->modx->getObject($modtelegram->classModUser, $q);
вот эта команда в методе GetUserByEmailPassword из файла core/components/modtelegram/model/modtelegram/modtelegram.class.phpдолжна возвращать объект $user, но возвращает null. Пользователь точно есть.
$q формируется как
$q = $this->modx->newQuery($modtelegram->classModUser);
$q->innerJoin($modtelegram->classModUserProfile, $modtelegram->classModUserProfile,
"{$modtelegram->classModUser}.id = {$modtelegram->classModUserProfile}.internalKey");
$q->where(array(
"{$modtelegram->classModUser}.active" => true,
"{$modtelegram->classModUserProfile}.email" => $email,
));
Пока не понятно куда копать дальше. В modx и php новичёк. Первый сайт на modx делаю.
С регистрацией менеджера в телеге разобрался. Пользователь искаля по полю email в профиле т.е. среди массива объектов ModUserProfile. Назначил пользователю email без собаки и домена, совпадающий с именем. Теперь стало так:
Но, в диалоге Хелпера все равно выводится «Нет доступных менеджеров». Буду думать дальше…
Но, в диалоге Хелпера все равно выводится «Нет доступных менеджеров». Буду думать дальше…
если закомментировать эти строчки
//$q->groupby("{$this->classManager}.id");
//$q->sortby("COUNT({$this->classChat}.mid)", "ASC");
в modtelegrm.class.phpв методе
getAvailableManagerByUid()то начинает работать, но это пока менеджер один, если будет больше одного, то не уверен что работоспособность сохраниться.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.