Ярлык с токеном на несколько сценариев (Android): различия между версиями
Нет описания правки |
м Ark rusinov-9121383 переименовал страницу "Ярлык на несколько сценариев (Android)" в "[[Ярлык с токеном на несколько сценарие… |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 12: | Строка 12: | ||
Иногда возникает необходимость запуска нескольких сценариев "по одной кнопке", чтобы не множить их сходные копии и не создавать сложные схемы их взаимодействия. | Иногда возникает необходимость запуска нескольких сценариев "по одной кнопке", чтобы не множить их сходные копии и не создавать сложные схемы их взаимодействия. | ||
С другой стороны, не хочется каждый раз кликать " | С другой стороны, не хочется каждый раз кликать "Приложение Яндекс->Устройства->Сценарии->Запуск сценария 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 (конечно, с авторизацией под аккаунтом Яндекса, к которому привязан умный дом). | ||
* В | * В "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]". | |||
* Нажимаем 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", и добавляем созданные ранее скрипты.
- Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу.
- Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу.
- Нажимаем и удерживаем созданный триггер, пока не всплывет меню, а затем выбираем "Разместить на главном экране".
- Запускаем ярлык с рабочего стола и наслаждаемся
-
Выбираем "Multi-Shortcut"
-
Добавляем скрипты в разделе "Trigger Shortcuts"
-
Долгим тапом на созданном триггере вызываем меню и выбираем пункт "Разместить на главном экране".