[Модуль] Telegram (telegram)
Модератор: immortal
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: Модуль "Telegram"
Подскажите, можно как то в явном виде указать размер кнопки, чтобы данные не сокращались? А также хотелось бы выводить кнопки в несколько строк.
СпойлерПоказать
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 869 раз
- Контактная информация:
Re: Модуль "Telegram"
например такdirectman66 писал(а):Подскажите, можно как то в явном виде указать размер кнопки, чтобы данные не сокращались? А также хотелось бы выводить кнопки в несколько строк.
СпойлерПоказать
Код: Выделить всё
$objects=getObjectsByClass("SControllers");
//print_r($objects);
foreach($objects as $obj) {
$state = $off;
if (gg($obj['TITLE'].".status") == 1)
$state = $on;
$option[] = $telegram_module->buildInlineKeyboardButton($text=$state.getObject($obj['TITLE'])->description,"","CallbackSwitch_".$obj['TITLE'],"");
}
$count_row = 3;
$option = array_chunk($option, $count_row);
$keyb = $telegram_module->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Управление светом (<b>".gg("Sensor_power01.value")."Wt</b>):", 'reply_markup' => $keyb, 'parse_mode' => 'HTML');
Код: Выделить всё
$option = array (array($this->buildInlineKeyboardButton($text="Люстра зала","","salonLuzAlta",""),
$this->buildInlineKeyboardButton($text="Бра зала","","salonLamp","")),
array($this->buildInlineKeyboardButton($text="Люстра столовой","","mesonLuz",""),
$this->buildInlineKeyboardButton($text="Подсветка кухни","","cocinaLampXiaomi","") ) );
$keyb = $this->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Управление светом:", 'reply_markup' => $keyb);
- За это сообщение автора Eraser поблагодарил:
- directman66 (Чт янв 18, 2018 8:41 am)
- Рейтинг: 1.16%
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
-
- Сообщения: 128
- Зарегистрирован: Пт июл 15, 2016 3:12 am
- Благодарил (а): 6 раз
- Поблагодарили: 2 раза
Re: Модуль "Telegram"
вот что я подумал а чтоб 2х разных ботов подружить и заставить слать друг другу сообщения можно ведь написать програмку которая будет подключатся к двум разным ботам и пересылать сообщения от одного другому, своего рода шлюз. это актуально для пересылки сообщений в алису от других ботов.
может кто то такое реализовать
может кто то такое реализовать
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 869 раз
- Контактная информация:
Re: Модуль "Telegram"
конечно можно, но не думаю что кто-то возьмется реализовать, по крайней мере бесплатно, просто это не так легко, по сути нужно реализовать клиента телеграмм, только с одной единственной функцией пересылкиvitar78 писал(а):вот что я подумал а чтоб 2х разных ботов подружить и заставить слать друг другу сообщения можно ведь написать програмку которая будет подключатся к двум разным ботам и пересылать сообщения от одного другому, своего рода шлюз. это актуально для пересылки сообщений в алису от других ботов.
может кто то такое реализовать
а для чего вообще может понадобится такое?
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
-
- Сообщения: 128
- Зарегистрирован: Пт июл 15, 2016 3:12 am
- Благодарил (а): 6 раз
- Поблагодарили: 2 раза
Re: Модуль "Telegram"
для пересылки сообщений от одного бота к другому
например
https://uip.me/2016/04/50-popular-telegram-bots/
https://protelegram.ru/2016/12/13/top_1 ... gram_2016/
позволит как я понимаю взаимодействовать алисе с другими ботами
а дальше всё от нашей фантазии
например
https://uip.me/2016/04/50-popular-telegram-bots/
https://protelegram.ru/2016/12/13/top_1 ... gram_2016/
позволит как я понимаю взаимодействовать алисе с другими ботами
а дальше всё от нашей фантазии
-
- Сообщения: 2
- Зарегистрирован: Сб янв 20, 2018 6:29 am
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: Модуль "Telegram"
Подскажите как можно глобально разделять ответы пользователям в телеграме?
Так понимаю указанный метод
$this->sendMessageToUser($chat_id,"message");
работает только внутри модуля.
Возможно разделить ответы, прописанные шаблонах поведения?
Так понимаю указанный метод
$this->sendMessageToUser($chat_id,"message");
работает только внутри модуля.
Возможно разделить ответы, прописанные шаблонах поведения?
-
- Сообщения: 9
- Зарегистрирован: Вс янв 14, 2018 7:43 am
- Благодарил (а): 5 раз
- Поблагодарили: 3 раза
Re: Модуль "Telegram"
Не знаю на сколько правильный, но вроде рабочий вариант:Sakoru писал(а):Подскажите как можно глобально разделять ответы пользователям в телеграме?
Так понимаю указанный метод
$this->sendMessageToUser($chat_id,"message");
работает только внутри модуля.
Возможно разделить ответы, прописанные шаблонах поведения?
в Объекте ThisComputer добавляем свойство lastTgId (я так понял модуль телеграмма глобально не доступен, и id надо положить в общедоступное место)
далее в приложении Telegram добавить событие с кодом
Код: Выделить всё
setGlobal("ThisComputer.lastTgId", $chat_id);
далее в шаблонах поведения используем конструкцию
Код: Выделить всё
include_once(DIR_MODULES . 'telegram/telegram.class.php'); //подключаем класс
$telegram_module = new telegram(); //инициализируем телеграм и записываем в переменную
$tgId = getGlobal("ThisComputer.lastTgId"); // записываем в переменную значение $chat_id
if ( $tgId ) { // проверяем, если сообщение было с тг, то отвечаем этому же пользователю в тг
$telegram_module->sendMessageToUser($tgId ,"текст");
setGlobal("ThisComputer.lastTgId", ""); //после отправки сообщения в тг, чистим переменную с $chat_id
} else { // иначе, если сообщение не с тг, то отвечаем в общий чат
say("текст",2); //уровень важности сигнала, тут уж как хотите)
}
PS это своего рода костыль, было бы клевое, если автор это как то в глобальном плане реализует
Последний раз редактировалось alt.Maksimus Сб янв 20, 2018 10:33 am, всего редактировалось 1 раз.
- За это сообщение автора alt.Maksimus поблагодарили (всего 2):
- Sakoru (Сб янв 20, 2018 10:19 am) • Logrus (Сб янв 20, 2018 10:46 am)
- Рейтинг: 2.33%
-
- Сообщения: 2
- Зарегистрирован: Сб янв 20, 2018 6:29 am
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: Модуль "Telegram"
alt.Maksimus писал(а):Не знаю на сколько правильный, но вроде рабочий вариант:Sakoru писал(а):Подскажите как можно глобально разделять ответы пользователям в телеграме?
Так понимаю указанный метод
$this->sendMessageToUser($chat_id,"message");
работает только внутри модуля.
Возможно разделить ответы, прописанные шаблонах поведения?
в Объекте ThisComputer добавляем свойство lastTgId (я так понял модуль телеграмма глобально не доступен, и id надо положить в общедоступное место)
далее в приложении Telegram добавить событие с кодомкак я понимаю эти события срабатывают при каждом получении сообщения ботом. и раз тут доступна переменная $chat_id то отсюда ее и запишем в свойство ThisComputer.lastTgIdКод: Выделить всё
setGlobal("ThisComputer.lastTgId", $chat_id);
далее в шаблонах поведения используем конструкциюв итоге получаем изолированный чат с домом в тг от других пользователей, ведь изначально, если в тг пишет один пользователь, другому пользователю в тг это сообщение не видно, но видно ответ системы, что собственно не к чему)Код: Выделить всё
include_once(DIR_MODULES . 'telegram/telegram.class.php'); //подключаем класс $telegram_module = new telegram(); //инициализируем телеграм и записываем в переменную $tgId = getGlobal("ThisComputer.lastTgId"); // записываем в переменную значение $chat_id if ( $tgId ) { // проверяем, если сообщение было с тг, то отвечаем этому же пользователю в тг $telegram_module->sendMessageToUser($tgId ,"текст"); setGlobal("ThisComputer.lastTgId", ""); //после отправки сообщения в тг, чистим переменную с $chat_id } else { // иначе, если сообщение не с тг, то отвечаем в общий чат say("текст",2); //уровень важности сигнала, тут уж как хотите) }
Спасибо идею и особенно за подробный ответ. Ответы разделяются по юзерам, что определенно радует)
- За это сообщение автора Sakoru поблагодарил:
- vitosmaxim80sad145 (Пт окт 23, 2020 9:21 am)
- Рейтинг: 1.16%
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Модуль "Telegram"
Во первых, спасибо, как Вам, так и Автору модуля.immortal писал(а):у и код для погоды OpenWeatherMap используемый в командах
маленькие уточнения, с апи опенвейзер $unit = 'metric';
т.е. скорость в м/с, направление откуда дует, есть еще использование в аэронавигации там используют наоборот
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Re: Модуль "Telegram"
Установил сервер на Windows 7 64-bit, при попытке установить модуль telegram пишет:
Warning: include_once(./modules/telegram/telegram.class.php): failed to open stream: No such file or directory in C:\_majordomo\htdocs\modules\control_modules\control_modules.class.php on line 87
Warning: include_once(): Failed opening './modules/telegram/telegram.class.php' for inclusion (include_path='.;C:\_majordomo\server\php\PEAR') in C:\_majordomo\htdocs\modules\control_modules\control_modules.class.php on line 87
Что не так с виндовс? Версия сервера 110b.
Warning: include_once(./modules/telegram/telegram.class.php): failed to open stream: No such file or directory in C:\_majordomo\htdocs\modules\control_modules\control_modules.class.php on line 87
Warning: include_once(): Failed opening './modules/telegram/telegram.class.php' for inclusion (include_path='.;C:\_majordomo\server\php\PEAR') in C:\_majordomo\htdocs\modules\control_modules\control_modules.class.php on line 87
Что не так с виндовс? Версия сервера 110b.