Страница 39 из 191

Re: Модуль "Telegram"

Добавлено: Пн ноя 21, 2016 6:25 am
Amarok
Странно. Этим сценарием кроме меня ещё один человек пользуется - полёт нормальный.
TelegramID заполнено у пользователя?
Screenshot.png
Screenshot.png (11.8 КБ) 8532 просмотра

Re: Модуль "Telegram"

Добавлено: Пн ноя 21, 2016 10:30 am
Eraser
skysilver писал(а):С emoji на кнопках и размещением их на кнопках разобрался. Сделал себе динамическую клавиатуру. По ходу дела всплыло несколько нюансов.
1. Высота кнопок! Почему-то они выше, чем в других ботах (тот же Сбер или Яндекс). Если три ряда кнопок, то еще терпимо. А вот если два, то уже жесть. Надо что-то делать с этим.
2. При добавлении emoji перестают работать команды. При этом события при поиске ключевого слова через strripos() отрабатываются хорошо. Думаю надо команды тоже допилить, чтобы игнорировались emoji.
3. Из-за этих emoji опять же в общий чат Алисы пишутся пустые команды от пользователя.
4. Правильно понял, что у событий нет настроек безопасности (контроля доступа) и этим нужно заниматься на уровне кода? Может, вынести это в настройки по аналогии с командами? Сам не проверял, но вдруг события будут обрабатывать сообщения от левых пользователей, которые найдут моего бота. Не хотелось бы такого допустить.
1. Исправил
4. Сделал, чтобы обработка была только от зарегистрированных пользователей

Re: Модуль "Telegram"

Добавлено: Пн ноя 21, 2016 11:09 am
Amarok
havenofear писал(а):Чтобы заработало нужно в классе User создать параметр TelegramID и вбить в него значения.
Да

Re: Модуль "Telegram"

Добавлено: Пн ноя 21, 2016 12:06 pm
skysilver
Eraser писал(а):1. Исправил
4. Сделал, чтобы обработка была только от зарегистрированных пользователей
1. Все отлично. Кнопки теперь обычные.
СпойлерПоказать
photo_2016-11-21_11-37-06.jpg
photo_2016-11-21_11-37-06.jpg (119.14 КБ) 8464 просмотра
photo_2016-11-21_11-37-41.jpg
photo_2016-11-21_11-37-41.jpg (113.89 КБ) 8464 просмотра
4. Вот тут не понял. Сделана обработка именно шаблонов поведения Мажордомо от зарегистрированных пользователей или событий модуля Телеграм (вкладка События)? Я имел в виду именно последнее. Сейчас галочки "Шаблоны" у пользователей не стоят, а команды с клавиатуры все равно обрабатываются. Обработчики у меня прописаны в событии messageHook (тип текстовое сообщение).

Re: Модуль "Telegram"

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

Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;

Re: Модуль "Telegram"

Добавлено: Пн ноя 21, 2016 1:20 pm
skysilver
Eraser писал(а):Сделана блокировка обработки любого сообщения (кроме /start) для всех пользователей, которых нет в модуле.
И не знаю имеет ли смысл делать для событий те же разрешения, что и для команд.
В принципе этого достаточно. Главное отсеять всех левых, а разграничивать между авторизованными пользователями можно уже на уровне кода события, если сильно захочется. ))
Eraser писал(а):Для того чтобы после обработки кода в событии прекратить дальнейшую обработку команд и шаблонов, надо в коде задать значение переменной $skip=true;
Вот это полезно. Не знал.

Re: Модуль "Telegram"

Добавлено: Вт ноя 22, 2016 7:44 am
havenofear
У меня небольшой вопрос. Сейчас как я понял все сообщения, которые говорит Алиса отправляются Администратору. Правильно? Возможно ли ввести в глобальную функцию Say аргумент (0-1), отправлять в телеграм или нет? Или как-то по-другому это реализовать, потому что не очень правильно, когда она шлёт всё подряд.

Re: Модуль "Telegram"

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

Re: Модуль "Telegram"

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

Re: Модуль "Telegram"

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

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

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