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

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

Материал из Wiki yaboard
Нет описания правки
м Ark rusinov-9121383 переименовал страницу "Ярлык на несколько сценариев (Android)" в "[[Ярлык с токеном на несколько сценарие…
 
(не показаны 2 промежуточные версии этого же участника)
Строка 12: Строка 12:
Иногда возникает необходимость запуска нескольких сценариев "по одной кнопке", чтобы не множить их сходные копии и не создавать сложные схемы их взаимодействия.  
Иногда возникает необходимость запуска нескольких сценариев "по одной кнопке", чтобы не множить их сходные копии и не создавать сложные схемы их взаимодействия.  


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




Строка 18: Строка 18:




* На смартфон устанавливается приложение "HTTP Shortcuts" ([https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts Google Play], [https://http-shortcuts.rmy.ch/ оф. сайт]);
* На смартфон устанавливается приложение "HTTP Shortcuts" ([https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts Google Play], [https://http-shortcuts.rmy.ch/ официальный сайт]);
* Настраивается получение токена;
* Настраивается получение токена;
* Настраивается запуск сценариев;
* Настраивается запуск сценариев;
* На рабочий стол выносится ярлык для запуска всей цепочки.
* На рабочий стол выносится ярлык для запуска всей цепочки.


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


Строка 30: Строка 30:




На компьютере:
* Открываем в браузере DevTools (CTRL+Shift+I или F12).
* Открываем в браузере DevTools (CTRL+Shift+I или F12).
* Переключаемся на вкладку Network.
* Переключаемся на вкладку "Network".
* Открываем https://yandex.ru/quasar?storage=1 (конечно, с авторизацией под аккаунтом Яндекса, которому привязан умный дом).
* Открываем https://yandex.ru/quasar?storage=1 (конечно, с авторизацией под аккаунтом Яндекса, к которому привязан умный дом).
* В DevToole видим запрос с названием "quasar?storage=1", кликаем правой кнопкой мыши, выбираем "Copy -> Copy as curl".
* В "Network" видим запрос с названием "quasar?storage=1", кликаем правой кнопкой мыши, выбираем "Copy -> Copy as curl".
{{#spoiler:show=Показать скриншот | hide=Скрыть скриншот | [[Файл:Get token and run script copy curl quasar.png|500px]] }}
{{#spoiler:show=Показать скриншот | hide=Скрыть скриншот | [[Файл:Get token and run script copy curl quasar.png|500px]] }}
* Скопированное содержимое передаем любым удобным способом на смартфон: например, через email, или "Избранное" в Телеграм (в этом случае обязательно поставьте символы ``` до и после скопированного текста, чтобы оно отправилось без искажений).
* Скопированное содержимое передаем любым удобным способом на смартфон: например, через email, или "Избранное" в Телеграм (в этом случае обязательно поставьте символы ``` до и после скопированного текста, чтобы он отправился без искажений).
* Полученный текст копируем в буфер обмена смартфона.
 
* Открываем (на смартфоне же) программу "[https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts HTTP Shortcuts]".
На смартфоне:
* Полученный текст копируем в буфер обмена.
* Открываем программу "[https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts HTTP Shortcuts]".
* Нажимаем 3 точки в правом верхнем углу, выбираем "Переменные".
* Нажимаем 3 точки в правом верхнем углу, выбираем "Переменные".
* Нажимаем (+) в правом нижнем углу, выбираем "Константа".
* Нажимаем (+) в правом нижнем углу, выбираем "Константа".
Строка 68: Строка 71:




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




Возвращаемся к браузеру на компьютере:
На компьютере:
* Открываем в браузере https://yandex.ru/quasar/iot
* Открываем в браузере https://yandex.ru/quasar/iot
* Переключаем вкладку сверху на "Сценарии"
* Переключаем вкладку сверху на "Сценарии"
Строка 78: Строка 81:
* Видим 2 запроса с названием "actions", кликаем правой кнопкой мыши на второй (!), выбираем "Copy -> Copy as curl".
* Видим 2 запроса с названием "actions", кликаем правой кнопкой мыши на второй (!), выбираем "Copy -> Copy as curl".
{{#spoiler:show=Показать скриншот | hide=Скрыть скриншот | [[Файл:Get token and run script copy scenario curl.png|500px]] }}
{{#spoiler:show=Показать скриншот | hide=Скрыть скриншот | [[Файл:Get token and run script copy scenario curl.png|500px]] }}
* Скопированное содержимое снова передаем на смартфон и там копируем в буфер обмена.
* Скопированное содержимое снова передаем на смартфон.
 
На смартфоне:
* Копируем текст в буфер обмена.
* Снова открываем "[https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts HTTP Shortcuts]".
* Снова открываем "[https://play.google.com/store/apps/details?id=ch.rmy.android.http_shortcuts HTTP Shortcuts]".
* Нажимаем (+) в правом нижнем углу, выбираем "Из команды cURL".
* Нажимаем (+) в правом нижнем углу, выбираем "Из команды cURL".
Строка 102: Строка 108:




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




Снова переходим к смартфону:
На смартфоне:
* Нажимаем (+) в правом нижнем углу, выбираем "Multi-Shortcut".
* Нажимаем (+) в правом нижнем углу, выбираем "Multi-Shortcut".
* В открывшемся меню в поле "Название ярлыка" пишем удобное название.
* В открывшемся меню в поле "Название ярлыка" пишем удобное название.

Текущая версия от 18:20, 26 февраля 2021

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

Проблема

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

С другой стороны, не хочется каждый раз кликать "Приложение Яндекс->Устройства->Сценарии->Запуск сценария 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".
<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", и добавляем созданные ранее скрипты.
  • Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
  • Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.
  • Нажимаем и удерживаем созданный триггер, пока не всплывет меню, а затем выбираем "Разместить на главном экране".
  • Запускаем ярлык с рабочего стола и наслаждаемся