[Модуль] Telegram (telegram)
Модератор: immortal
- Amarok
- Сообщения: 1434
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Контактная информация:
Re: Модуль "Telegram"
Странно. Этим сценарием кроме меня ещё один человек пользуется - полёт нормальный.
TelegramID заполнено у пользователя?
TelegramID заполнено у пользователя?
Моя Алиска живёт на Proxmox в Debian 12
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Контактная информация:
Re: Модуль "Telegram"
1. Исправилskysilver писал(а):С emoji на кнопках и размещением их на кнопках разобрался. Сделал себе динамическую клавиатуру. По ходу дела всплыло несколько нюансов.
1. Высота кнопок! Почему-то они выше, чем в других ботах (тот же Сбер или Яндекс). Если три ряда кнопок, то еще терпимо. А вот если два, то уже жесть. Надо что-то делать с этим.
2. При добавлении emoji перестают работать команды. При этом события при поиске ключевого слова через strripos() отрабатываются хорошо. Думаю надо команды тоже допилить, чтобы игнорировались emoji.
3. Из-за этих emoji опять же в общий чат Алисы пишутся пустые команды от пользователя.
4. Правильно понял, что у событий нет настроек безопасности (контроля доступа) и этим нужно заниматься на уровне кода? Может, вынести это в настройки по аналогии с командами? Сам не проверял, но вдруг события будут обрабатывать сообщения от левых пользователей, которые найдут моего бота. Не хотелось бы такого допустить.
4. Сделал, чтобы обработка была только от зарегистрированных пользователей
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
- Amarok
- Сообщения: 1434
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Контактная информация:
Re: Модуль "Telegram"
Даhavenofear писал(а):Чтобы заработало нужно в классе User создать параметр TelegramID и вбить в него значения.
Моя Алиска живёт на Proxmox в Debian 12
-
skysilver
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Контактная информация:
Re: Модуль "Telegram"
1. Все отлично. Кнопки теперь обычные.Eraser писал(а):1. Исправил
4. Сделал, чтобы обработка была только от зарегистрированных пользователей
SPOILERSPOILER_SHOW
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Контактная информация:
Re: Модуль "Telegram"
Сделана блокировка обработки любого сообщения (кроме /start) для всех пользователей, которых нет в модуле.skysilver писал(а): 4. Вот тут не понял. Сделана обработка именно шаблонов поведения Мажордомо от зарегистрированных пользователей или событий модуля Телеграм (вкладка События)? Я имел в виду именно последнее. Сейчас галочки "Шаблоны" у пользователей не стоят, а команды с клавиатуры все равно обрабатываются. Обработчики у меня прописаны в событии messageHook (тип текстовое сообщение).
И не знаю имеет ли смысл делать для событий те же разрешения, что и для команд.
Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
-
skysilver
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Контактная информация:
Re: Модуль "Telegram"
В принципе этого достаточно. Главное отсеять всех левых, а разграничивать между авторизованными пользователями можно уже на уровне кода события, если сильно захочется. ))Eraser писал(а):Сделана блокировка обработки любого сообщения (кроме /start) для всех пользователей, которых нет в модуле.
И не знаю имеет ли смысл делать для событий те же разрешения, что и для команд.
Вот это полезно. Не знал.Eraser писал(а):Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
havenofear
- Сообщения: 120
- Зарегистрирован: Чт янв 30, 2014 7:18 am
Re: Модуль "Telegram"
У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Контактная информация:
Re: Модуль "Telegram"
это решается настройкой "Приоритет истории" для пользователей и say("test",1);havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
-
havenofear
- Сообщения: 120
- Зарегистрирован: Чт янв 30, 2014 7:18 am
Re: Модуль "Telegram"
В этом то и вопрос... Что хотелось бы отключить только некоторые уведомления. Я понимаю, что можно отлючить все, а там где нужно - просто дублировать отправкой вручную. Но вот если бы ввести аргумент в функцию say...Eraser писал(а):это решается настройкой "Приоритет истории" для пользователей и say("test",1);havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
-
ErmolenkoM
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Контактная информация:
Re: Модуль "Telegram"
Не смог удержатьсяhavenofear писал(а):В этом то и вопрос... Что хотелось бы отключить только некоторые уведомления. Я понимаю, что можно отлючить все, а там где нужно - просто дублировать отправкой вручную. Но вот если бы ввести аргумент в функцию say...Eraser писал(а):это решается настройкой "Приоритет истории" для пользователей и say("test",1);havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
Код: Выделить всё
say("Тревога! Прорвало батарею!!!",1); -- будет отправлено в телеграм
say("Точное время восемь утра",0); -- не будет отправлено в телеграм