[Модуль] Telegram (telegram)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Amarok » Пн ноя 21, 2016 6:25 am

Странно. Этим сценарием кроме меня ещё один человек пользуется - полёт нормальный.
TelegramID заполнено у пользователя?
Screenshot.png
Screenshot.png (11.8 КБ) 8525 просмотров
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Пн ноя 21, 2016 10:30 am

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

Re: Модуль "Telegram"

Сообщение Amarok » Пн ноя 21, 2016 11:09 am

havenofear писал(а):Чтобы заработало нужно в классе User создать параметр TelegramID и вбить в него значения.
Да
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Модуль "Telegram"

Сообщение skysilver » Пн ноя 21, 2016 12:06 pm

Eraser писал(а):1. Исправил
4. Сделал, чтобы обработка была только от зарегистрированных пользователей
1. Все отлично. Кнопки теперь обычные.
СпойлерПоказать
photo_2016-11-21_11-37-06.jpg
photo_2016-11-21_11-37-06.jpg (119.14 КБ) 8457 просмотров
photo_2016-11-21_11-37-41.jpg
photo_2016-11-21_11-37-41.jpg (113.89 КБ) 8457 просмотров
4. Вот тут не понял. Сделана обработка именно шаблонов поведения Мажордомо от зарегистрированных пользователей или событий модуля Телеграм (вкладка События)? Я имел в виду именно последнее. Сейчас галочки "Шаблоны" у пользователей не стоят, а команды с клавиатуры все равно обрабатываются. Обработчики у меня прописаны в событии messageHook (тип текстовое сообщение).
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Пн ноя 21, 2016 12:58 pm

skysilver писал(а): 4. Вот тут не понял. Сделана обработка именно шаблонов поведения Мажордомо от зарегистрированных пользователей или событий модуля Телеграм (вкладка События)? Я имел в виду именно последнее. Сейчас галочки "Шаблоны" у пользователей не стоят, а команды с клавиатуры все равно обрабатываются. Обработчики у меня прописаны в событии messageHook (тип текстовое сообщение).
Сделана блокировка обработки любого сообщения (кроме /start) для всех пользователей, которых нет в модуле.
И не знаю имеет ли смысл делать для событий те же разрешения, что и для команд.

Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Модуль "Telegram"

Сообщение skysilver » Пн ноя 21, 2016 1:20 pm

Eraser писал(а):Сделана блокировка обработки любого сообщения (кроме /start) для всех пользователей, которых нет в модуле.
И не знаю имеет ли смысл делать для событий те же разрешения, что и для команд.
В принципе этого достаточно. Главное отсеять всех левых, а разграничивать между авторизованными пользователями можно уже на уровне кода события, если сильно захочется. ))
Eraser писал(а):Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
Вот это полезно. Не знал.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
havenofear
Сообщения: 120
Зарегистрирован: Чт янв 30, 2014 7:18 am
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: Модуль "Telegram"

Сообщение havenofear » Вт ноя 22, 2016 7:44 am

У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Вт ноя 22, 2016 7:59 am

havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
это решается настройкой "Приоритет истории" для пользователей и say("test",1);
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
havenofear
Сообщения: 120
Зарегистрирован: Чт янв 30, 2014 7:18 am
Благодарил (а): 4 раза
Поблагодарили: 3 раза

Re: Модуль "Telegram"

Сообщение havenofear » Вт ноя 22, 2016 12:07 pm

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

Re: Модуль "Telegram"

Сообщение ErmolenkoM » Вт ноя 22, 2016 1:29 pm

havenofear писал(а):
Eraser писал(а):
havenofear писал(а):У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.
это решается настройкой "Приоритет истории" для пользователей и say("test",1);
В этом то и вопрос... Что хотелось бы отключить только некоторые уведомления. Я понимаю, что можно отлючить все, а там где нужно - просто дублировать отправкой вручную. Но вот если бы ввести аргумент в функцию say...
Не смог удержаться :-)

Код: Выделить всё

say("Тревога! Прорвало батарею!!!",1); -- будет отправлено в телеграм
say("Точное время восемь утра",0); -- не будет отправлено в телеграм
ВОТ же он, аргумент (0-1), отправлять в телеграм или нет.
aka msh555
Cubian на Cubietruck, Connect
Ответить