Перейти к содержанию

Ярлык с токеном на несколько сценариев (Android): различия между версиями

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
Строка 10: Строка 10:




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




Строка 69: Строка 71:




* Возвращаемся к браузеру на компьютере.
Возвращаемся к браузеру на компьютере:
* Открываем в браузере https://yandex.ru/quasar/iot
* Открываем в браузере https://yandex.ru/quasar/iot
* Переключаем вкладку сверху на "Сценарии"
* Переключаем вкладку сверху на "Сценарии"
Строка 103: Строка 105:




* Нажимаем + в правом нижнем углу, выбираем "Multi-Shortcut"
Снова переходим к смартфону:
{{#spoiler:show=Показать скриншот | hide=Скрыть скриншот | [[Файл:Get token and run script add request add multi shortcut.jpg|500px]] }}
* Нажимаем (+) в правом нижнем углу, выбираем "Multi-Shortcut".
* В открывшемся меню в поле "Название ярлыка" пишем как мы хотим его назвать.
* В открывшемся меню в поле "Название ярлыка" пишем удобное название.
* Далее открываем раздел "Trigger Shortcuts" и добавляем созданные ранее скрипты
* Далее открываем раздел "Trigger Shortcuts", и добавляем созданные ранее скрипты.
{{#spoiler:show=Показать скриншот | hide=Скрыть скриншот | [[Файл:Get token and run script add multi-shortcuts .jpg|500px]] }}
* Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
* Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу
* Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.
* Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу
* Нажимаем и удерживаем созданный триггер, пока не всплывет меню, а затем выбираем "Разместить на главном экране".
* Нажимаем и удерживаем на наш скрипт пока не всплывет меню, в меню выбираем "Разместить на главном экране"
{{#spoiler:show=Показать скриншот | hide=Скрыть скриншот | [[Файл:Get token and run script add shortcus to desktop.jpg|500px]] }}
* Запускаем ярлык с рабочего стола и наслаждаемся
* Запускаем ярлык с рабочего стола и наслаждаемся


<gallery>
Файл:Get token and run script add request add multi shortcut.jpg | Выбираем "Multi-Shortcut"
Файл:Get token and run script add multi-shortcuts .jpg | Добавляем скрипты в разделе "Trigger Shortcuts"
Файл:Get token and run script add shortcus to desktop.jpg | Долгим тапом на созданном триггере вызываем меню и выбираем пункт "Разместить на главном экране".
</gallery>


[[Category:Умный дом]]
[[Category:Умный дом]]
[[Category:Неофициальная информация]]
[[Category:Неофициальная информация]]

Версия от 18:09, 26 февраля 2021

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

Проблема

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

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

Решение

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

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

  • Открываем в браузере DevTools (CTRL+Shift+I или F12).
  • Переключаемся на вкладку Network.
  • Открываем https://yandex.ru/quasar?storage=1 (конечно, с авторизацией под аккаунтом Яндекса, которому привязан умный дом).
  • В DevToole видим запрос с названием "quasar?storage=1", кликаем правой кнопкой мыши, выбираем "Copy -> Copy as curl".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Скопированное содержимое передаем любым удобным способом на смартфон: например, через email, или "Избранное" в Телеграм (в этом случае обязательно поставьте символы ``` до и после скопированного текста, чтобы оно отправилось без искажений).
  • Полученный текст копируем в буфер обмена смартфона.
  • Открываем (на смартфоне же) программу "HTTP Shortcuts".
  • Нажимаем 3 точки в правом верхнем углу, выбираем "Переменные".
  • Нажимаем (+) в правом нижнем углу, выбираем "Константа".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • В поле "Name" пишем "token", и нажимаем галочку в правом верхнем углу.
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Возвращаемся на главный экран нажатием стрелочки в левом верхнем углу.
  • Нажимаем (+) в правом нижнем углу, выбираем "Из команды cURL".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Вставляем содержимое из буфера и нажимаем галочку в правом верхнем углу.
  • В открывшемся меню в поле "Название ярлыка" пишем любое удобное нам название.
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Далее открываем раздел "Response Handling".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Меняем значение поля "On Success" с "Show the response" на "Show nothing (run silently)".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Переходим в раздел "Писать сценарии".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Добавляем следующий код в поле "Запустить при успешном выполнении":
a=JSON.parse(response.body)
token=a.storage.csrfToken2
setVariable('token',token)
showToast(token)
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу
  • Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.

Готово!

Пример запуска сценария с полученным ранее токеном

Возвращаемся к браузеру на компьютере:

  • Открываем в браузере https://yandex.ru/quasar/iot
  • Переключаем вкладку сверху на "Сценарии"
  • Открываем в браузере DevTools (CTRL+Shift+I), раздел Network.
  • В блоке "Сценарии" находим тот, который хотим запустить, и зажимаем "Start" (треугольник справа от сценария).
  • Видим 2 запроса с названием "actions", кликаем правой кнопкой мыши на второй (!), выбираем "Copy -> Copy as curl".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Скопированное содержимое снова передаем на смартфон и там копируем в буфер обмена.
  • Снова открываем "HTTP Shortcuts".
  • Нажимаем (+) в правом нижнем углу, выбираем "Из команды cURL".
  • Вставляем содержимое из буфера, и нажимаем галочку в правом верхнем углу.
  • В открывшемся меню в поле "Название ярлыка" пишем удобное нам название.
  • Переходим в раздел "Заголовки запроса".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Открываем заголовок "x-csrf-token".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Удаляем значение и нажимаем на фигурные скобки справа.
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • В открывшемся меню выбираем созданную ранее переменную "token".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Нажимаем "Ok".
<button type="button" class="spoilers-button" aria-expanded="false">Показать скриншот</button>
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Далее открываем раздел "Response Handling", и меняем значение поля "On Success" с "Show the response" на "Show nothing (run silently)".
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Переходим в раздел "Писать сценарии", и добавляем в верхнее поле "Запустить до выполнения" команду задержки на 2 секунды:
wait(2000)
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.

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

Снова переходим к смартфону:

  • Нажимаем (+) в правом нижнем углу, выбираем "Multi-Shortcut".
  • В открывшемся меню в поле "Название ярлыка" пишем удобное название.
  • Далее открываем раздел "Trigger Shortcuts", и добавляем созданные ранее скрипты.
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.
  • Нажимаем и удерживаем созданный триггер, пока не всплывет меню, а затем выбираем "Разместить на главном экране".
  • Запускаем ярлык с рабочего стола и наслаждаемся