Автор оригинала: Jared Wolff.
Webhook.
Похоже, что происходит, когда вы пересекаете паук и пират. В мире Интернета, однако, веб-капли – это нечто совершенно другое. WebHooks помогают подключать услуги вместе.
Позволь мне объяснить.
Скажем, у нас есть две гипотетические услуги. Один – это услуга, которая генерирует данные, а другой, которые собирают и организуют эти данные.
Разработчики первой службы мысли, «человек, наша платформа только настолько полезны. Давайте предоставляем пользователям возможность пересылать данные в режиме реального времени в другие услуги ».
Разработчики второй службы мысли. ” Gee Willikers, было бы здорово, если наши пользователи могли бы проще импортировать данные ». Итак, они добавили WebHooks для получения данных в режиме реального времени с обслуживания, как первая услуга.
Сейчас как пользователь, вы используете оба сервиса. Теперь у вас есть сила в руках, чтобы соединить их вместе.
Лучший способ объяснить это с реальным примером.
Реальный мир Пример
На Недавний проект Я подключил сенсор IOT к листу Google Docs. Мне потребовалось всего около 10 минут. Я собираюсь показать вам то же самое прямо сейчас.
Давайте сначала начнем с настройки листа Google.
- Создать новый лист
- Как только ты там, перейдите к Инструменты и нажмите Редактор сценария
- Это должно открыть новое окно, которое выглядит что-то подобное:
- Скопируйте и вставьте этот код. Я объясню это после того, как мы это сделаем.
//this is a function that fires when the webapp receives a POST requestfunction doPost(e) { //Return if null if( e == undefined ) { console.log("no data"); return HtmlService.createHtmlOutput("need data"); } //Parse the JSON data var event = JSON.parse(e.postData.contents); var data = event.data;//Get the last row without data var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = Math.max(sheet.getLastRow(),1); sheet.insertRowAfter(lastRow); //Get current timestamp var timestamp = new Date(); //Insert the data into the sheet sheet.getRange(lastRow + 1, 1).setValue(event.published_at); sheet.getRange(lastRow + 1, 2).setValue(data.temperature); sheet.getRange(lastRow + 1, 3).setValue(data.humidity); sheet.getRange(lastRow + 1, 4).setValue(data.pm10); sheet.getRange(lastRow + 1, 5).setValue(data.pm25); sheet.getRange(lastRow + 1, 6).setValue(data.tvoc); sheet.getRange(lastRow + 1, 7).setValue(data.c02); SpreadsheetApp.flush(); return HtmlService.createHtmlOutput("post request received");}Теперь давайте все понять.
function doPost(e) {Это функция, которая вызывается на почтовом мероприятии. Рассмотрим этот скрипт в виде веб-сервера. Мы отправляем ИТ-данные по конкретному адресу (что у нас будет в жаркую минуту)
е это объект http call. У него будут данные, которые мы отправляем. Так что это хорошая идея проверить, если это НУЛЕВОЙ. Если это так, то нет необходимости запускать скрипт.
Если у нас есть действительные данные, давайте изменим его из строки на использоваемые JSON. Вы можете использовать любимую функцию каждого Json.parse сделать это.
var event = JSON.parse(e.postData.contents);
Помните, структура данных определит, как вы обрабатываете его! Возможно, вам придется запустить Json.parse Несколько раз в зависимости от того, насколько вложены ваши данные, и в каком формате это в.
После того, как у вас есть данные, пришло время поставить его в нужное место!
//Get the last row without datavar sheet = SpreadsheetApp.getActiveSheet();var lastRow = Math.max(sheet.getLastRow(),1);sheet.insertRowAfter(lastRow);
Эти три вызовы получат вам первую доступную строку, начиная с строки 1 (оставив строку 0 для меток столбца).
Затем, наконец, мы поместим данные в ряд, принадлежат:
sheet.getRange(lastRow + 1, 1).setValue(event.published_at);
Где первый параметр Лист. GTETRANGE это строка, а вторая – это столбец. Вы можете использовать SetValue Функция, чтобы установить то, что вы хотите в этой конкретной ячейке.
Кстати, вдохновение для этого кода пришла из Это пост Отказ
Прохладный. Таким образом, у нас есть скрипт. Как мы это называем?
- Ударь это Опубликовать кнопка
- Нажмите
Развертывание в качестве веб-приложения
- Измените настройки, чтобы соответствовать скриншоту ниже. Затем нажмите
Развертывать
- Вы можете получить экран, прося вас обновить ваши разрешения. Нажмите
Просмотр разрешений
- Нажмите на
Передовойа затем нажмитеПерейти к <ваш файл Н.А.я> внизу левый.
- Наконец, нажмите
Разрешать
- На последнем экране скопируйте URL-адрес веб -ook!
Попробуй это
Теперь мы можем проверить, если все работает с помощью Postman. Если вы еще не играли с Postman, это отличный графический интерфейс пользователя для Curl Отказ
- Установите почтальон. Возможно, вам понадобится аккаунт, чтобы пойти дальше.
- Оказавшись внутри, создайте новый запрос. Назови это Итак, вы знаете, что это принадлежит к этому веб -ookhook Google Docs
- Нажмите
Телои введите следующий тестовый код:
{ "event": "gdxg", "data": { "temperature": 21 }, "coreid": "zczxvz", "published_at": "zcvzxcvx"}- Наконец, нажмите на этот синий
Отправитькнопка.
- Вернитесь на свой лист Excel и посмотрите волшебство!
Теперь мы готовимся с газом!
Заключение
Я надеюсь, что вы получили приведенный выше пример к работе. К счастью, для вас, намного меньше беспокоиться о том, как только вы получите эту роль и бегу!
Чтобы повторить, мы говорили о веб-кавках и почему они используются. Вы должны чувствовать себя уверенно на этом моменте, чтобы пойти и настроить некоторые из себя. Если вы все еще чувствуете себя запуганным, рекомендую использовать такие услуги, как Zapier или IFTTT. (Они блестящие передние концы для API и уже доступны веб-капли.)
Последний, но не менее важный Проверьте полный пост где я интегрирую аппаратное и веб в одном потрясающем проекте.
Счастливое окно!
Оригинал: “https://www.freecodecamp.org/news/a-simple-how-to-on-webhooks-the-intimidation-stops-now-9671e8c94c76/”