Logrus

<<< Back

Телеграмм. Меню - запуск скриптов (сценариев)

Астрологи объявили неделю телеграмма, количество постов удвоилось ;)

1
На вкладке "Команды" добавляете новую запись Сценарии с кодом:

//формируем массив названий кнопок, далее нужное по аналогии добавить здесь
$scripts = array('Перезапуск циклов',
                 'Перезапуск системы',
                 'Выключение системы');

$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);

2
На вкладке события добавляем новую запись с названием CallbackScripts (это не критично, каллбеки вызываются все), ставим галку - включить и определяем тип События - Callback и кодом:

//у всех каллбеков, т.к. они вызываются все определяем условие по которому сработает нужный
if (strpos($callback, 'CallbackScripts_') !== false) {

 //определяем параметр переданный с нажатия кнопки
 $scripts = substr($callback, 16);
 switch ($scripts) {
  case '0':
   //соответствует первой кнопке
   $script = 'restart';
   break;
  case '1':
   $script = 'rebootSystem';
   break;
  case '2':
   $script = 'shutDown';
   break;
  case '3':

   break;
  case '4':

   break;
  default:

 }
 //формируем всплывающее сообщение с названием скрипта
 $this->sendAnswerCallbackQuery($callback_id, $script, false);
 //выполняем заданный скрипт
 runScriptSafe($script);
}

3
Если у Вас есть одноименные скрипты, поздравляю - при нажатии на клавиатуре в телеграмме они отработают!

п.с. никаких подключений модуля выполнять не нужно, все обращения к функциям выполняем через $this

Discuss (2) (9)

See also:
2019-06-30 Телеграмм. Меню - управление группами ПУ
2018-10-21 Настройки громкости
2018-10-07 Примеры кода
2018-09-29 checkState
2018-09-25 pChart
2018-09-24 Уход за базой данных
2018-08-05 Управление подсветкой на шлюзе Сяоми
2018-06-21 Каталог ссылок
2018-06-10 Меню
2018-07-08 mail()
2018-05-04 Режим "EnergyTariffMode"
2018-05-02 Класс SOpenClose метод logicAction (по-русски "Входная дверь")
2018-04-22 Программы
2018-04-19 Пользовательские функции
2018-04-11 Шаблон отображения в классе "ExchangeRates"
2018-04-05 Шаблон отображения в классе "Users"
2018-12-02 Режим "Никого нет дома"
2018-02-25 Бэкап и обслуживание системы

Нижний Тагил, Россия

На форуме: Logrus