[Модуль] Telegram (telegram)
Модератор: immortal
- vitosmaxim80sad145
- Сообщения: 148
- Зарегистрирован: Сб июл 07, 2018 12:48 am
- Откуда: Днепр
- Благодарил (а): 100 раз
- Поблагодарили: 1 раз
Re: [Модуль] Telegram (telegram)
Здраствуйте подскажите как сделать чтобы приходя в магазин , приходил список покупок и в нём отмечать уже купленные товары, такая возможность в самом модуле есть ,но как сделать команду в телегу я не знаю
-
- Сообщения: 9
- Зарегистрирован: Вт фев 18, 2020 10:08 pm
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: [Модуль] Telegram (telegram)
Добрый день уважаемые знатоки. Есть необходимость получать и анализировать сообщения с телеграм канала.
Добавляю ID канала в список пользователей, иконка и описание подгружается, но сообщения не получаю. Подозреваю надо подписаться на канал. Прошу помощи как решить данный вопрос.
Добавляю ID канала в список пользователей, иконка и описание подгружается, но сообщения не получаю. Подозреваю надо подписаться на канал. Прошу помощи как решить данный вопрос.
-
- Сообщения: 131
- Зарегистрирован: Сб янв 13, 2018 6:28 pm
- Благодарил (а): 34 раза
- Поблагодарили: 4 раза
Re: [Модуль] Telegram (telegram)
Здравствуйте. извините, давно не заходил, не видел сообщение.RomanAndr писал(а): ↑Чт фев 10, 2022 12:39 amСпасибо! Как я понял сообщения удаляются через некоторый интервал после отправки, можете отправить код, в моём случае я бы сделал так, что при отправке нового сообщения боту, его предыдущее и моё отправленное удаляется, типо будет только одно активное сообщение для чистоты чата.pasha413 писал(а): ↑Ср дек 22, 2021 3:30 pmСпасибо, хорошая менюшка, но есть вопрос:RomanAndr писал(а): ↑Пн мар 01, 2021 4:52 pmВсем привет, хочу поделится моим вариантом меню.
Меню включает в себя:Как выглядит меню:
- Получение погоды (модуль openwethermap)
- Получение графика температуры (любое свойство с историей (модуль Charts))
- Курс валют (получение / обновление курсов валют (модуль ExchangeRates))
- Управление online radio (включение / выключение радиостанций, управление громкостью проигрывания (модуль Online Radio))
- Возможность просмотра и обновление информации о луне. (MoonPhase)
- Получение случаенных цитат (Quotes)
- Получение новостей с RSS каналов(RSS Channels)
- Возможность просматривать статус хостов. (модуль Устройства Online)
- Управление освещением (включение различных методов объектов (turnOn, turnOff, switch))
- Возможность запустить любой сценарий (список берётся из ваших сценариев).
- Просмотр состояний светильников (объектов со свойством status)
- Получение свойств любого объекта
- Получение изображений с ip камер
- Возможность испытать удачу (мини игра, подбрасывает кубик)
- Интерактивная клавиатура
Как сделать также:Фотографии менюПоказатьМенюПоказатьПогодаПоказатьСписок погодыПоказатьНа сегодняПоказатьНа завтраПоказатьНа послезавтраПоказатьУправлениеПоказатьДругоеПоказатьСписок функцийПоказатьАктивность в туалетеПоказатьГрафик температурыПоказатьКурс валютПоказатьРадиоПоказатьУправление радиостанциямиПоказатьУправление звукомПоказатьСтатус устройствПоказатьКамерыПоказатьФаза луныПоказатьСценарииПоказатьВыбор сценарияПоказатьИгрыПоказать1Показать
2Показать
3Показать
4Показать
ЦитатыПоказать
ПользовательскиеПоказатьНовостиПоказать
Чтобы запустить меню, напишите "Меню".ТуториалПоказатьФункции ботаПоказать
- Скачиваем архив
ФайлПоказатьTeleramMenu.zip- Импортируем в события файлы .txt
Панель импорта событийПоказать- Включаем галочки у всех событий (если у чего-нибудь выключены).
- Добавляем команду "Меню" с пустым содержанием.
Команда "Меню"ПоказатьГотово!RSS каналПоказать
- Создаём группу(или канал) в telegram'е.
Создание группы в teleram'еПоказать- Добавляем туда нашего бота.
Добавление ботаПоказать- Пишем команду /start.
- В настройках бота добавляем группе права администратора.
Добавление прав администратораПоказать
- Импортируем в сценарии файл.json
Панель импорта сценариевПоказать- В сценарии изменяем id на тот, что у вашего канала.
Изменение idПоказатьP.SПоказатьP.S Все настройки меню легко можно изменять под себя, т.к. каждая функция лежит в отдельном ивенте.
P.S.S Это новая версия с переделанной структурой для более лёгкой настройки кода.
Что планируется сделать:ПланыПоказать
- Возможность получения и просмотра информации о луне. (Готово)
- Возможность запустить любой сценарий. (Готово)
- Возможность просматривать устройства online. (Готово)
- Получение случаенных цицат. (Готово)
- Получение новостей из RSS каналов. (Готово)
- Добавить другие игры с использованием других смайликов с рандомом (игровой автомат, баскетбол, дротик). (Готово)
- Сделать управление простыми устройствами.
- Возможность простого добавления собственных команд с аргументами.
- Получение любого графика из модуля Charts.
- И что-нибудь ещё.. ( предлагайте идеи )
не получилось автоматически удалять сообщения, например сообщение ввода команды "назад"
вот например так https://disk.yandex.ru/i/DfZggjGA4pD93g - видосик как работает у меня автоудаление. могу скинуть код.
допустим код команды с удалением предыдущео сообщения и самой команды (как в начале видео)
Код: Выделить всё
$sm1 = json_decode('"'.'\ud83c\udf11'.'"');
$climate="Баня:".hex2bin('f09f8ca1').gg('TempHum_Banya.value')."°C, ".hex2bin('F09F92A6').gg('TempHum_Banya.valueHumidity')."%,".hex2bin('F09F948B').gg('BattTemp_Banya.value')."%;";
$climate.="\r\nУлица:".hex2bin('f09f8ca1').gg('TempHum_Ulica.value')."°C, ".hex2bin('F09F92A6').gg('TempHum_Ulica.valueHumidity')."%,".hex2bin('F09F948B').gg('BattTemp_Ulica.value')."%;";
$climate.="\r\nТеплица:".hex2bin('f09f8ca1').gg('TempHum_Teplica.value')."°C, ".hex2bin('F09F92A6').gg('TempHum_Teplica.valueHumidity')."%,".hex2bin('F09F948B').gg('BattTemp_Teplica.value')."%;";
$climate.="\r\nАтмосферное давление:".hex2bin('F09F92AA').gg('Press_Ulica.value')."мм.рт.ст;";
//return $climate;
$this->sendAction($chat_id,"typing");
//$this->sendMessageToUser($chat_id,$climate); // заменяем на код с автоудалением предыдущих сообщений
$res = $this->sendMessageToUser($chat_id, $climate);
if ($message_id = $res['result']['message_id']) { //ид ответа на команду
$message_id_old = registeredEventDetails('tlg/command/climate'); //ид предыдущего ответа на команду (по аналогии меняем climate и копируем на остальные команды)
$this->deleteMessage($chat_id, $message_id_old); //удаляем предыдущий ответ
registerEvent('tlg/command/climate', $message_id, 1); //регистрируем ид текущего ответа (см. выше)
$this->deleteMessage($chat_id, $data['message']['message_id']); //удаляем команду Климат
}
Код: Выделить всё
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
//формируем массив названий кнопок, далее нужное по аналогии добавить здесь
$scripts = array('restart cycles',
'reboot system',
'reboot router',
'shutDown');
$total = count($scripts);
for($i = 0; $i < $total; $i++) {
//формируем массив кнопок с настройками, $i = 0 соответствует первой кнопке
$option[] = $this->buildInlineKeyboardButton($scripts[$i], '', 'CallbackScripts_' . $i, '');
}
//количество кнопок в строке
$count_row = 3;
$option = array_chunk($option, $count_row);
$keyb = $this->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => 'Выберите сценарий:', 'reply_markup' => $keyb);
//$this->sendContent($content);
$res = $telegram_module->sendContent($content);
$message_id = $res["result"]["message_id"];
echo '<pre>';
print_r($res);
echo '</pre>';
sleep(5); // через 5 секунд удаляем сообщение и команду
$res = $telegram_module->deleteMessage($chat_id, $message_id);
$this->deleteMessage($chat_id, $data['message']['message_id']);
echo '<pre>';
print_r($res);
echo '</pre>';
Код: Выделить всё
//у всех каллбеков, т.к. они вызываются все определяем условие по которому сработает нужный
if (strpos($callback, 'CallbackScripts_') !== false) {
$skip = true; //не перебираем далее остальные каллбеки
//определяем параметр переданный с нажатия кнопки
$scripts = substr($callback, 16);
switch ($scripts) {
case '0':
//соответствует первой кнопке
$script = 'restartCycles';
break;
case '1':
$script = 'rebootSystem';
break;
case '2':
$script = 'rebootRoter';
break;
case '3':
$script = 'shutDown';
break;
break;
case '4':
break;
default:
}
//формируем всплывающее сообщение с названием скрипта
$this->sendAnswerCallbackQuery($callback_id, $script, false);
//выполняем заданный скрипт
runScriptSafe($script);
}
все вышеизложенное взято в том числе и здесь:
https://connect.smartliving.ru/profile/ ... gramm.html
Моё: Orange Pi Zero H2 + DietPi / Paspberry Pi3b + MJD 3.41
-
- Сообщения: 2099
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 314 раз
- Поблагодарили: 463 раза
Re: [Модуль] Telegram (telegram)
т.к. чат с ботом для каждого юзера уникальный
то так будет правильней, изначально не учел (в тлг курилке не раз подробно расписывалось)
ну и не забывать про ограничение в тлг на удаление не старше 2 суток
в блоге был пример для скрипта его можно через таймер
(можно добавить к выше или отдельно)
(сам скрипт tlg_deleteMessage)
то так будет правильней, изначально не учел (в тлг курилке не раз подробно расписывалось)
Код: Выделить всё
if ($message_id = $res['result']['message_id']) {
$message_id_old = registeredEventDetails('tlg/events/' . $chat_id);
$this->deleteMessage($chat_id, $message_id_old);
registerEvent('tlg/events/' . $chat_id, $message_id);
$this->deleteMessage($chat_id, $data['message']['message_id']);
}
в блоге был пример для скрипта его можно через таймер
(можно добавить к выше или отдельно)
Код: Выделить всё
setTimeout('preduprezhdeniya', "rs('tlg_deleteMessage',array('chat_id'=>$chat_id,'message_id'=>$message_id));",86400);
Код: Выделить всё
if (isset($params['chat_id']) && isset($params['message_id'])) {
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->deleteMessage($params['chat_id'], $params['message_id']);
}
- Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 32
- Зарегистрирован: Ср окт 09, 2019 9:24 am
- Благодарил (а): 4 раза
- Поблагодарили: 6 раз
Re: [Модуль] Telegram (telegram)
Коллеги, а как можно отредактировать сообщение с картинкой (и инлайн клавиатурой)? Необходимо обновлять картинку по нажатию на кнопку.
-
- Сообщения: 2099
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 314 раз
- Поблагодарили: 463 раза
Re: [Модуль] Telegram (telegram)
картинку никак, через удаление и репостинг, хотя попробуйAleksandr_A писал(а): ↑Вс май 29, 2022 7:53 pmКоллеги, а как можно отредактировать сообщение с картинкой (и инлайн клавиатурой)? Необходимо обновлять картинку по нажатию на кнопку.
текст можно и с клавиатурой editMessage
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 32
- Зарегистрирован: Ср окт 09, 2019 9:24 am
- Благодарил (а): 4 раза
- Поблагодарили: 6 раз
Re: [Модуль] Telegram (telegram)
Судя по документации методом editMessageMedia можно изменить сообщение с изображением, но не совсем пойму как его использовать в модуле.Logrus писал(а): ↑Вс май 29, 2022 7:56 pmкартинку никак, через удаление и репостинг, хотя попробуйAleksandr_A писал(а): ↑Вс май 29, 2022 7:53 pmКоллеги, а как можно отредактировать сообщение с картинкой (и инлайн клавиатурой)? Необходимо обновлять картинку по нажатию на кнопку.
текст можно и с клавиатурой editMessage
-
- Сообщения: 2099
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 314 раз
- Поблагодарили: 463 раза
Re: [Модуль] Telegram (telegram)
наверное добавить его поддержку как едитмессаджтекстAleksandr_A писал(а): ↑Вс май 29, 2022 8:08 pmСудя по документации методом editMessageMedia можно изменить сообщение с изображением, но не совсем пойму как его использовать в модуле.Logrus писал(а): ↑Вс май 29, 2022 7:56 pmкартинку никак, через удаление и репостинг, хотя попробуйAleksandr_A писал(а): ↑Вс май 29, 2022 7:53 pmКоллеги, а как можно отредактировать сообщение с картинкой (и инлайн клавиатурой)? Необходимо обновлять картинку по нажатию на кнопку.
текст можно и с клавиатурой editMessage
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 32
- Зарегистрирован: Ср окт 09, 2019 9:24 am
- Благодарил (а): 4 раза
- Поблагодарили: 6 раз
Re: [Модуль] Telegram (telegram)
Я вот думаю, а не получится это сделать через sendContent? Вроде там можно указывать метод?Logrus писал(а): ↑Вс май 29, 2022 8:10 pmнаверное добавить его поддержку как едитмессаджтекстAleksandr_A писал(а): ↑Вс май 29, 2022 8:08 pmСудя по документации методом editMessageMedia можно изменить сообщение с изображением, но не совсем пойму как его использовать в модуле.Logrus писал(а): ↑Вс май 29, 2022 7:56 pmкартинку никак, через удаление и репостинг, хотя попробуйAleksandr_A писал(а): ↑Вс май 29, 2022 7:53 pmКоллеги, а как можно отредактировать сообщение с картинкой (и инлайн клавиатурой)? Необходимо обновлять картинку по нажатию на кнопку.
текст можно и с клавиатурой editMessage
-
- Сообщения: 2099
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 314 раз
- Поблагодарили: 463 раза
Re: [Модуль] Telegram (telegram)
попробуй )))
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо