Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как создать Power Pages и использовать облачный поток Power Automate, чтобы вызвать приложение погоды MSN, которое отображает текущую информацию о погоде на странице.
Необходимые условия
Для выполнения этих действий вам потребуется Power Automate и среда Power Pages. Если у вас нет лицензии, вы можете зарегистрироваться в пробных версиях Power Pages и Power Automate.
Шаг 1. Создание облачного потока
Создайте поток с помощью триггера Power Pages и используйте действие Погода MSN для получения данных о погоде.
Выполните вход в Power Pages.
Выберите сайт и выберите Изменить.
Перейдите в рабочую область Настройка, затем выберите Облачные потоки в разделе «Интеграции приложений».
Выбрать + Создать новый поток
Выполните поиск Power Pages.
- Выберите триггер Когда Power Pages вызывает поток.
Выберите + Добавить входные данные.
Нажмите кнопку Текст.
Добавьте имя как Расположение.
Выберите + Новый шаг.
Найдите MSN Weather.
Выберите действие Получить текущую погоду.
Наведите курсор на вводимый текст Расположение. Выберите параметр Расположение в разделе Когда Power Pages вызывает поток из динамического содержимого.
Заметка
Вы можете сохранить единицы британской системы либо использовать метрические.
Выберите + Новый шаг.
Выполните поиск Power Pages.
Выберите действие Возвращать значения в Power Pages.
Выберите +Добавить выходные данные.
Выберите Текст.
Введите Давление в качестве заголовка.
В разделе Получить текущую погоду выберите динамическое содержимое Давление.
Повторите эти действия, чтобы создать следующие шаги вывода, использующие тип текст:
- Влажность
- Температура
- УФ-индекс
- Скорость ветра
- Местонахождение
- Расстояние видимости
- Широта
- Долгота
- Единицы измерения температуры
- Единицы измерения давления
- Единицы измерения скорости
- Единицы измерения расстояния
- Положения
Выберите Сохранить
Назовите поток Получить текущую погоду.
Шаг 2. Добавление потока на сайт
После сохранения потока необходимо добавить его на сайт и назначить соответствующую веб-роль.
Выполните вход в Power Pages.
Создайте сайт с помощью одного из начальных макетов.
Выберите сайт и выберите Редактировать.
Перейдите в рабочую область Настройка.
В разделе Интеграции приложений выберите Облачные потоки.
Выберите + Добавить облачный поток.
Найдите поток Получить текущую погоду.
Выберите + Добавить роли в разделе «Роли».
Выберите роль Анонимные пользователи.
Выберите Добавить.
Скопируйте URL-адрес.
Заметка
Это уникальный URL-адрес, используемый для подключения к связанному облачному потоку. Вы будете использовать этот URL-адрес позже для вызова потока текущей погоды.
Шаг 3. Создание страницы для отображения данных о погоде MSN
После создания потока и его прикрепления к сайту Power Pages теперь вы можете вызывать его из управляющего события с помощью JavaScript.
Выберите рабочую область Страницы.
Выберите + Страница.
Назовите страницу «Отчет о погоде на сегодня».
Выберите Редактировать код, чтобы открыть Visual Studio Code.
Вставьте этот код:
<style> div.weatherdetail { border: 1px solid #F3F2F1; border-radius: 12px; box-shadow: 0px 1.2px 3.6px rgba(0, 0, 0, 0.1), 0px 6.4px 14.4px rgba(0, 0, 0, 0.13); padding: 24px; } .weather label { font-family: 'Nunito'; font-style: normal; font-weight: 600; font-size: 18px; color: #323130; } .weather button { font-family: 'Segoe UI'; padding: 8px 16px; font-size: 16px; background-color: #6219D9; color: white; border: none; border-radius: 4px; cursor: pointer; outline: none; } div.weather { display: flex; flex-direction: column; align-items: flex-start; padding: 100px; gap: 36px; width: 840px; } span.temperature { font-family: Segoe UI; font-size: 96px; font-style: normal; font-weight: 600; color: #6219d9; } span.weatherinfov1 { font-family: Segoe UI; font-size: 28px; font-style: normal; font-weight: 400; color: #201f1e; } span.weatherinfov2 { font-family: Segoe UI; font-size: 24px; font-style: normal; font-weight: 600; color: #a19f9d; } </style> <div class="row sectionBlockLayout text-left" style="display: flex; flex-wrap: wrap; margin: 0px; min-height: auto; padding: 8px;"> <div class="container" style="display: flex; flex-wrap: wrap;"> <div class="col-md-12 columnBlockLayout weather" style="flex-grow: 1; display: flex; flex-direction: column; min-width: 310px; word-break: break-word; padding: 0 180px; margin: 60px 0px;"> <h1>What's the weather?</h1> <form id="cityForm"> <label for="locationInput">Enter a location to find out</label> <br> <input type="text" style="width: 840px; border: 1px solid #D2D0CE;" id="locationInput" required /> <p> <p> <button type="submit">Submit</button> </p> </form> <div id="weatherdetail" class="weatherdetail" style="display: none;width: 840px"> <div> <div> <span class="temperature" id="temperature"> </span> <span class="weatherinfov1" id="temperature_units"></span> </div> <div> <span class="weatherinfov1" style="font-size: 36px;" id="location"> </span> <br> <span class="weatherinfov1" style="font-size: 24px;" id="cordinates"></span> <p> </div> </div> <div style="display: flex;"> <div style="flex: 1;"> <span class="weatherinfov2">Wind: </span> <span class="weatherinfov1" id="windspeed"></span> <span class="weatherinfov1" id="speed_units"> </span> </div> <div style="flex: 1;"> <span class="weatherinfov2">Visibility: </span> <span class="weatherinfov1" id="visibility"></span> <span class="weatherinfov1" id="distance_units"></span> </div> </div> <div style="display: flex;"> <div style="flex: 1;"> <span class="weatherinfov2">UV Index: </span> <span class="weatherinfov1" id="uv"></span> </div> <div style="flex: 1;"> <span class="weatherinfov2">Conditions: </span> <span class="weatherinfov1" id="condition"></span> </div> </div> </div> </div> </div> </div> <script> document.getElementById("cityForm").addEventListener("submit", function (event) { event.preventDefault(); // Prevent form submission var weatherDiv = document.getElementById("weatherdetail"); weatherDiv.style.display = "none"; var location = document.getElementById("locationInput").value; var _url = "<Cloud flow URL>"; var data = {}; data["Location"] = location; var payload = {}; payload.eventData = JSON.stringify(data); shell .ajaxSafePost({ type: "POST", url: _url, data: payload }) .done(function (response) { const result = JSON.parse(response); document.getElementById("temperature").innerHTML = result["temperature"]; document.getElementById("windspeed").innerHTML = result["wind_speed"]; document.getElementById("visibility").innerHTML = result["visibility_distance"]; document.getElementById("uv").innerHTML = result["uv_index"]; document.getElementById("location").innerHTML = result["location"]; document.getElementById("condition").innerHTML = result["conditions"]; document.getElementById("temperature_units").innerHTML = result["temperature_units"]; document.getElementById("speed_units").innerHTML = result["speed_units"]; document.getElementById("distance_units").innerHTML = result["distance_units"]; document.getElementById("cordinates").innerHTML = parseFloat(result["latitude"]).toFixed(2) + ', ' + parseFloat(result["longitude"]).toFixed(2); weatherDiv.style.display = "block"; }) .fail(function () { alert("failed"); }); }); </script>
Замените URL-адрес на тот, который вы скопировали на предыдущем шаге.
Сохраните код, нажав CTRL + S.
Выберите Синхронизировать в студии дизайна.
Шаг 4. Проверка интеграции потока
Чтобы проверить функциональность интеграции потока:
Выберите Предварительный просмотр, чтобы открыть сайт.
Введите почтовый индекс или город в текстовое поле Местоположение.
Нажмите кнопку Отправить.