Logrus

<<< Назад

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

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

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

Обсуждение (2) (9)

Смотрите так же:
30.06.2019 Телеграмм. Меню - управление группами ПУ
21.10.2018 Настройки громкости
07.10.2018 Примеры кода
29.09.2018 checkState
25.09.2018 pChart
24.09.2018 Уход за базой данных
05.08.2018 Управление подсветкой на шлюзе Сяоми
21.06.2018 Каталог ссылок
10.06.2018 Меню
08.07.2018 mail()
04.05.2018 Режим "EnergyTariffMode"
02.05.2018 Класс SOpenClose метод logicAction (по-русски "Входная дверь")
22.04.2018 Программы
19.04.2018 Пользовательские функции
11.04.2018 Шаблон отображения в классе "ExchangeRates"
05.04.2018 Шаблон отображения в классе "Users"
02.12.2018 Режим "Никого нет дома"
25.02.2018 Бэкап и обслуживание системы

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

На форуме: Logrus