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

Re: Модуль "Telegram"

Добавлено: Чт ноя 17, 2016 1:38 am
m-malva
О спасибо. Точно АЛАРМ канал )

Re: Модуль "Telegram"

Добавлено: Чт ноя 17, 2016 8:03 pm
Руслан
мне кажется в обновлении допущена ошибка- везде есть $ перед "res", а в строке 608 нет

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

@@ -602,6 +605,7 @@ function sendMessage($user_id, $message, $keyboard = '', $parse_mode = 'HTML') {
         );
         $res = $telegramBot->sendMessage($content);
         $this->debug($res);
        return res;
     }
     function sendMessageTo($where, $message, array $key = NULL) {
         $this->getConfig();
 @@ -647,6 +651,7 @@ function sendImage($user_id, $image_path, $message = '', $keyboard = '') {
         );
         $res = $telegramBot->sendPhoto($content);
         $this->debug($res);
        return $res; 

Re: Модуль "Telegram"

Добавлено: Пт ноя 18, 2016 10:19 am
Eraser
Добавлена опция для пользователя - обработка полученного сообщения как шаблона поведения (если не найдена команда).
Обновлен перевод

Re: Модуль "Telegram"

Добавлено: Пт ноя 18, 2016 12:21 pm
Amarok
Уважаемый Eraser, а попили модуль отслеживания посылок?

Re: Модуль "Telegram"

Добавлено: Пт ноя 18, 2016 12:49 pm
Eraser
Amarok писал(а):Уважаемый Eraser, а попили модуль отслеживания посылок?
неожиданное предложение :)

Re: Модуль "Telegram"

Добавлено: Пт ноя 18, 2016 2:29 pm
Amarok
Eraser писал(а):
Amarok писал(а):Уважаемый Eraser, а попили модуль отслеживания посылок?
неожиданное предложение :)
Можно модуль на основе ГдеПосылка или Track24? :roll:

Re: Модуль "Telegram"

Добавлено: Пт ноя 18, 2016 6:44 pm
skysilver
Ребята, научите вставлять emoji (картинки) в кнопки клавиатуры. Нашел табличку с кучей картинок http://apps.timwhitlock.info/emoji/tables/unicode
Хочу раскрасить своего бота. )) Не могу только понять, как те utf-коды указывать при формировании клавиатуры в приложении.

Re: Модуль "Telegram"

Добавлено: Сб ноя 19, 2016 11:11 am
Amarok
Написал сценарий для упрощения работы с модулем Telegram. А то утомило постоянно инклюды писать
sendTelegramПоказать

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

// Сценарий для упрощения работы с модулем Telegram
// Примеры использования:
//  runScript("sendTelegram",array("user"=>'ИмяПользователя',"cmd"=>'НазваниеКоманды'));
//  runScript("sendTelegram",array("user"=>'ИмяПользователя',"msg"=>'ТекстСообщения'));
// ИмяПользователя - название объекта пользователя с заполненым свойством TelegramID
// НазваниеКоманды - название существующей команды из модуля Telegram
// ТекстСообщения - сообщение для отправки

$user = $params['user']; //получаем имя пользователя переданное через параметр запуска
if ($user == '') {return;} //если имя пользователя не заданно - прекращаем выполнение сценария

include_once(DIR_MODULES.'telegram/telegram.class.php'); //подключаем модуль Telegram
$telegram_module = new telegram(); //активируем модуль Telegram

$tID = gg($user.'.TelegramID'); //считываем id пользователя в переменную из свойства TelegramID
$tMSG = $params['msg']; //получаем текст отправляемого сообщения переданное через параметр запуска
$tCMD = $params['cmd']; //получаем имя команды переданной через параметр запуска

//если сообщение не пустое
if ($tMSG != "") {
 $user = mb_strtolower($user); //переводим имя пользователя в нижний регистр (на всякий случай)
 if ($user == 'all') {$telegram_module->sendMessageToAll($tMSG);} //если имя пользователя all, то шлём сообщение всем
 if ($user == 'admin') {$telegram_module->sendMessageToAdmin($tMSG);} //если имя пользователя ADMIN, то шлём сообщение только ему
 if ($user != 'all' or $user != 'admin') {$telegram_module->sendMessageToUser($tID, $tMSG);} //если имя пользователя не all или не admin, то шлём сообщение тому, который указан в параметрах запуска
 return; //прекращаем выполнение сценария
}

//если имя команды не пустое
if ($tCMD != "") {
 $telegram_module->execCommand($tID, $tCMD); //выполняем указанную команду от имени указанного пользователя
 return; //прекращаем выполнение сценария
}

//Принимаю любую благодарность на Яндекс.Деньги 41001355945165  

Re: Модуль "Telegram"

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

Re: Модуль "Telegram"

Добавлено: Пн ноя 21, 2016 6:07 am
havenofear
Чтобы заработало нужно в классе User создать параметр TelegramID и вбить в него значения. Или он должен был создаться автоматом?