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