Kuinka rakentaa Meetup Slack -botti Standard Libraryn ja Node.js: n avulla

Tässä oppaassa opit määrittämään Slack-sovelluksen, joka näyttää tietoja Meetup-sovellusliittymästä, joka tarjoaa tallennetut tiedot Meetup-sovelluksesta muihin sovellusohjelmiin.

Meetup on suosittu verkkosivusto, jolla samankaltaiset kiinnostuksen kohteet muodostavat ryhmiä järjestämään tapahtumia paikallisissa kaupungeissa.

Kun olemme onnistuneesti esittäneet pyynnön Meetup-sovellusliittymälle, saamme vastauksen Meetupilta, me otamme erityiset tiedot JSON-hyötykuormasta ja näytämme nämä tiedot Slack-tilassa. Suunnittelemme Slack-sovelluksen liitetiedoston niin, että siinä näkyy tapahtuman nimi, kuvaus, päivämäärä ja aika, sijainti ja enemmän!

Kuinka se toimii:

Kun lähetät / seuraavameetup 94709 & javascriptin (tai postinumeron ja mielenkiintoisen aiheen) Slackin viestiruutuun, verkkohook käynnistyy. Standard Libraryssä rakennettu ja ylläpidetty webhook tekee ensin pyynnön Meetup's API: lle, joka palauttaa JSON-hyötykuorman kyselyn tuloksineen.

Webhook luo sitten löysät viestit jokaiselle tapahtumalle ja lähettää ne tietylle kanavalle.

Sinun ei tarvitse hukkua! Otetaan se askel kerrallaan.

Tarvitset:

1x löysä tili

1x Meetup-tili

1x vakiokirjastotili

Vaihe 1: Asenna Slack-sovellus

Varmista, että olet kirjautunut sisään Slackiin, ja käy Slack Apps -hallintapaneelissa osoitteessa https://api.slack.com/apps. Näet seuraavan näytön.

Napsauta Luo uusi sovellus. Sinulle annetaan modaali kirjoittaa sovelluksesi nimi ja Development Slack -työtila, johon haluat lisätä sen.

Napsauta tästä napsauttamalla Luo sovellus. Löydät itsesi perustietosivulta.

Vieritä alas kohtaan Näytä tiedot. Tässä voit antaa Slack-sovelluksellesi nimen, kuvauksen ja kuvan, jos haluat.

Pidä perustiedot-sivu auki selaimessa. Käytämme sitä toisessa vaiheessa hakeaksesi Slack-sovelluksesi käyttöoikeustiedot yhdistääksesi tämän sovelluksen vakiokirjastoon ylläpitämään taustaohjelmalogiikkaan - sovellustasi käyttävään koodiin.

Vaihe 2: Luo ilmainen vakiokirjastotili

Me isännöimme Slack-sovelluksemme koodia Standard Libraryssä - koodia, joka pyytää ja vastaanottaa erityistietoja Meetups API: lta. Joten siirry Code of Standard Libraryyn ja hanki ilmainen tili.

Vaihe 3: Kopioi ja muokkaa Slack App Code -mallia vakiokirjastossa

Kun olet kirjautunut sisään tai kirjautunut sisään, laskeudut Esiin tuotuun API-lähteeseen. Nämä ovat sovelluskoodimalleja, jotka ovat vakiokirjastossa kaikille käytettävissä, jotta sovellukset voidaan helposti kopioida ja muokata. Valitset Slack-sovelluskoodimallin ja muokkaat sitä luodaksesi sovellusliittymän, joka käynnistää Slack-sovelluksesi.

Kirjoita sovellusliittymäprojektillesi yksilöivä nimi ja paina Okei.

Lyhyt selitys Slack App Sourcecode -malliin:

Otetaan hetkeksi tauko ymmärtääksemme sitä, mitä katsomme. Vasen sivupalkki on sovellusliittymähanketeline, jonka Standard-kirjasto on asettanut sinulle rakentamaan Slack-sovelluksia.

Slack Apps -koodimallissa on neljä hakemistoa. Työskentelemme vain funktiohakemistossa, joka on varustettu vielä kolmella kansiolla

toiminnot /, komennot / ja tapahtumat / samoin kuin yksi tiedosto __main __. js. Ohjeet sovelluksesi löysästä toiminnasta, viivakomennoista ja tapahtumista sijaitsevat kyseisissä kansioissa.

Kun asennat sovellusliittymän, Standard Library luo automaattisesti HTTPS-päätepisteet (URL-osoitteet) jokaiselle hakemistolle. Tuloksena olevien URL-osoitteiden avulla voimme määrittää verkkojoukkoja, jotka kuuntelevat ja vastaavat Slackin toimiin, viivakomentoihin ja tapahtumiin.

Kaikki viisi kansiota (mukaan lukien funktiokansio) on asetettu __main __. Js-tiedostolla (hakemiston päätepiste). Nämä päätepisteet__main __. Js lähettävät asianmukaiset toiminnot, kun he saavat viestin Slackista. Tätä opetusohjelmaa varten tiedosto__main __. Js on lähettämällä komentojen päätepiste, kun soitamme sovellusliittymällemme Slack Bot -sovelluksen kautta. Palataanpa sitten bot-asetukseemme!

Vaihe 4: Lisää komento Standard Library -sovellusliittymään

Luo ylimääräinen komento

komennot: Komentokansio on kaikkien Slack slash -komentojen päätepiste. Luo ylimääräinen komento asettamalla osoitin komentohakemiston päälle ja napsauttamalla hiiren oikealla painikkeella. Valitse Uusi tiedosto ja nimeä viivakomennotiedostolle nextmeetup.js ja napsauta Okei.

Nimeä komento

Tässä vaiheessa huomaat "hello world" JavaScript-toiminnon (__main __. Js), joka luodaan automaattisesti.

Korvaa nextmeetup.js: n sisältö seuraavalla:

Lyhyt selitys koodista:

Kun lähetät / seuraavaan asetukseen Slack-sovelluksesi kautta, teet GET-pyynnön Meetup-sovellusliittymään.

Jokainen Meetups API -sovelluksen pyyntö on todennettava API-avaimella, joten siirrämme Meetup-avaimesi env.json-tiedostomme pyyntöön. Lähetämme myös GET-pyynnön kahdella parametrilla, zip ja aihe.

Meetup API palauttaa joukon meetup-tapahtumaobjekteja, joita voimme tarkastella koodista Standard Library -lokeissa kirjaamalla vastauksemme: console.log (response.data). Lokit-välilehti sijaitsee vianetsintäosan alla.

Response.data on joukko tapahtumia, jotka vastaavat kyselyäsi, ja haluamme luoda kaksi liitettä jokaiselle tapahtumalle (yksi sijaintia varten ja toinen yksityiskohtia varten). Meillä on toiminto nimeltään formatAttachement, jota voimme kutsua jokaiseen tapahtumaan. Tulokset sijoitetaan liitteiden joukkoon, joka lähetetään Slackiin.

Kun olet kopioinut ja liittänyt koodin tiedostoon nextmeetup.js, tallenna muutokset ja siirry vasemman palkin valikon env.json-tiedostoon.

Vaihe 5: Täytä env.json-tiedosto sovellustiedoilla ja avaimilla

Env.json-sovelluksen sisällä huomaat sovellusliittymäsi ympäristömuuttujat. Voit asettaa erilaisia ​​arvoja paikallisille, kehitys- ja julkaisuympäristöille. Tässä tiedostossa on kaikki yksilölliset käyttöavaimesi vakiokirjastotilillesi, Meetup-tilillesi ja Slack-sovelluksen käyttöoikeustiedoillesi.

Teemme vain muutoksia "dev" -ympäristömuuttujiin - varmista, että muokkaat oikeaa joukkoa! Huomaa, että "dev" -arvot ovat kehitysympäristöllesi ja "release" -arvot tulisi täyttää vain, kun olet valmis julkaisemaan sovelluksesi. "Paikalliset" muuttujat voidaan jättää tyhjiksi, kun niitä asennetaan Code: stä vakiokirjastoon, mutta niiden tulisi olla täytetty, kun työskentelet komentorivityökalujen kanssa.

Aloitetaan täyttämällä ”STDLIB_TOKEN” -muuttuja. Sijoita kohdistin lainausmerkkien väliin (katso näyttöä) ja napsauta hiiren kakkospainikkeella ja valitse Lisää kirjastotunnus… tai käytä pikavalintaa ⌘ + K.

Valitse kirjastotunnus

Valitse Library Token, kun haluat täyttää "dev" -ympäristön.

Palaa nyt Slack App -sovelluksen perustiedot -sivulle ja vieritä alas kohtaan Sovellustiedot:

Kopioi asiakastunnuksesi, asiakassalaisuus ja vahvistustunnus. Liitä ne vastaaviin kenttiin env.json-tiedoston dev-osioon.

Lisää nimi, jonka annoit Slack-sovellukselle tuotteelleSLACK_APP_NAME.

Esimerkki: SLACK_APP_NAME: Meetup-bot

”SLACK_REDIRECT” -arvo on https-loppupiste, jonka generoi Standard Library, kun olet asentanut sovellusliittymäsi. Vaikka meitä ei ole vielä käyttöön otettu, täytä nyt tämä rakenne. https: // .api.stdlib.com / @ dev / auth / - vakiokirjaston käyttäjänimellä ja sovellusliittymäsi nimellä. Kun olet asentanut koodin, voit palata vahvistaaksesi, että olet täyttänyt tämän arvon oikein.

SLACK_REDIRECT -sovellukseni näyttää tältä: https://Janethl.api.stdlib.com/[email protected]/auth/ - varmista, että lisäät todennuspolun viivalla lopussa.

Slack-sovelluksesi ominaisuudet ja käyttöoikeudet määritetään jo seuraavilla alueilla:

”SLACK_OAUTH_SCOPE”: bot, komennot, chat: kirjoita: bot, chat: kirjoitus: käyttäjä, tiedostot: kirjoitus: käyttäjä, kanavat: historia

Viimeisin lisättävä muuttuja on Meetup API-avaimesi. Meetup edellyttää, että jokainen pyyntö todennetaan API-avaimella.

Vaihe 6: Hae Meetup API-avain

Kirjaudu sisään tai luo tili Meetup.com. Siirry sivulle https://secure.meetup.com/meetup_api/key/ hakeaksesi yksilöllisen API-avaimesi. Napsauta lukitusta paljastaaksesi API-avaimesi ja kopioi se.

Palaa env.json-tiedostoosi koodikirjassa Standard Library. Lisää Meetup-avaimesi "avain" -arvoksi, aivan kuten olen tehnyt kuvassa:

Tallenna muutokset painikkeella '⌘ + s' (tai paina Tallenna oikeassa alakulmassa).

Sivupalkin valikkokynällä __main __. Js-tiedosto, joka sijaitsee tapahtumahakemiston alla. Asenna Slack-sovelluksesi koodi Standard-kirjastoon napsauttamalla “Suorita”.

  • Pian koodin käyttöönoton jälkeen Standard Library luo HTTPS API -pääteosoitteen URL-osoitteen, jossa koodisi asuu. Tämä osoite koostuu .api.stdlib.com, jota seuraa nimi, jonka annoit API @ -ympäristölle: https://janethl.api.stdlib.com/[email protected]/

Meillä on nyt URL, jonka avulla voimme lähettää ja vastaanottaa viestejä Slack-sovelluksesta Meetup-sovellusliittymään. Nyt meidän on asetettava URL-osoitteemme webhook-sovellukseen Slackissa, joten palataan takaisin Slack-sovelluksen hallintapaneeliin

Vaihe 7: Luo uusi viivakomento ja määritä Webhook

Meidän on nyt asetettava Slack-sovelluksemme vastaamaan vinoviivakomentoon (/). Tätä varten meidän on perustettava webhook Slacks API -sivulle.

Mikä on Webhook?

Ehkä voimme ymmärtää mitä webhook on vertaamalla sitä sovellusliittymään. Sovellusliittymät ovat pyyntöpohjaisia ​​- tarkoittavat, että ne toimivat, kun pyyntö tehdään kolmannen osapuolen sovelluksesta. Webhook on tapahtumapohjainen - koodi suoritetaan, kun tietty tapahtuma laukaisee sen.

Webhookin asettamiseksi palveluntarjoajan on annettava kuluttajilleen rekisteröidä URL-osoite, josta palveluntarjoaja voi lähettää tietoja tapahtuman tapahtuessa. Tässä esimerkissä Slack antaa meille mahdollisuuden rekisteröidä URL-osoitteemme, ja viivakomennon rekisteröinnin jälkeen voi laukaista webhookimme, joka suorittaa koodin URL-osoitteessamme.

Nyt kun ymmärrämme tämän, siirrytään Slackin API-sivulle asettaaksesi webhookimme. Etsi ja valitse sivupalkin valikosta Slash Command.

Kun olet napsauttanut Luo uusi komento, sinua pyydetään antamaan komento tiedot, tässä esimerkissä:

Komento: / seuraavameetup

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

Lyhyt kuvaus: hakee Meetup-tapahtumat

Käyttövihje: [ & ]

Paina “Tallenna”, kun olet valmis.

Vaihe 8: Ota OAuth ja käyttöoikeudet käyttöön

Palaa Slack App -sovellukseen, napsauta sivupalkki-valikossa OAuth ja käyttöoikeudet.

Kun olet siellä, haluat kirjoittaa uudelleenohjaus-URL-osoitteen seuraavasti: https: // .api.stdlib.com / @ dev / auth /

Napsauta Lisää ja Tallenna URL-osoitteet.

Tämän uudelleenohjaus-URL-osoitteen tulee vastata URL-osoitetta, jonka asetimme env.json-tiedostoon Koodin vakiokirjastossa.

Vaihe 9: Lisää robotti Slack App -sovellukseen

Palaa Slack App -sivullesi ja napsauta vasemman sivupalkin Bot-käyttäjiä. Napsauta Lisää bot-käyttäjä. Pidä oletusasetukset.

Lisää bot-käyttäjä

Viimeinen vaihe on valtuuttaa sovellus. Kirjoita selaimeesi: https: // .api.stdlib.com / @ dev /

Napsauta Lisää löysälle -painiketta. Sinut viedään toiselle valtuutusnäytölle.

Napsauta Valtuuta. Sinun pitäisi nähdä menestysviesti!

Vaihe 10: Testaa Slack Meetup -sovelluksesi

Olet kaikki valmis. Kokeile! Slack-sovelluksesi on nyt saatavana käytettäväksi Slack-työtilassa, jolle valtuutit sen. Slack-sovelluksesi pitäisi vastata / nextmeetup <94709> & -sovellukseen, kuten näen yllä olevassa kuvakaappauksessa.

Se on se & kiitos!

Toivottavasti löydät tämän oppaan hyödylliseksi. Haluaisin, että kommentit täällä, lähetä sähköpostia minuun Janeth [at] stdlib [dot] com tai seuraa standardikirjastoa Twitterissä, @StdLibHQ.

Janeth Ledezma on Standard Libraryn ja Cal grad -kehittäjän edustaja! Kun hän ei opiskele arabian kieltä tai treenaa, voit löytää hänet tutkimaan NorCalia hänen CBR500R: llä. 🏍 Seuraa hänen matkaa Standard Libraryn kautta Twitterin @mss_ledezma kautta.