[Модуль] Telegram (telegram)
Модератор: immortal
- Amarok
- Сообщения: 1427
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Модуль "Telegram"
Странно. Этим сценарием кроме меня ещё один человек пользуется - полёт нормальный.
TelegramID заполнено у пользователя?
TelegramID заполнено у пользователя?
Моя Алиска живёт на Proxmox в Debian 12
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 873 раза
- Контактная информация:
Re: Модуль "Telegram"
1. Исправилskysilver писал(а):С emoji на кнопках и размещением их на кнопках разобрался. Сделал себе динамическую клавиатуру. По ходу дела всплыло несколько нюансов.
1. Высота кнопок! Почему-то они выше, чем в других ботах (тот же Сбер или Яндекс). Если три ряда кнопок, то еще терпимо. А вот если два, то уже жесть. Надо что-то делать с этим.
2. При добавлении emoji перестают работать команды. При этом события при поиске ключевого слова через strripos() отрабатываются хорошо. Думаю надо команды тоже допилить, чтобы игнорировались emoji.
3. Из-за этих emoji опять же в общий чат Алисы пишутся пустые команды от пользователя.
4. Правильно понял, что у событий нет настроек безопасности (контроля доступа) и этим нужно заниматься на уровне кода? Может, вынести это в настройки по аналогии с командами? Сам не проверял, но вдруг события будут обрабатывать сообщения от левых пользователей, которые найдут моего бота. Не хотелось бы такого допустить.
4. Сделал, чтобы обработка была только от зарегистрированных пользователей
- Рейтинг: 1.16%
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!

- Amarok
- Сообщения: 1427
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Модуль "Telegram"
Даhavenofear писал(а):Чтобы заработало нужно в классе User создать параметр TelegramID и вбить в него значения.
Моя Алиска живёт на Proxmox в Debian 12
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Модуль "Telegram"
1. Все отлично. Кнопки теперь обычные.Eraser писал(а):1. Исправил
4. Сделал, чтобы обработка была только от зарегистрированных пользователей
СпойлерПоказать
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 873 раза
- Контактная информация:
Re: Модуль "Telegram"
Сделана блокировка обработки любого сообщения (кроме /start) для всех пользователей, которых нет в модуле.skysilver писал(а): 4. Вот тут не понял. Сделана обработка именно шаблонов поведения Мажордомо от зарегистрированных пользователей или событий модуля Телеграм (вкладка События)? Я имел в виду именно последнее. Сейчас галочки "Шаблоны" у пользователей не стоят, а команды с клавиатуры все равно обрабатываются. Обработчики у меня прописаны в событии messageHook (тип текстовое сообщение).
И не знаю имеет ли смысл делать для событий те же разрешения, что и для команд.
Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!

-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Модуль "Telegram"
В принципе этого достаточно. Главное отсеять всех левых, а разграничивать между авторизованными пользователями можно уже на уровне кода события, если сильно захочется. ))Eraser писал(а):Сделана блокировка обработки любого сообщения (кроме /start) для всех пользователей, которых нет в модуле.
И не знаю имеет ли смысл делать для событий те же разрешения, что и для команд.
Вот это полезно. Не знал.Eraser писал(а):Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 120
- Зарегистрирован: Чт янв 30, 2014 7:18 am
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: Модуль "Telegram"
У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 873 раза
- Контактная информация:
Re: Модуль "Telegram"
это решается настройкой "Приоритет истории" для пользователей и say("test",1);havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!

-
- Сообщения: 120
- Зарегистрирован: Чт янв 30, 2014 7:18 am
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
Re: Модуль "Telegram"
В этом то и вопрос... Что хотелось бы отключить только некоторые уведомления. Я понимаю, что можно отлючить все, а там где нужно - просто дублировать отправкой вручную. Но вот если бы ввести аргумент в функцию say...Eraser писал(а):это решается настройкой "Приоритет истории" для пользователей и say("test",1);havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Модуль "Telegram"
Не смог удержатьсяhavenofear писал(а):В этом то и вопрос... Что хотелось бы отключить только некоторые уведомления. Я понимаю, что можно отлючить все, а там где нужно - просто дублировать отправкой вручную. Но вот если бы ввести аргумент в функцию say...Eraser писал(а):это решается настройкой "Приоритет истории" для пользователей и say("test",1);havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.

Код: Выделить всё
say("Тревога! Прорвало батарею!!!",1); -- будет отправлено в телеграм
say("Точное время восемь утра",0); -- не будет отправлено в телеграм