Ярлык с токеном на несколько сценариев (Android)
Телефон вызова экстренных служб - 112.
Любые действия и программы вы применяете на свой собственный страх и риск.
Введение
Возникла у меня необходимость запускать несколько сценариев "по одной кнопке", например, чтобы при возвращении домой можно в одно нажатие включить свет в квартире и музыку/телевизор/кофеварку/etc. Это было бы можно объединить всё в один сценарий, но не хотелось каждый раз проделывать путь "найти приложение Яндекс->зайти в устройства->Управление->Сценарии->запуск сценария 1->запуск сценария 2->запуск сценария 3". Решения было найдено следующее, на телефон устанавливается приложение HTTP Shortcuts (Google Play, офф.сайт), настраивается отдельными сценариями получение токена и запуск сценариев, на рабочий стол выносится ярлык для запуска.
Реализация
Данная реализация, на текущий момент, основана на использовании файлов cookie из браузера, срок действия которых до конца не проверен, по мере получения новой информации статья будет обновляться.
Получение токена
- Открываем в браузере DevTools (CTRL+Shift+I), раздел Network.
- Переходим на https://yandex.ru/quasar?storage=1 (Вы должны быть авторизованы под своей УЗ Яндекс)
- Видим запрос с названием "quasar?storage=1", кликаем на него ПКМ, выбираем "Copy -> Copy as curl"
- Скопированное содержимое передаем любым удобным способом на телефон (например отправив в Избранное через Телеграм, не забыв экранировать содержимое символами ``` перед и после сообщения)
- Копируем содержимое на телефоне в буфер обмена.
- Открываем на телефоне 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)"
- Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу
- Переходим в раздел "писать сценарии" и добавляем следующий код в поле в верхнее поле "Запустить до выполнения":
wait(2000)
- Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу
- Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу
Создание ярлыка для мультискрипта
- Нажимаем + в правом нижнем углу, выбираем "Multi-Shortcut"
- В открывшемся меню в поле "Название ярлыка" пишем как мы хотим его назвать.
- Далее открываем раздел "Trigger Shortcuts" и добавляем созданные ранее скрипты
- Возвращаемся на предыдущий экран нажатием стрелочки в левом верхнем углу
- Сохраняем запрос и возвращаемся на предыдущий экран нажатием галочки в правом верхнем углу
- Нажимаем и удерживаем на наш скрипт пока не всплывет меню, в меню выбираем "Разместить на главном экране"
- Запускаем ярлык с рабочего стола и наслаждаемся