Sådan oprettes en Meetup Slack-bot med Standard Library og Node.js

I denne vejledning lærer du, hvordan du indstiller en Slack-applikation, der viser oplysninger fra Meetups API, der serverer lagrede data fra Meetup til anden applikationssoftware.

Meetup er et populært websted, hvor personer med lignende interesser danner grupper til at arrangere begivenheder i deres lokale byer.

Når vi har sendt en anmodning til Meetups API, modtager vi et svar fra Meetup, vi trækker specifikke data fra JSON-nyttelasten og viser disse data i Slack. Vi designer vores Slack-applikations vedhæftede fil, så den viser begivenhedens navn, beskrivelse, dato og tid, placering og mere!

Hvordan det virker:

Når du sender / nextmeetup 94709 & javascript (eller et hvilket som helst postnummer og et emne af interesse) i Slacks meddelelsesboks, udløses en webhook. Webhooken, der er bygget og hostet på Standard Library, fremsætter først en anmodning til Meetups API, som returnerer en JSON nyttelast med resultater fra forespørgslen.

Webhooken opretter derefter Slack-meddelelser til hver begivenhed og poster dem til en specificeret kanal.

Ingen grund til at blive overvældet! Lad os tage det et skridt ad gangen.

Hvad du har brug for:

1x Slack-konto

1x Meetup-konto

1x Standardbibliotekskonto

Trin 1: Konfigurer din Slack Application

Sørg for, at du er logget ind på Slack, og besøg dit Slack Apps Dashboard på https://api.slack.com/apps. Du vil se en skærm, der ligner følgende.

Klik på Opret ny app. Du får præsenteret et modal til at indtaste dit appnavn og det udviklingsslækkede arbejdsområde, du gerne vil tilføje det til.

Herfra skal du klikke på Opret app, så finder du dig selv på en side med grundlæggende oplysninger.

Rul ned til Vis oplysninger. Det er her du kan give din Slack-app et navn, beskrivelse og et billede, hvis du vil.

Hold siden Basisoplysninger åben i din browser. Vi bruger det i et sekund til at hente din Slack-app's legitimationsoplysninger til at forbinde denne applikation til backend-logikken, der er hostet på Standardbiblioteket - koden, der kører din applikation.

Trin 2: Opret en gratis standardbibliotekskonto

Vi er vært for vores Slack-applikations kode i Standardbiblioteket - den kode, der anmoder om og modtager specifikke oplysninger fra Meetups API. Så gå videre til Code on Standard Library og kræv din gratis konto.

Trin 3: Kopier og rediger skabelonen til Slack App-koden i standardbiblioteket

Når du er logget ind eller tilmeldt dig, lander du på "Featured API Source." Dette er programkodeskabeloner, der er tilgængelige på Standardbiblioteket for enhver, der let kan kopiere og ændre apps. Du vil vælge skabelonen til Slack-applikationskoden og ændre den for at oprette din API, der får din Slack-app til kraft.

Indtast et unikt navn til dit API-projekt, og tryk på Okay.

En kort forklaring af Sourcecode-skabelonen til Slack-appen:

Lad os pause et øjeblik for at forstå, hvad vi ser på. Den venstre sidebjælke er et API-projektstillads, som Standardbibliotek har oprettet til at oprette Slack-apps.

Kodeskabelonen til Slack Apps har fire mapper. Vi arbejder kun inden for funktionsmappen, som er udstyret med tre flere mapper

handlinger /, kommandoer /, og begivenheder / samt en enkelt fil __main __. js. Instruktionerne for Slack-handlinger, skråstregskommandoer og begivenheder til din app lever i disse mapper.

Når du distribuerer din API genererer Standardbibliotek automatisk HTTPS-endepunkter (URL'er) for hvert bibliotek. De resulterende URL'er tillader os at konfigurere webhooks, der lytter og reagerer på Slacks handlinger, skråstregskommandoer og begivenheder.

Alle fem mapper (inklusive funktionsmappen er indstillet med en __main __. Js-fil (katalogets hovedendepunkt). Disse slutpunkter__main __. Js sender de relevante funktioner, når de modtager en meddelelse fra Slack. Til denne tutorial vil filen__main __. Js være udsendelse af kommandoens endepunkt, når vi kalder vores API via vores Slack Bot. Lad os nu vende tilbage til vores botopsætning!

Trin 4: Føj en kommando til dit Standard Library API

Opret en ekstra kommando

kommandoer: Kommandobiblioteket er slutpunktet for alle Slack slash-kommandoer. Opret en ekstra kommando ved at placere din markør over kommandobiblioteket og højreklikke. Vælg Ny fil, og navngiv din skråstreg-kommandofil nextmeetup.js, og klik på Okay.

Navngiv din kommando

På dette tidspunkt vil du bemærke en "hej verden" JavaScript-funktion inde (__main __. Js), som automatisk genereres.

Udskift indholdet af nextmeetup.js med følgende:

En kort forklaring af koden:

Når du sender / næste gang via din Slack-app, sender du en GET-anmodning til Meetups API.

Hver anmodning til Meetups API skal autentificeres med en API-nøgle, så vi videregiver vores Meetup-nøgle fra vores env.json-fil til vores anmodning. Vi sender også vores GET-anmodning med de to parametre, zip og emne.

Meetup-API'en returnerer en række meetup-begivenhedsobjekter, som vi kan se fra kode i standardbibliotekets logfiler ved at logge vores svar: console.log (response.data). Fanen Logfiler er placeret under fejlfindingsafsnittet.

Response.data er en række hændelser, der matcher din forespørgsel, og vi vil oprette to vedhæftede filer til hver begivenhed (en for placering og en for detaljer). Vi har en funktion kaldet formatAttachement, som vi kan kalde på hver af begivenhederne. Resultaterne sættes i en matrix kaldet vedhæftede filer, der bliver sendt til Slack.

Når du har kopieret og indsat koden i din fil nextmeetup.js, skal du gemme ændringerne og navigere til filen env.json i menuen til venstre bjælke.

Trin 5: Fyld din env.json-fil med app-legitimationsoplysninger og nøgler

Inde i env.json vil du bemærke miljøvariabler til din API. Du kan indstille forskellige værdier for lokale, dev og frigivelse (produktion) miljøer. Denne fil vil indeholde alle dine unikke adgangsnøgler til din Standard Library-konto, Meetup-konto og Slack-app-legitimationsoplysninger.

Vi foretager kun ændringer af de "dev" miljøvariabler - sørg for at ændre det rigtige sæt! Bemærk, at "dev" -værdier er til dit udviklingsmiljø, og "release" -værdier skal kun udfyldes, når du er klar til at frigive din app. "Lokale" variabler kan efterlades tomme, når de implementeres fra kode i standardbiblioteket, men de skal være udfyldt, når du arbejder med kommandolinjeværktøjerne.

Lad os starte med at udfylde variablen "STDLIB_TOKEN". Placer din markør mellem anførselstegnene (se skærmbilledet), og højreklik derefter og vælg Indsæt bibliotekstoken… eller brug genvejen ⌘ + K.

Vælg dit bibliotekstoken

Vælg Bibliotekstoken for at udfylde "dev" -miljø.

Gå nu tilbage til siden Basisoplysninger i din Slack App, og rul ned til App-legitimationsoplysninger:

Kopier dit klient-id, klienthemmelighed og verifikationstoken. Indsæt dem i deres respektive felter i “dev” -afsnittet i env.json-filen.

Tilføj det navn, du gav din Slack-app tilSLACK_APP_NAME.

Eks: SLACK_APP_NAME: Meetup-bot

Værdien "SLACK_REDIRECT" vil være et https-endepunkt genereret af Standard Library, når du implementerer dit API. Selvom vi endnu ikke er installeret, skal du gå videre med at udfylde det nu ved hjælp af denne struktur. https: // .api.stdlib.com / @ dev / auth / - med dit standardbibliotek-brugernavn og dit API-navn. Når vi implementerer koden, kan du vende tilbage for at bekræfte, at du har udfyldt denne værdi korrekt.

Min SLACK_REDIRECT ser sådan ud: https://Janethl.api.stdlib.com/[email protected]/auth/ - Sørg for at tilføje godkendelsessti med en skråstreg i slutningen.

Din Slack-app's muligheder og tilladelser er allerede konfigureret med følgende scopes:

”SLACK_OAUTH_SCOPE”: bot, kommandoer, chat: skriv: bot, chat: skriv: bruger, filer: skriv: bruger, kanaler: historie

Den sidste variabel, du skal tilføje, er din Meetup API-nøgle. Meetup kræver, at enhver anmodning autentificeres med en API-nøgle.

Trin 6: Hent din Meetup API-nøgle

Log ind eller opret en konto på Meetup.com. Gå videre til https://secure.meetup.com/meetup_api/key/ for at hente din unikke API-nøgle. Klik på låsen for at afsløre din API-nøgle og kopiere den.

Vend tilbage til din env.jsonfil på kode i standardbiblioteket. Tilføj din Meetup-nøgle som en "nøgle" -værdi, nøjagtigt som jeg har gjort på billedet:

Sørg for at gemme ændringerne med '⌘ + s' (eller tryk på Gem i nederste højre side).

I sidelinjen menuen pen __main __. Js fil placeret under begivenheds bibliotek. Distribuer koden på din Slack-app til Standardbiblioteket ved at klikke på "Kør".

  • Kort efter implementering af din kode genererer Standardbiblioteket en HTTPS API-endepunkt-URL, hvor din kode bor. Denne adresse består af dit .api.stdlib.com efterfulgt af det navn, du gav dit API @ miljøet: https://janethl.api.stdlib.com/[email protected]/

Vi har nu den URL, der giver os mulighed for at sende og modtage meddelelser fra vores Slack-app til Meetups API. Nu skal vi indstille vores URL som webhook i Slack, så lad os gå tilbage til Slack-appens betjeningspanel

Trin 7: Opret en ny skråstregskommando og indstil en webhook

Vi er nu nødt til at indstille vores Slack-app til at svare på en skråstregskommando (/). For dette skal vi opsætte en webhook på Slacks API-side.

Hvad er en webhook?

Måske kan vi forstå, hvad en webhook er ved at sammenligne den med en API. API'er er anmodningsbaseret - hvilket betyder, at de fungerer, når der fremsættes en anmodning fra en tredjepartsansøgning. En webhook er begivenhedsbaseret - koden kører, når en bestemt begivenhed udløser den.

For at indstille en webhook skal en tjenesteudbyder give sine forbrugere mulighed for at registrere en URL, hvor udbyderen kan sende oplysninger, når en begivenhed finder sted. I dette eksempel giver Slack os mulighed for at registrere vores URL-adresse, og når en slash-kommando først er registreret, kan den udløse vores webhook, som udfører koden i vores URL.

Nu hvor vi forstår dette, lad os gå over til Slacks API-side for at indstille vores webhook. Find og vælg Slash-kommandoer i sidefeltmenuen.

Når du har klikket på Opret ny kommando, bliver du bedt om at indtaste dine kommandodetaljer, til dette eksempel skal du bruge:

Kommando: / nextmeetup

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

Kort beskrivelse: henter Meetup-begivenheder

Tip om brug: [ & ]

Hit "Gem" når det er fuldført.

Trin 8: Aktivér OAuth & tilladelser

Vend tilbage til din Slack-app. Klik på OAuth & Permissions i sidebaremenuen.

Når du først er der, skal du indtaste en omdirigerings-URL som følger: https: // .api.stdlib.com / @ dev / Authority /

Klik på "Tilføj" og "Gem URL'er."

Denne omdirigerings-URL skal matche den URL, som vi har angivet i env.json-filen til kode på standardbibliotek.

Trin 9: Føj en bot til din Slack-app

Vend tilbage til din Slack App-side, og klik på Bot-brugere i venstre sidepanel. Klik på Tilføj bot-bruger. Behold standardindstillingerne.

Tilføj en Bot-bruger

Det sidste trin er at godkende appen. I din browser skal du skrive: https: // .api.stdlib.com / @ dev /

Klik på knappen Tilføj til slap. Du føres til en anden autorisationsskærm.

Klik på Autoriser. Du skal se en succesmeddelelse!

Trin 10: Test din Slack Meetup-applikation

Du er alt sammen færdig. Prøve det! Din Slack-app er nu tilgængelig til brug i det Slack-arbejdsområde, du godkendte den til. Din Slack-app skal svare på en / nextmeetup <94709> & , som jeg viser i skærmbilledet ovenfor.

Det er det & tak!

Jeg håber du fandt, at denne tutorial var nyttig. Jeg vil meget gerne have, at du kommenterer her, e-mail mig til Janeth [at] stdlib [dot] com, eller følg Standardbiblioteket på Twitter, @StdLibHQ.

Janeth Ledezma er en udvikleradvokat for Standardbibliotek og Cal grad - gå bjørne! Når hun ikke lærer det arabiske sprog eller træner, kan du finde hende på at udforske NorCal på hendes CBR500R. 🏍 Følg hendes rejse med Standardbibliotek gennem Twitter @mss_ledezma.