De Vishwa Shah

Actualizare: cod și tutorial actualizate pe 28 iunie pentru a reflecta modificările API-ului Slack.

Slackbots: De ce să le folosești?

Înainte de a intra în partea tutorială a acestei postări, să aruncăm o privire de ce poate fi un proiect și un instrument demn.

Slack este un instrument din ce în ce mai popular pentru comunicarea la nivelul întregii echipe. A crescut pentru a include pluginuri pentru alte instrumente de gestionare a proiectelor utilizate pe scară largă, cum ar fi JIRA, Google Drive și altele asemenea. Orice utilizator slăbă știe – cu cât puteți face mai mult din conversație, cu atât mai bine.

Utilizările obișnuite pentru un slackbot variază de la un simplu notificator pentru momentul în care o sarcină este finalizată (cum ar fi o construcție de testare sau când prânzul dvs. este gata) până la roboți interacționați, pe bază de butoane, care execută comenzi după dorința utilizatorului. Puteți construi mecanisme de sondare, roboți de conversație și multe altele.

ad-banner

Configurarea unui mediu de programare python

Cum sa construiti un slackbot de baza un ghid pentru

Dacă sunteți utilizator de Windows și nu ați folosit python înainte, va trebui instalare aceasta. Utilizatori Linux / Mac: Unix vine cu python!

Odată instalat, porniți terminalul și tastați python sau python3 (dacă aveți mai multe instalări) pentru a vă asigura că funcționează și că este acolo.

De asemenea, verificați dacă aveți un editor de text bun pentru cod: sublim și atom sunt alegeri grozave.

Opțional: ar putea fi, de asemenea, util să lucrați într-un mediu virtual – este o practică bună atunci când aveți o mulțime de dependențe.

pip install virtualenv
virtualenv tutorial
source tutorial/bin/activate
1611559625 884 Cum sa construiti un slackbot de baza un ghid pentru

De asemenea, ar trebui să bifurcați tutorial GitHub repo și clonați la mașina dvs. locală, deoarece vom folosi codul respectiv ca cadru pentru acest tutorial.

Pentru a face acest lucru, mergeți la repo și faceți clic pe Fork în dreapta sus. Repo bifurcat ar trebui să fie / slackbot-tutorial. Loveste verde Clone or download butonul din dreapta sub bara de statistici și copiați adresa URL. Reveniți la terminal pentru a clona depozitul:

cd Desktop/
git clone https://github.com/yourusername/slackbot-tutorial.git
cd slackbot-tutorial/
sublime . (or open your text editor and open this directory)

Aplicații Slack

Există două modalități de a crea creația dvs. slackbot: roboți independenți sau aplicații Slack. Aplicațiile permit o gamă mai largă de funcționalități în viitor și este ruta recomandată de Slack pentru crearea unui utilizator de bot.

Mergi la https://api.slack.com/apps și a lovit Create New App în dreapta sus. Dă-i un nume și alege un spațiu de lucru în care poți crea un canal pentru a-ți testa botul. Poți oricând să-ți reconfigurezi botul pentru un alt spațiu de lucru ulterior sau chiar să-l postezi în directorul de aplicații Slack.

Vă recomand să creați un canal #test într-un spațiu de lucru pe care îl creați doar în scopuri de dezvoltare sau unul care are relativ puțini utilizatori cărora nu le-ar deranja să testați ceva acolo.

Cum sa construiti un slackbot de baza un ghid pentru

Primul lucru pe care vrei să-l faci este să obții simbolul bot. Când ajungeți la pagina de mai sus, faceți clic pe Roboți. Adăugați câteva scopuri; acestea determină ce permisiuni va avea utilizatorul bot al aplicației dvs. A începe, chat: scrie și im: scrie sunt probabil suficiente.

1611559625 445 Cum sa construiti un slackbot de baza un ghid pentru

Acum, pentru a obține de fapt jetoanele, va trebui să mergeți la OAuth & Permissions în bara laterală stângă.

Aici vei putea Install the App to the Workspace și generați jetoanele necesare. De regulă, jetoane bot începe cu xoxb-.

Veți dori, de asemenea, saprinzând secretul, care se află sub Informații de bază> Acreditări de aplicație.

Acționând ca botul tău

Acum aveți acreditările necesare pentru a efectua apeluri API și a vă acționa ca bot. Pentru a testa acest lucru, declanșați un terminal și rulați acest lucru (cu simbolul corect și numele canalului):

curl -X POST 
     -H 'Authorization: Bearer xoxb-your-token' 
     -H 'Content-type: application/json;charset=utf-8' 
    --data '{"channel":"#test","text":"Hello, Slack!"}' 
https://slack.com/api/chat.postMessage

Dacă accesați acel canal din spațiul dvs. de lucru slab, ar trebui să vedeți acum un mesaj de la botul dvs.! Tocmai ați făcut o solicitare HTTP POST – ați cerut unui server să posteze un mesaj undeva.

Programarea botului

Vrem să facem programat cele de mai sus. Există câteva moduri diferite în care puteți configura un slackbot. Voi acoperi următoarele:

  • Declanșat periodic (pe un program) pentru a spune ceva
  • / comenzi slash

Al doilea necesită un server care rulează, în timp ce primul nu.

Mesaje programate

Să presupunem că doriți să trimiteți periodic un mesaj undeva – poate în fiecare luni dimineață. Accesați editorul de text unde ați deschis slackbot-tutorial.

Ar trebui să vedeți un fișier scheduled.py. Aruncați o privire: sendMessage este o funcție care declanșează apelul API pentru a relaxa și postează un mesaj. În partea de jos, veți vedea metoda principală: ce se execută când rulați scriptul. Aici veți vedea câteva lucruri de remarcat:

  • SLACK_BOT_TOKEN este tras din os.environ['SLACK_BOT_TOKEN'] – Cum? Alerga export SLACK_BOT_TOKEN="xoxb-your-token" în terminalul dvs. pentru a seta această variabilă.
  • aici se folosește un planificator și există o buclă infinită care verifică evenimente pe planificator. Implicit aici, am programat sendMessage funcție care trebuie apelată în fiecare minut.

Pentru a testa acest lucru, reveniți la terminalul în care vă aflați în slackbot-tutorial director și rulați

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

Ar trebui să vedeți tipărirea mesajelor jurnal. Asigurați-vă că v-ați schimbat channel=#test în cod la numele canalului de testare (dacă este diferit) și a adăugat botul dvs. (în canalul slack, tastați /invite @botname. Lasă-l să ruleze câteva minute și urmărește mesajele care apar pe Slack!

Aceasta este, desigur, o implementare super de bază a unui expeditor de mesaje programat – puteți face acest lucru doar cu slackbot /remind #test “Hello, Slack!” every Monday at 9am.

adevărata putere iată că puteți înlocui în orice funcție sendMessage, valorificând puterea interfeței cu serviciile externe prin API-uri, realizând matematică etc. și apoi construind un mesaj de postat.

Comenzi Slash

Aceasta necesită mai multă configurare – reveniți la dvs. setările aplicației > Comenzi Slash. Creați o nouă comandă slash: de exemplu, /test. Pentru adresa URL a solicitării, va trebui fie să implementați acest server web (folosesc Heroku), fie să rulați un local ngrok pentru a-l testa. Acesta din urmă îl va rula local și este cel mai bun pentru testare. Poti brew install ngrok sau obține-l de la aici.

În repoarea codului de pornire, căutați slashCommand.py pentru a începe să înțelegem această metodă. Pentru a porni serverul, rulați python server.py. Adresa URL de solicitare pentru a pune în Slack va fi dată de dvs. ngrok instanță și @app.route în codul dvs. – ar fi ceva de genul http://a1234b5cde6f.ngrok.io/slăbiciune / test (partea aldină provine de la ruta definită în cod). Ar trebui să puteți testa comenzile slash în spațiul de lucru Slack. Din codul tutorial, încercați /test.

A merge inainte

Acum aveți un slackbot foarte simplu, care fie operează pe o comandă, fie rulează din când în când. Fii creativ cu modul în care îl folosești! Gândiți-vă la ce altceva puteți lega acest schelet pentru a-l face mai util.

Alte moduri în care robotul dvs. ar putea răspunde

  1. Acțiunile / răspunsurile ar putea fi declanșate prin mențiuni sau anumite fraze. Acest lucru necesită rularea unui server și ascultarea mesajelor undeva.
  2. Botul dvs. ar putea fi conversațional și ar putea contribui la fire. Consultați câteva NLP pentru a începe să purtați o conversație inteligibilă! Word2Vec + TensorFlow sau Keras ar putea fi un punct de pornire. DialogFlow este, de asemenea, minunat.
  3. Conectați-l cu alte API-uri. Poate doriți să puteți interacționa cu o foaie Google și să executați câteva calcule. Poate doriți să trimiteți altor utilizatori un mesaj bazat pe unele acțiuni. Integra butoane. Poate doriți să declanșați mesaje bazate pe altceva.