Slack-бот с Ruby | Кодементор

фото Фрэнки Валентайн на Скрыть

Я на всю жизнь дружу примерно с 4 другими парнями. И недавно я убедил их всех присоединиться к Slack-каналу (один из них — парень с Android, отсюда и ужасные зеленые сообщения). Слабость отличная. Я новый разработчик, и мы использовали его в двух последних местах, где я работал. Одной из замечательных особенностей Slack является большой выбор приложений и ботов, доступных для установки. Я пытаюсь изучить бэкэнд-программирование и являюсь большим поклонником Ruby и Ruby on Rails. Ruby чрезвычайно удобен для разработчиков, и после того, как вы преодолеете его первоначальные причуды, он станет просто фантастическим.

Fortnite — один из основных способов, с помощью которых мы все можем проводить время вместе, и мы всегда проверяем, когда мы все сможем собраться и поиграть. Все это привело к идее бота Slack, написанного на Ruby. Этот бот позволяет любому из нас спросить бота «Кто в сети?». Бот зайдет в Xbox Api и проверит статус 5 парней, и сообщит, играют ли они в Fortnite. Функциональность этого чрезвычайно проста. Он построен на чистом Ruby. Рельсы не требуются. Требуется некоторая внешняя настройка, но фактическая программа имеет минимальные внешние спецификации.

Итак, давайте погрузимся!

Как я уже сказал, я использовал чистый Ruby, поэтому я начал с файла gem и основного файла, который я назвал slack.rb. Я использовал следующие драгоценные камни:

  • slack-ruby-bot— Этот драгоценный камень имеет решающее значение для успеха приложения, поскольку это то, что связывает приложение и Slack.
  • xbox-api— Xbox не имеет специальной реализации API для Ruby. У них есть С++ реализация для всех вас, C++, там. я использовал Неофициальный API Xbox предоставлено Алан Винн. Документы великолепны, и он предоставляет различные реализации для Python и Ruby.
  • json— JSON очень важен при обращении к большинству API, и это драгоценный камень позволяет Ruby и JSON хорошо работать вместе.
  • dotenv— Последнее, но не менее важное: я использовал дотенв чтобы скрыть мои ключи Slack и Xbox Api.

После того, как ваши драгоценные камни были добавлены в ваш Gemfile, обязательно запустите bundle install в вашем терминале, чтобы заполнить ваш Gemfile.lock файл. Для внешней настройки вам потребуется получить ключ API от Slack и Xbox API. Оба ключа представляют собой довольно простые процессы.

  1. Xbox API

Прежде чем мы зайдем слишком далеко, важно обсудить, как этот API получает данные игрока. API использует учетную запись игрока xuid. Вместо того, чтобы добавлять отдельный вызов для получения идентификатора каждого игрока, я пошел дальше и заранее проделал небольшую черновую работу. Я использовал Postman, чтобы отправить запрос в Xbox API с тегами игроков моих друзей (в частности, GET https://xboxapi.com/v2/xuid/{gamertag}. Обязательно установите заголовки с помощью X-AUTH и вашего ключа API.) Затем почтальон выплюнул свой xuid, и в итоге я жестко закодировал это в программе. Я думаю, что за этим стоит то, что программа будет немного более производительной без дополнительного вызова API.

  1. Кодирование

фото Крис Рид на Скрыть

Вернитесь к своему slack.rb файл. Важно, чтобы все ваши драгоценные камни находились в верхней части файла, чтобы Ruby знал, что импортировать. Затем я делаю свой класс экземпляром Slack Ruby Bot. После этого я помещаю свой ключ API в переменную с именем «клиент» и использую «клиент», когда устанавливаю переменные для всех своих друзей. После того, как они настроены, пришло время для реализации Slack. Slack использует функцию под названием «команда» для обеспечения функциональности. Все это можно объяснить гораздо более подробно в Slack Ruby Bot. ПРОЧТИ МЕНЯ. Я использовал слово «понг» в качестве ключевого слова Slack для своего бота. Это ключевое слово заставит бота получить данные, и вы можете изменить его на любое другое ключевое слово.

Далее идет функциональность. Я беру данные игроков, которые я поместил в переменные, получаю их «присутствие» от Xbox API и устанавливаю их в переменную. Данные, которые вы возвращаете, представляют собой объект Ruby (я думаю, ¯_(ツ)_/¯). Я потратил большую часть своего времени на этот проект, ища способ проанализировать эти данные, не переходя на землю JSON. К сожалению, я потерпел неудачу. После того, как я получу эти данные Ruby, я использую гем JSON для получения остальных данных. Я звоню JSON.generate для каждой из этих новых переменных и установите для нее значение еще один переменная. тогда я звоню JSON.parse теперь я нахожусь в стране JSON и могу получить данные о том, что они делают прямо сейчас. Ан if Оператор определяет, что будет напечатано в Slack, в зависимости от данных игрока. После этого сохраните все и перейдите к своему терминалу и cd в проект. Как только вы окажетесь там, запустите следующий скрипт:

SLACK_API_TOKEN={SLACK API KEY} bundle exec ruby slack.rb

Это запустит ваше приложение на вашем локальном компьютере. Я потратил много времени, пытаясь протолкнуть это в Heroku, но безуспешно. Все еще работаю над этим. Перейдите к своему клиенту Slack и введите следующее: @{SLACK BOT NAME} {ВАША КОМАНДА} подождите пару секунд и альт! Информация!

Вот и все! Пара заключительных замечаний:

  • Это определенно не очень эффективно, и определенно есть лучшие способы сделать это. Это как раз то, что я должен работать. Дайте мне знать, что работает для вас!
  • Уровень бесплатного пользования Xbox API допускает только 120 запросов в час. Я столкнулся с этим ограничением пару раз во время разработки. Платные уровни не слишком дороги.
  • Проверьте мой код на Гитхаб посмотреть, как я его настроил.

Спасибо за просмотр моего проекта! Я хотел бы услышать ваш опыт и что вы думаете! Удачной игры!

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *