Создание бота Google Hangout с помощью Express & Node.js

  1. Контур
  2. Отвечая на пинги
  3. Сообщения, инициируемые ботом
  4. развертывание
  5. Около Энди Юнг

Требуемое время: 20 минут.
Технологии: Express, Node.js, JavaScript.
Предпосылки:

  • Базовые знания Express, Node.js и JavaScript.
  • Node.js и npm установлены.

Из этого туториала вы узнаете, как создать бота, который будет отвечать на пинги (например, @ <имя-бота>) и отправлять сообщения в чат-комнату. На высоком уровне бот будет работать на экспресс-сервере и получать пинг через конечную точку HTTP. Ответы на эхо-запросы будут отправляться синхронно через полезную нагрузку в ответе HTTP, в то время как сообщения, инициируемые ботами, будут отправляться асинхронно с использованием API чата Google Hangout.

Контур
  1. Настройка среды.
  2. Заставь бота отвечать на пинги.
  3. Отправляйте сообщения, инициированные ботом.
  4. Развертывание.
Настройка среды

Создайте новый проект с файлом app.js.
Откройте командную строку / терминал и перейдите в каталог вашего проекта. Запустите 'npm init' и нажимайте ввод до тех пор, пока не будет создан package.json. Далее установите следующие зависимости:

  • экспресс: npm установить экспресс --save
  • body-parser: npm установить body-parser --save
  • googleapis: npm установить googleapis --save
  • unirest: npm установить unirest --save

В 'app.js' давайте настроим наш сервер:

const express = require ('express'); const bodyParser = require ('body-parser'); const {google} = require ('googleapis'); const app = express (); app.use (bodyParser.urlencoded ({extended: false})); app.use (bodyParser.json ()); app.listen (8100, () => {console.log ('Приложение прослушивает порт 8100.');});

Запустив 'node app.js', вы создадите локальный сервер на порту 8100.

Отвечая на пинги

Бот будет отвечать на запросы через конечную точку HTTP POST. Создать один с экспресс:

app.post ('/', (req, res) => {console.log ('кто-то пинговал @ <имя-бота>'); if (req.body.type === 'MESSAGE') {return res. json ({текст: 'спать ...'});}});

Бот ответит текстом: «спит…».

Синхронный ответ на сообщения просто требует от нас возврата ответа в Google. Недостатком этого является 30-секундное ограничение по времени, прежде чем Google больше не принимает ответы на запрос. Например, это было бы проблемой, если бы вы создавали какое-то приложение для напоминания; бот не сможет синхронно отвечать через 30 секунд. Вот тут и приходят асинхронные ответы.

Сообщения, инициируемые ботом

Чтобы показать это, мы будем публиковать сообщения нашего бота в чате каждые 1 минуту.

Для отправки асинхронных сообщений в Google API требуется служебная учетная запись для проверки подлинности. После проверки подлинности мы можем сделать запрос POST на URL API Google, который создаст сообщение.

Итак, сначала создайте учетную запись службы Google, следуя этим меры , Возьмите загруженный файл JSON и поместите его в корневой каталог вашего проекта. Здесь мы переименовали его в googlekeys.json:

const gkeys = require ("./ googlekeys.json");

Мы будем делать POST-запросы, используя Unirest:

const unirest = require ('unirest');

Теперь создайте JWT, который будет использоваться в нашем запросе POST:

function getJWT () {вернуть новое обещание ((разрешить, отклонить) => {let jwtClient = new google.auth.JWT (gkeys.client_email, null, gkeys.private_key, ['https://www.googleapis.com/auth /chat.bot ']); jwtClient.authorize ((err, tokens) => {if (err) {console.log (' Ошибка создания JWT видеовстречи '); отклонить (err);} else {resolution (tokens.access_token );}});}); }

Вот наша функция для размещения сообщений. Номер ROOM-ID можно найти в URL-адресе на странице чата видеовстречи, а именно: https://chat.google.com/u/0/room/ <ROOM-ID>.

function postMessage (count) {вернуть новое обещание ((разрешить, отклонить) => {getJWT (). then ((token) => {unirest.post ('https://chat.googleapis.com/v1/spaces/' + <ROOM-ID> + '/ messages') .headers ({"Content-Type": "application / json", "Authorization": "Bearer" + token}) .send (JSON.stringify ({'text' : 'Здравствуйте! Это номер сообщения' + count,})) .end ((res) => {resol ();});}). Catch ((err) => {reject (err);}); }); }

Наконец, добавьте код, который будет повторять наш пост каждую минуту.

const timer = require ('timers'); app.listen (8100, () => {console.log ('Приложение прослушивает порт 8100.'); let count = 0; timer.setInterval (() => {postMessage (count + = 1);}, 60000 );});

развертывание

Предоставьте доступ к вашему локальному серверу (мы использовали ngrok ).

Войти в консоль разработчика , Создайте новый проект и включите API Hangout Chat. Под конфигурацией установите:

  • статус: живой
  • имя бота (это то, как вы будете добавлять и пинговать бота)
  • аватар
  • описание
  • функциональность: номера
  • настройки подключения - URL-адрес бота: <ваш HTTPS-адрес ngrok>
  • разрешение: все в вашем домене

Перезагрузите ваш локальный сервер, и все! Убедитесь, что ваш бот добавлен в чат, и вы можете пропинговать его, отправив @ <имя-бота>. Бот также будет публиковать сообщения в чате каждую минуту.

Существует много различных способов дальнейшего расширения этого бота, таких как установка напоминаний / уведомлений, создание списков дел, отображение журналов сервера и взаимодействие с API.

Существует много различных способов дальнейшего расширения этого бота, таких как установка напоминаний / уведомлений, создание списков дел, отображение журналов сервера и взаимодействие с API

Около Энди Юнг

Энди - разработчик программного обеспечения в LoginRadius, который любит все, что связано с технологиями. Его основные интересы в веб-приложениях и больших данных. В свободное время он любит играть и смотреть баскетбол, бегать и лазать в помещении.

Похожие

Как создать онлайн-опрос бесплатно с помощью Google Docs
В настоящее время вы, вероятно, проводите какие-то опросы пару раз в неделю через Buzzfeed, Facebook, новостные сайты и т. Д. Несмотря на то, что мы проводим массу опросов, не многие из нас проводят собственные опросы. Основная причина в основном в том, что не существует супер простого и быстрого способа создать опрос, отправить его, отследить ответы и показать результаты всем. После использования нескольких онлайн-инструментов единственным способом, который я предпочитаю для создания
Самые важные продукты Google
4 сентября 1998 года в Менло-Парке было зарегистрировано новое небольшое предприятие. Google стремился создать юридическое лицо, которое позволило двум молодым студентам запустить инновационную поисковую систему в Интернете. Как эффективно каталогизировать интернет? До 1998 года считалось, что сайты должны анализироваться с точки зрения их содержания. Это очень логичный вывод, поэтому тогдашние интернет-поисковые системы и каталоги сайтов проиндексировали
Как добавить Google Карты в WordPress
... на свой сайт WordPress. На WPBeginner мы показали вам, как добавить аудио файлы , видео , PDF и таблицы в WordPress , Добавление контента из внешних источников позволяет создавать
Ошибки Google Play в LG K10
Иногда, когда вы используете магазин Google Play, может случиться так, что вам придется столкнуться с некоторыми проблемами и ошибками. В следующей статье мы покажем вам, как быстро и эффективно решать наиболее распространенные ошибки в приложении Google Play. Google Play Store Ошибка 403 Эта проблема возникает при попытке загрузить приложение и получить информацию о том, что доступ к этому приложению запрещен. Ошибка 403 обычно появляется,
Создание баз данных в Access 2007
Microsoft Access 2007 - новейшая программа для создания баз данных. Его основная задача - хранить выбранную информацию и их соответствующую группировку, что облегчает быстрый доступ к ней. Это, безусловно, будет полезно людям, у которых есть большие и маленькие компании. Приложение легко в обращении, поэтому оно не вызовет проблем у тех, кто имеет мало общего с компьютерами. Кроме того, в последней версии есть много элементов, которых мы не найдем в предыдущих. К ним относятся общая форма,
Как легко создавать резервные копии контактов Google
Если вы являетесь владельцем телефона, это означает, что вам нужно особенно внимательно относиться ко всем соответствующим данным на нем, с включенными контактами. Выполнение эффективного контакта Резервное копирование Google является обязательным. Общение, несомненно, является основной причиной того, что почти у всех на этой планете есть мобильный телефон. Все ваши контакты очень важны не только для личного использования, но и для деловых целей. Вам также понадобятся
12 Удивительных Таблиц JQuery
Эта популярная статья о jQuery Tables была обновлена ​​10 ноября 2016 года, чтобы отразить текущее состояние плагинов таблиц jQuery. Таблицы являются одним из самых старых элементов в HTML. Было время, когда таблицы широко использовались как для контента, так и для веб-макетов. К счастью, макеты, основанные на таблицах, в основном не работают (за исключением электронной почты в формате HTML), и когда вам нужна таблица в настоящее время,
Как преобразовать документ Google Docs в формат Microsoft Office
... на жесткий диск в виде файлов Microsoft Office, хотите ли вы просто один документ или всю вашу библиотеку Google Docs. Даже если ты использовать Google Drive для синхронизации ваших файлов документов для вашего ПК или Mac файлы «.gdoc» на вашем компьютере являются просто ссылками на веб-сайт Google Docs. Если вы хотите загрузить их как настоящие файлы, которые вы можете редактировать с
Сохраняйте контент из Интернета прямо на Google Drive, используя официальное расширение
Я не фанат облачных вычислений от Google. Я использую Dropbox, в основном из-за его безотказной работы. Меня интересует только отличный онлайн-редактор документов, который заменяет пакет Office в моей работе всеобъемлющим сервисом Google. Однако невозможно отказать компании Mountain View в том, что она пытается популяризировать Drive любой ценой. Сегодня к этому присоединилась интеграция с браузером Chrome.
Как создавать реалистичные текстовые сообщения на экране
... сообщения, которые всплывали над кадром персонажа, держащего телефон. Прежде чем сообщения стали появляться на экране в одиночку, создатели фильма рассчитывали показать кадры телефона . Техника была громоздкой и визуально не интересной. Прежде чем идти дальше, вот отличный взгляд на историю текстового сообщения на экране от Каждый кадр Картина , Видео включает в себя некоторые
В Apple на 7000 человек меньше людей, работающих над картами, чем в Google
Снимок экрана Теперь уже ясно, что Apple откусила больше, чем могла бы пережевывать, загружаясь Карты Гугл из последней версии его iPhone а также IPad операционная система. Заменяющее

Комментарии

Bmp | css | js | gif | ico | jpe?
bmp | css | js | gif | ico | jpe? g | png | swf | woff) (? i). * \. (bmp | css | js | gif | ico | jpe? г | PNG | SWF | Уофф) [\ ?;] *. Перед запуском рекордера вам необходимо настроить браузер на использование прокси-сервиса. В Firefox вы можете настроить это в Предпочтения -> Дополнительно -> Сеть -> Настройки. Адрес прокси-сервера HTTP - «localhost», а порт - 8080 (если вы не изменили его в настройках рекордера). Вы также можете использовать расширение FoxyProxy, которое
Quot;, "@", "#", "$", "^", "&", "*", "?
quot;, "@", "#", "$", "^", "&", "*", "?", "(", ")" , "[", "]", "<", ">", "/", ";", ":", "|", "{", "}", "+", "-", " . ",", ","% "," _ "," = "," `", "'", "\", "" " Пароль не
Как вы будете делать резервные копии и восстанавливать свои контакты на устройстве Google Pixel?
Как вы будете делать резервные копии и восстанавливать свои контакты на устройстве Google Pixel? Просто следуйте инструкциям ниже: 1.Start dr.fone - передача Android затем подключите устройство к компьютеру. Нажмите режим «Передача», приложение распознает устройство, после чего оно отобразится в главном окне.
У вас уже есть свой положительный или отрицательный опыт использования некоторых альтернатив Google Карт?
У вас уже есть свой положительный или отрицательный опыт использования некоторых альтернатив Google Карт? Или вы даже знаете другие приложения, которые лучше, чем выше? Тогда напишите нам свой опыт и предложения в комментариях! Как вам понравилась статья? 5 лучших альтернатив Google Maps 4,4 (87,62%) 63 голоса Мартин Шнайдер Мартин занимается SEO, социальными сетями и PR в сфере онлайн-маркетинга. Он также пишет статьи для
Как проверить эффективность графического объявления в Google?
Как проверить эффективность графического объявления в Google? Используя рекламу в системе Google AdWords, имеющаяся в ней рекламная панель позволяет отслеживать эффективность ваших объявлений . Он настолько развит, что его обычно достаточно, но если нам нужен более подробный анализ, Google Analytics будет хорошим выбором. В аккаунте AdWords есть статистика, позволяющая отслеживать эффективность рекламы, отслеживая, какие страницы отображаются и какие действия
Если в один прекрасный день появилось много нового контента, Google может посчитать его неестественным занятием и понизить нашу позицию в Интернете, но мы этого не хотим?
Если в один прекрасный день появилось много нового контента, Google может посчитать его неестественным занятием и понизить нашу позицию в Интернете, но мы этого не хотим? Перевод страниц это довольно сложный процесс, поэтому вы не должны использовать автоматические переводчики. Веб-сайт - это наша визитная карточка - если мы переводим переводчика, мы можем отпугнуть потенциальных клиентов. Для кого
Top Virus , Афера технической поддержки Microsoft , Как исправить проблему с Google Redirect Virus , Как просмотреть скрытые файлы?
Если в один прекрасный день появилось много нового контента, Google может посчитать его неестественным занятием и понизить нашу позицию в Интернете, но мы этого не хотим? Перевод страниц это довольно сложный процесс, поэтому вы не должны использовать автоматические переводчики. Веб-сайт - это наша визитная карточка - если мы переводим переводчика, мы можем отпугнуть потенциальных клиентов. Для кого

Как эффективно каталогизировать интернет?
Bmp | css | js | gif | ico | jpe?
Bmp | css | js | gif | ico | jpe?
Г | PNG | SWF | Уофф) [\ ?
Quot;, "@", "#", "$", "^", "&", "*", "?
Как вы будете делать резервные копии и восстанавливать свои контакты на устройстве Google Pixel?
У вас уже есть свой положительный или отрицательный опыт использования некоторых альтернатив Google Карт?
У вас уже есть свой положительный или отрицательный опыт использования некоторых альтернатив Google Карт?
Или вы даже знаете другие приложения, которые лучше, чем выше?
Как вам понравилась статья?