Ярлык с токеном на несколько сценариев (Android)

Материал из База знаний
Перейти к навигации Перейти к поиску



Неофициальная информация 
Методы и программы могут перестать функционировать в любой момент
 
...а также повредить оборудование и/или нарушить работу систем.
Любые действия и программы вы применяете на свой собственный страх и риск.


Проблема

Иногда возникает необходимость запуска нескольких сценариев "по одной кнопке", чтобы не множить их сходные копии и не создавать сложные схемы их взаимодействия.

С другой стороны, не хочется каждый раз кликать "Приложение Яндекс->Устройства->Сценарии->Запуск сценария 1->Запуск сценария 2->Запуск сценария 3..." - или запускать все эти сценарии подряд голосом.


Решение

  • На смартфон устанавливается приложение "HTTP Shortcuts" (Google Play, официальный сайт);
  • Настраивается получение токена;
  • Настраивается запуск сценариев;
  • На рабочий стол выносится ярлык для запуска всей цепочки.
Текущая реализация использует cookie из браузера, срок действия которых неизвестен.
По мере получения новой информации статья будет обновляться.


Получаем токен

На компьютере:

  • Открываем в браузере DevTools (CTRL+Shift+I или F12).
  • Переключаемся на вкладку "Network".
  • Открываем https://yandex.ru/quasar?storage=1 (конечно, с авторизацией под аккаунтом Яндекса, к которому привязан умный дом).
  • В "Network" видим запрос с названием "quasar?storage=1", кликаем правой кнопкой мыши, выбираем "Copy -> Copy as curl".
  • Скопированное содержимое передаем любым удобным способом на смартфон: например, через email, или "Избранное" в Телеграм (в этом случае обязательно поставьте символы ``` до и после скопированного текста, чтобы он отправился без искажений).

На смартфоне:

  • Полученный текст копируем в буфер обмена.
  • Открываем программу "HTTP Shortcuts".
  • Нажимаем 3 точки в правом верхнем углу, выбираем "Переменные".
  • Нажимаем (+) в правом нижнем углу, выбираем "Константа".
  • В поле "Name" пишем "token", и нажимаем галочку в правом верхнем углу.
  • Возвращаемся на главный экран нажатием стрелочки в левом верхнем углу.
  • Нажимаем (+) в правом нижнем углу, выбираем "Из команды cURL".
  • Вставляем содержимое из буфера и нажимаем галочку в правом верхнем углу.
  • В открывшемся меню в поле "Название ярлыка" пишем любое удобное нам название.
  • Далее открываем раздел "Response Handling".
  • Меняем значение поля "On Success" с "Show the response" на "Show nothing (run silently)".
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Переходим в раздел "Писать сценарии".
  • Добавляем следующий код в поле "Запустить при успешном выполнении":
a=JSON.parse(response.body)
token=a.storage.csrfToken2
setVariable('token',token)
showToast(token)
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу
  • Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.

Готово!


Пример сценария с использованием токена

На компьютере:

  • Открываем в браузере https://yandex.ru/quasar/iot
  • Переключаем вкладку сверху на "Сценарии"
  • Открываем в браузере DevTools (CTRL+Shift+I), раздел Network.
  • В блоке "Сценарии" находим тот, который хотим запустить, и зажимаем "Start" (треугольник справа от сценария).
  • Видим 2 запроса с названием "actions", кликаем правой кнопкой мыши на второй (!), выбираем "Copy -> Copy as curl".
  • Скопированное содержимое снова передаем на смартфон.

На смартфоне:

  • Копируем текст в буфер обмена.
  • Снова открываем "HTTP Shortcuts".
  • Нажимаем (+) в правом нижнем углу, выбираем "Из команды cURL".
  • Вставляем содержимое из буфера, и нажимаем галочку в правом верхнем углу.
  • В открывшемся меню в поле "Название ярлыка" пишем удобное нам название.
  • Переходим в раздел "Заголовки запроса".
  • Открываем заголовок "x-csrf-token".
  • Удаляем значение и нажимаем на фигурные скобки справа.
  • В открывшемся меню выбираем созданную ранее переменную "token".
  • Нажимаем "Ok".
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Далее открываем раздел "Response Handling", и меняем значение поля "On Success" с "Show the response" на "Show nothing (run silently)".
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Переходим в раздел "Писать сценарии", и добавляем в верхнее поле "Запустить до выполнения" команду задержки на 2 секунды:
wait(2000)
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.


Создаём ярлык-мультискрипт

На смартфоне:

  • Нажимаем (+) в правом нижнем углу, выбираем "Multi-Shortcut".
  • В открывшемся меню в поле "Название ярлыка" пишем удобное название.
  • Далее открываем раздел "Trigger Shortcuts", и добавляем созданные ранее скрипты.
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.
  • Нажимаем и удерживаем созданный триггер, пока не всплывет меню, а затем выбираем "Разместить на главном экране".
  • Запускаем ярлык с рабочего стола и наслаждаемся
Источник — https://wiki.yaboard.com/index.php?title=Ярлык_с_токеном_на_несколько_сценариев_(Android)&oldid=5280 // MOD ext links // End MOD