Как да се изгради основна слаба работа: ръководство за начинаещи

Нека опитаме и автоматизираме нещо [в python]

Снимка на Rock’n Roll Monkey в Unsplash

Slackbots: Защо да ги използвате?

Преди да влезем в ръководството на тази публикация, нека разгледаме защо това може да бъде достоен проект и инструмент.

Slack е все по-популярен инструмент за общуване в екип. Той е отрасъл, за да включва плъгини за други широко използвани инструменти за управление на проекти, като JIRA, Google Drive и подобни. Всеки слаб потребител знае - колкото повече можете да направите от разговора, толкова по-добре.

Често срещани приложения за слабият диапазон от обикновен нотификатор, когато дадена задача е завършена (като пробна версия или когато обедът ви е готов) до интерактивни, базирани на бутони ботове, които изпълняват команди по желание на потребителя. Можете да изградите механизми за анкетиране, разговорни ботове и други.

Настройка на среда за програмиране на python

Ако сте потребител на Windows и преди не сте използвали python, ще трябва да го инсталирате. Потребители на Linux / Mac: Unix идва с python!

Веднъж инсталиран, запалете терминала и напишете python или python3 (ако имате няколко инсталации), за да се уверите, че работи и има ли го.

Също така проверете дали имате добър текстов редактор за код: sublime и atom са чудесен избор.

Незадължително: Може също да е полезно да работите във виртуална среда - това е добра практика за случаите, когато имате много зависимости.

пип инсталиране virtualenv
урок за virtualenv
справочник за източник / кош / активирайте

Трябва също да разклоните ръководството за репортаж на GitHub и да го клонирате към вашата локална машина, тъй като ще използваме този код като рамка за този урок.

За да направите това, отидете на репо и натиснете Fork в горния десен ъгъл. Разположеното репо трябва да бъде вашето име / слакбот-урок. Натиснете зеления клон или бутона за изтегляне вдясно под лентата със статистически данни и копирайте URL адреса. Върнете се към терминала, за да клонирате хранилището:

CD десктоп /
git clone https://github.com/yourusername/slackbot-tutorial.git
cd slackbot-урок /
възвишен. (или отворете текстовия си редактор и отворете тази директория)

Слаби приложения

Има два начина да създадете своя слаба работа: самостоятелни ботове или Slack приложения. Приложенията позволяват по-широк спектър от функционалности напред и е препоръчителният маршрут на Slack за създаване на потребител на бот.

Отидете на https://api.slack.com/apps и натиснете Създаване на ново приложение горе вдясно. Дайте му име и изберете работно пространство, където можете да създадете канал за тестване на вашия бот. Винаги можете да пренастроите вашия бот за друго работно пространство по-късно или дори да го публикувате в директорията на Slack App.

Първото нещо, което ще искате да направите, е да получите символа на бота. Когато стигнете до горната страница, щракнете върху Bots и създайте потребител на бот. По подразбиране са добре, въпреки че можете да преименувате вашия бот, ако желаете.

Сега, за да получите своите жетони, ще трябва да отидете на OAuth & Permissions в лявата странична лента.

Тук ще можете да инсталирате приложението в работното пространство и да генерирате необходимите маркери. Като правило, символите на бота започват с xoxb-.

Също така ще искате маркера за потвърждение, който се намира в Основна информация> Удостоверения на приложенията.

Изпълнява ролята на своя бот

Сега имате идентификационните данни, необходими, за да извършвате обаждания в API и да действате като бот. За да тествате това, запалете терминал и стартирайте това (с правилния маркер и име на канал):

извиване -X POST \
     -H 'Авторизация: Носител xoxb-your-token' \
     -H 'Тип съдържание: application / json; charset = utf-8' \
    --data '{"channel": "# test", "text": "Здравей, хлабав!"}' \
https://slack.com/api/chat.postMessage

Ако отидете на този канал в слабото си работно пространство, сега трябва да видите съобщение от вашия бот! Току-що направихте HTTP POST заявка - помолих сървъра да публикува съобщение някъде.

Програмиране на Bot

Искаме да направим горното програмно. Има няколко различни начина, по които можете да настроите слаба робота. Ще обхвана следното:

  • Задейства се периодично (по график), за да кажа нещо
  • / наклонени команди

Вторият изисква работа на сървър, докато първият не.

Планирани съобщения

Да речем, че искате периодично да изпращате съобщение някъде - може би всеки понеделник сутрин. Отидете до текстовия редактор, където отворихте урока за слаба работа.

Трябва да видите файл raspored.py. Обърнете внимание: sendMessage е функция, която изключва призива на API за отслабване и публикуване на съобщение. Най-долу ще видите основния метод: какво се изпълнява, когато стартирате скрипта. Тук ще видите няколко неща, които трябва да отбележите:

  • SLACK_BOT_TOKEN не се съхранява във файла. Вместо това скриптът го получава от ОС - как? Изпълнете export SLACK_BOT_TOKEN = "xoxb-your-token" във вашия терминал, за да зададете тази променлива.
  • тук се използва планировчик и има безкраен цикъл, който проверява за събития в планиращия. По подразбиране тук насрочих функцията sendMessage да се извиква всяка минута.

За да тествате това, върнете се към терминала, където сте в директорията slackbot-tutorial, и стартирайте

export SLACK_BOT_TOKEN = "xoxb-your-token"
python raspored.py

Трябва да видите печатащите съобщения в дневника. Оставете го да работи няколко минути и гледайте как съобщенията се показват на Slack! Ако нямате тестов канал с име #test, променете го в скрипта.

Това, разбира се, е супер основно изпълнение на планиран подател на съобщения - всъщност можете да направите това само с slackbot / напомняйте # тест „Здравей, Слаби!“ Всеки понеделник в 9 часа сутринта.

Истинската сила тук е, че можете да замените всяка функция за sendMessage, използвайки силата на взаимодействие с външни услуги чрез API, правене на математика и т.н., а след това изграждане на съобщение за публикуване.

Косови команди

Това изисква малко повече настройка - върнете се към настройките на приложението си> Slash Commands. Създайте нова наклонена команда: например / test. За URL адреса на заявката ще трябва или да разгърнете този уеб сървър (използвам Heroku), или да стартирате локален nginx екземпляр, за да го тествате. Последният ще го управлява локално. Настройте тук nginx.

В репо кода за стартер потърсете slashCommand.py, за да започнете да разбирате този метод. За да стартирате сървъра, стартирайте python server.py. URL адресът на заявка за пускане в Slack ще бъде даден от вашия nginx инстанция и @ app.route във вашия код. Трябва да можете да тествате наклонените команди във вашето работно пространство Slack.

Движа се напред

Сега имате много основен slackbot, който или работи с команда, или се изпълнява всеки толкова често. Бъдете креативни с това как го използвате! Помислете какво още можете да свържете този скелет, за да го направите по-полезен.

Други начини вашият бот може да отговори

  1. Действията / отговорите могат да бъдат предизвикани от споменавания или определени фрази. Това изисква да стартирате сървър и да слушате съобщенията някъде.
  2. Вашият бот може да бъде разговорен и може да допринесе за конци. Вижте някои NLP, за да започнете разбираем разговор! Word2Vec + TensorFlow или Keras може да са място за начало. DialogFlow също е страхотен.
  3. Свържете го с някои други API. Може би искате да можете да взаимодействате с Google Sheet и да извършите някои изчисления. Може да искате да изпратите съобщение на други потребители въз основа на някои действия. Интегриране на бутони. Може би искате да задействате съобщения въз основа на нещо друго.