Com puc crear un bot Meetup Slack amb Standard Library i Node.js?

En aquesta guia, aprendreu a configurar una aplicació Slack que mostrarà informació de l'API Meetup i retransmetrà les dades desades de Meetup a altres programes d'aplicació.

Meetup és un lloc web popular on persones amb interessos similars formen grups per organitzar esdeveniments a les seves ciutats.

Quan hàgim fet una sol·licitud amb èxit a l’API Meetup, rebrem una resposta de Meetup, traient certes dades de la càrrega útil JSON i mostrant aquestes dades a Slack. Dissenyarem l’adjunt de la nostra aplicació Slack per mostrar el nom, la descripció, la data i l’hora, la ubicació i molt més de l’esdeveniment.

Com funciona:

Enviant / nextmeetup 94709 i Javascript (o qualsevol codi postal i tema d’interès) al quadre de missatges de Slack activarà un webhook. El webhook creat i allotjat a la biblioteca estàndard envia primer una sol·licitud a l’API Meetup, que retorna una càrrega útil JSON que conté els resultats de la consulta.

El webhook crea llavors missatges Slack per a cada esdeveniment i els envia a un canal específic.

No cal deixar-se aclaparar! Fem un pas a la vegada.

Què necessiteu:

1x compte de Slack

1 compte de Meetup

1x compte de biblioteca estàndard

Pas 1: configureu l'aplicació Slack

Assegureu-vos que hàgiu iniciat la sessió a Slack i visiteu el tauler de Slack Apps a https://api.slack.com/apps. Veureu una pantalla com aquesta.

Feu clic a Crea una aplicació nova. Se us proporcionarà un modal per introduir el nom de l'aplicació i l'espai de treball Development Slack al qual vulgueu afegir-lo.

Feu clic aquí a "Crea aplicació". Esteu a una pàgina d'informació bàsica.

Desplaceu-vos cap avall per veure la informació. Aquí és on podeu donar a la vostra aplicació Slack un nom, una descripció i una imatge si voleu.

Deixeu oberta la pàgina d'informació bàsica al navegador. En breu l’utilitzarem per obtenir les credencials de l’aplicació Slack i connectar aquesta aplicació a la lògica de fons allotjada a la Biblioteca estàndard, el codi que executa la vostra aplicació.

Pas 2: creeu un compte de biblioteca estàndard gratuït

Allotgem el nostre codi d’aplicació Slack a la biblioteca estàndard: el codi que sol·licita i rep certa informació de l’API Meetups. Així que aneu a Code on Standard Library i reclameu el vostre compte gratuït.

Pas 3: copieu i modifiqueu la plantilla de codi d'aplicació Slack a la biblioteca estàndard

Un cop hàgiu iniciat la sessió o hàgiu iniciat la sessió, se us dirigirà a la font d'API destacada. Es tracta de plantilles de codis d’aplicacions disponibles a la biblioteca estàndard perquè tothom pugui copiar i modificar aplicacions fàcilment. Seleccioneu la plantilla de codi d'aplicació Slack i modifiqueu-la per crear l'API que admeti l'aplicació Slack.

Introduïu un nom únic per al vostre projecte API i feu clic a D'acord.

Una breu explicació de la plantilla de codi font de l'aplicació Slack:

Fem una pausa un moment per entendre el que busquem. La barra lateral esquerra és un marc de projecte API que la Biblioteca estàndard va configurar per crear aplicacions Slack.

La plantilla de codi per a Slack Apps conté quatre directoris. Només treballarem dins del directori de funcions, que té tres carpetes addicionals

Accions /, Ordres / i Esdeveniments / així com un únic fitxer __principal __. js. Les instruccions per a accions de Slack, ordres de barra i esdeveniments de la vostra aplicació es troben en aquestes carpetes.

Quan desplegueu l'API, la biblioteca predeterminada genera automàticament punts finals (URL) HTTPS per a cada directori. Amb els URL resultants podem configurar webhooks que supervisen i actuen en accions, barres i esdeveniments de Slacks.

Les cinc carpetes (inclosa la carpeta de funcions) inclouen un fitxer __principal __. Configuració de Js (el punt final principal del directori). Aquests punts finals__main__. Els Js envien les funcions adequades quan reben un missatge de Slack Enviant el punt final de l'ordre quan trucem a la nostra API mitjançant el nostre bot Slack. Ara tornem a la configuració del bot.

Pas 4: afegiu una ordre a la vostra API de biblioteca estàndard

Creeu una ordre addicional

Ordres: el directori d'ordres és el punt final de totes les ordres Slash slash. Creeu una ordre addicional movent el cursor sobre el directori d’ordres i fent clic amb el botó dret. Seleccioneu Fitxer nou i anomeneu el fitxer d'ordres barra nextmeetup.js i feu clic a D'acord.

Indiqueu el vostre comandament

En aquest moment, veureu una funció JavaScript "Hello World" a (__main __. Js) que es genera automàticament.

Substituïu el contingut de nextmeetup.js pel següent:

Una breu explicació del codi:

Quan envieu / nextmeetup des de la vostra aplicació Slack, feu una sol·licitud GET a l’API Meetup.

Totes les sol·licituds a l’API Meetups s’han d’autenticar amb una clau d’API. Per tant, passem la nostra clau de trobada del nostre fitxer env.json a la nostra sol·licitud. També enviem la nostra sol·licitud GET amb els dos paràmetres zip i topic.

L’API Meetup retorna un conjunt d’objectes d’esdeveniment Meetup que podem veure des del codi dels registres de la biblioteca estàndard registrant la nostra resposta: console.log (response.data). La pestanya Registres es troba a la secció de depuració.

La resposta.data és un conjunt d'esdeveniments que coincideixen amb la vostra consulta i volem crear dos fitxers adjunts (un per a la ubicació i un per als detalls) per a cada esdeveniment. Tenim una funció anomenada formatAttachement que podem trucar per a cada esdeveniment. Els resultats es col·loquen en una matriu anomenada Adjunts que s’envia a Slack.

Després de copiar el codi i enganxar-lo al fitxer nextmeetup.js, deseu els canvis i aneu al fitxer env.json al menú de la barra esquerra.

Pas 5: empleneu el fitxer env.json amb les credencials i les claus de l'aplicació

El fitxer env.json conté variables d'entorn per a la vostra API. Podeu establir diferents valors per a entorns locals, entorns de desenvolupament i entorns de llançament (entorns de producció). Aquest fitxer conté totes les vostres claus d'accés exclusives per al compte de biblioteca predeterminat, el compte de Meetup i la vostra informació d'inici de sessió per a l'aplicació Slack.

Només farem canvis a les variables d'entorn "dev"; assegureu-vos de canviar el conjunt correcte. Tingueu en compte que els valors "dev" s'apliquen al vostre entorn de desenvolupament i que els valors "release" només s'han d'emplenar quan estigueu llest per llançar l'aplicació. Les variables "locals" poden romandre buides quan es proporcionen des del codi de la biblioteca estàndard, però haurien de ser-ho. S'emplenen quan es treballa amb les eines de línia d'ordres.

Comencem introduint la variable "STDLIB_TOKEN". Col·loqueu el cursor entre les cometes (vegeu la pantalla) i feu clic amb el botó dret del ratolí i seleccioneu Insereix un testimoni de biblioteca ... o utilitzeu la drecera de teclat ⌘ + K.

Seleccioneu el vostre testimoni de biblioteca

Seleccioneu el testimoni de biblioteca per omplir l'àrea "dev".

Ara torneu a la pàgina d'informació bàsica de l'aplicació Slack i desplaceu-vos cap avall fins a Credencials de l'aplicació:

Copieu la vostra identificació de client, secret de client i testimoni de confirmació. Enganxeu-los als camps adequats de la secció dev del fitxer env.json.

Afegiu el nom que heu donat a l'aplicació Slack per a SLACK_APP_NAME.

Exemple: SLACK_APP_NAME: Meetup-Bot

El valor SLACK_REDIRECT és un punt final https generat per la biblioteca estàndard tan bon punt desplegueu l'API. Fins i tot si encara no l’hem implementat, empleneu-lo ara amb aquesta estructura. https: // .api.stdlib.com / @ dev / auth / - amb el nom d'usuari i el nom de l'API per defecte de la biblioteca. Un cop proporcionem el codi, podeu tornar a confirmar que heu emplenat aquest valor correctament.

El meu SLACK_REDIRECT té aquest aspecte: https://Janethl.api.stdlib.com/[email protected]/auth/: assegureu-vos d'afegir el camí d'autenticació amb una barra inclinada al final.

Les funcions i els permisos de la vostra aplicació Slack ja estan configurats a les àrees següents:

"SLACK_OAUTH_SCOPE": bot, ordres, xat: escriptura: bot, xat: escriptura: usuari, fitxers: escriptura: usuari, canals: historial

L'última variable que heu d'afegir és la clau de l'API Meetup. Per a Meetup, totes les sol·licituds s’han d’autenticar amb una clau d’API.

Pas 6: obteniu la vostra clau d'API Meetup

Inicieu la sessió o creeu un compte Meetup.com. Visiteu https://secure.meetup.com/meetup_api/key/ per obtenir la vostra clau API única. Feu clic al bloqueig per veure i copiar la vostra clau API.

Torneu al fitxer env.jsonfile a Code on Standard Library. Afegiu la vostra clau Meetup com a valor "clau", tal com he fet a la imatge:

Assegureu-vos de desar els canvis amb "⌘ + s" (o feu clic a "Desa" a l'extrem inferior dret).

El fitxer __main__ es troba al llapis de menú de la barra lateral. Js al directori d'esdeveniments. Desplegueu el codi de l'aplicació Slack a la biblioteca estàndard fent clic a "Executa".

  • Poc després de desplegar el vostre codi, la biblioteca estàndard generarà un URL final de l'API HTTPS on es trobarà el vostre codi. Aquesta adreça consta de la vostra adreça .api.stdlib.com, seguit del nom que heu donat a la vostra API a la zona: https://janethl.api.stdlib.com/[email protected]/

Ara tenim l’URL que podem utilitzar per enviar i rebre missatges de la nostra aplicació Slack a l’API Meetup. Ara hem d’establir la nostra URL com a webhook a Slack. Tornem, doncs, al tauler de l’aplicació Slack

Pas 7: creeu una nova ordre barra i configureu un webhook

Ara hem de configurar la nostra aplicació Slack per respondre a una ordre barra (/). Per fer-ho, hem de configurar un webhook a la pàgina de l'API Slacks.

Què és un webhook?

Potser podem entendre què és un webhook comparant-lo amb una API. Les API es basen en requisits. Això vol dir que s’executaran quan es faci una sol·licitud des d’una aplicació de tercers. Un webhook es basa en esdeveniments. El codi s’executa quan un cert esdeveniment l’activa.

Per configurar un webhook, un proveïdor de serveis ha de permetre als seus consumidors registrar una URL que el proveïdor pot utilitzar per enviar informació quan es produeixi un esdeveniment. En aquest exemple, podem utilitzar Slack per registrar la nostra adreça URL. Tan bon punt es registri una barra inclinada, es pot activar el nostre webhook, que executa el codi de la nostra URL.

Ara que ho entenem, anem a la pàgina API de Slack per configurar el nostre webhook. Cerqueu i seleccioneu ordres de barra al menú de la barra lateral.

Després de fer clic a "Crea una ordre nova", se us demanarà els detalls de la vostra comanda. Per a aquest exemple, utilitzeu el següent:

Ordre: / nextmeetup

RequestURL: https: // .api.stdlib.com / @ dev / commands /: bg

Breu descripció: recupera esdeveniments de reunions

Nota d'ús: [ & ]

Feu clic a "Desa" quan hàgiu acabat.

Pas 8: activeu OAuth i permisos

Torneu a la vostra aplicació Slack. Al menú de la barra lateral, feu clic a OAuth i permisos.

Allà voleu introduir una URL de redirecció com aquesta: https: // .api.stdlib.com / @ dev / auth /

Feu clic a "Afegeix" i a "Desa els URL".

Aquest URL de redirecció ha de coincidir amb l'URL que hem definit al fitxer env.json a Codi de la biblioteca estàndard.

Pas 9: afegiu un bot a la vostra aplicació Slack

Torneu a la pàgina de l'aplicació Slack i feu clic a Bot Users a la barra lateral esquerra. Feu clic a Afegeix un usuari de bot. Conserveu la configuració predeterminada.

Afegiu un usuari de bot

L’últim pas és autoritzar l’aplicació. Introduïu el següent al vostre navegador: https: // .api.stdlib.com / @ dev /

Feu clic al botó Afegeix a Slack. Se us dirigirà a una altra pantalla d'autorització.

Feu clic a Autoritza. Hauríeu de veure un missatge d’èxit.

Pas 10: proveu l'aplicació Slack Meetup

Estàs acabat. Intenta-ho! La vostra aplicació Slack ara es pot utilitzar a l’espai de treball Slack que l’heu autoritzat. L’aplicació Slack hauria d’apuntar a un / nextmeetup <94709> i responeu tal com es mostra a la captura de pantalla anterior.

Ja està i gràcies!

Espero que aquest tutorial us sigui útil. M'encantaria que comenteu aquí, envieu un correu electrònic a Janeth [a] stdlib [punt] com, o si seguiu la Biblioteca estàndard a Twitter @StdLibHQ.

Janeth Ledezma és defensora de desenvolupadors de Standard Library i Cal Grad: go bears! Si no aprèn ni practica la llengua àrab, pot explorar NorCal amb el seu CBR500R. 🏍 Seguiu el seu viatge amb Standard Library a Twitter @mss_ledezma.