Luo tämä löysä bot ja anna kanavallesi ystävällisempi tunnelma.

Uusien käyttäjien toivottaminen tervetulleeksi kanavallesi saa heidät tuntemaan olonsa kotoisaksi, mutta jokaisen liittyneen käyttäjän seuraaminen voi olla väsyttävää. Siellä tulee sisään Slackin tervetulobotti. Botti lähettää henkilökohtaisen tervetuloviestin jokaiselle uudelle kanavan käyttäjälle. Se on aina verkossa, joten myöhästyneitä tervetuloviestejä ei tule.

Opit määrittämään bottisi tunnistetiedot, kuuntelemaan tapahtumia Slackin kautta ja lähettämään viestejä takaisin käyttäjille.

Slack Botin luominen ja sen API-tunnuksen hankkiminen

Luo Slack tili tai kirjaudu sisään nykyiseen. Luo sitten a uusi Slack-työtila testataksesi bottisi ennen sen asentamista aktiiviseen työtilaan.

Kirjaudu uuteen työtilaan. Slack luo automaattisesti satunnaisen ja yleisen kanavan sinulle.

Huomaa App-osio työtilan vasemmassa alakulmassa. Tässä bottimme näkyy, kun luot sen. Navigoi kohtaan Slack API -verkkosivusto.

Klikkaa Luo sovellus. Luo sovellus Tyhjästä näkyviin tulevassa ikkunassa.

Nimeä sovelluksesi ja valitse työtila, jossa haluat kehittää sitä.

Napsauta sitten Luo sovellus -painiketta. Napsauttaminen ohjaa sinut sivulle, joka sisältää sovelluksesi perustiedot. Huomaa allekirjoituksen salaisuus sovelluksen kirjautumistietojen alla. Bottisi käyttää allekirjoitussalaisuutta varmistaakseen, että tapahtuma tuli Slackista ja että sitä ei ole peukaloitu lähetyksen aikana.

Siirry OAuth & Permissions -ominaisuuteen.

Siirry OAuth & Permissions -kohdassa kohtaan Bot Token Scopes. Tässä voit lisätä käyttöoikeudet sille, mitä bottisi voi tehdä työtilassasi. Lisää käyttäjät: lue laajuus. Tämän laajuuden avulla bottisi voi tarkastella ihmisiä työtilassasi. Lisää myös chat: kirjoita laajuus, jonka avulla bottisi voi lähettää viestejä työtilaan.

Siirry takaisin bottisi perustietoihin ja napsauta Asenna työtilaan.

Napsauta Salli seuraavalla näkyviin tulevalla sivulla. Olet nyt asentanut botin työtilaan. Siirry OAuth & Permissions -ominaisuuteen. Ota huomioon Bot User OAuth Token, jonka Slack luo asennuksen jälkeen. Botti näkyy työtilasi sovellusosiossa.

Nyt olet asentanut botin työtilaan, voit kirjoittaa koodin ohjataksesi sitä.

Ympäristösi valmistelu

Sinun täytyy olla perehtynyt Pythonin perusteet seurata näitä koodiesimerkkejä.

Luo uusi virtuaaliympäristö ja a .env tiedosto. Käytät .env-tiedostoa tunnuksesi ja allekirjoitussalaisuuden tallentamiseen, jotka sinun on pidettävä yksityisinä. Älä lataa .env-tiedostoa millekään julkiselle alustalle.

Asenna tarvittavat kirjastot suorittamalla seuraava komento päätteessä:

pip install slack-sdk pathlib dotenv flask slackeventsapi

Slack-sdk-kirjasto tarjoaa työkaluja Slack-sovellusten ja -integraatioiden rakentamiseen, mukaan lukien API-menetelmät, Web API -asiakkaat ja OAuth. pathlib ja dotenv auttavat sinua lataamaan ympäristömuuttujat. flask auttaa sinua käsittelemään HTTP-pyyntöjä ja vastauksia. slackeventsapi tarjoaa sinulle tapahtumakuuntelijan, joka vastaanottaa ja käsittelee tapahtumia Slackin kautta.

Täysi lähdekoodi on saatavilla a GitHub-arkisto.

Vaadittujen kirjastojen tuonti

Luo uusi Python-tiedosto ja aloita tuomalla aiemmin asentamasi kirjastot, jotta voit käyttää niiden toimintoja koodissasi.

tuonti slack_sdk kuten löysä
tuonti os
alkaen pathlib tuonti Polku
alkaen dotenv tuonti load_dotenv
alkaen pullo tuonti Pullo
alkaen slackeventsapi tuonti SlackEventAdapter

Pythonin käyttöjärjestelmämoduuli tulee kielen mukana, joten sinun ei tarvitse asentaa sitä. SlackEventAdapter on luokka slackeventsapi-moduulista, joka käsittelee tapahtumia Slack API: sta.

Slack Botin asentaminen

Luo kaksi muuttujaa .env-tiedostoon. Nimeä yksi SLACK_BOT_TOKEN ja määritä sille Bot User OAuth Token. Nimeä toinen SLACK_SIGNING_SECRET ja anna sille allekirjoitussalaisuus. Palaa Python-tiedostoon ja luo Flask-objekti. Lataa sitten ympäristömuuttujat .env-tiedostosta dotenv-moduulin load_dotenv-funktiolla.

app = Kolvi (__name__)
env_path = Polku('.') / ".env"
load_dotenv (dotenv_path=env_path)

Luo slack_event_adapter-esiintymä. Se käsittelee tapahtumia Slack API: sta käyttämällä SLACK_SIGNING_SECRET-ympäristömuuttujaa pyyntöjen todentamiseen.

slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/tapahtumat', sovellus)

/slack/events on päätepiste, jota Slack API käyttää tapahtumien lähettämiseen.

Luo WebClient-esiintymä, joka lähettää viestejä Slack API: lle. Soita API-kutsu hakeaksesi botin tunnuksen.

asiakas = löysä. WebClient (token=os.environ["SLACK_BOT_TOKEN"])
BOT_ID = client.api_call("auth.test")['käyttäjätunnus']

Määritä viesti, jonka lähetät kanavaan liittyville uusille käyttäjille. Alusta tyhjä joukko, joka pitää kirjaa tervetulleista käyttäjistä.

GREETING_MESSAGE = "Hei {user_name}, tervetuloa kanavalle {channel_name}" \
"kanava! Olemme innoissamme saadessamme sinut tänne."
tervetuloa_käyttäjät = set()

Voit muokata tervehdyksen mieleiseksesi.

Toiminnon luominen "Jäsen liittyi kanavaan" -tapahtuman käsittelemiseksi

Aseta tapahtumakuuntelija. Se kuuntelee member_joined_channel -tapahtumaa.

@slack_event_adapter.on('member_joined_channel')

Määritä toiminto, jota kutsut, kun käyttäjä liittyy kanavaan. Käytä toimintoa poimimaan käyttäjätunnus ja kanavatunnus tapahtumatiedoista. Tarkista, onko käyttäjä uusi kanavalla. Jos ei, hanki käyttäjä- ja kanavatiedot WebClient-luokan avulla. Luo henkilökohtainen tervehdysviesti. Lähetä tervehdys kanavalle

defhand_member_joined_channel(tapahtuman_tiedot):
user_id = tapahtuman_data['tapahtuma']['käyttäjä']
kanavatunnus = tapahtuman_data['tapahtuma']['kanava']

# Lähetä tervetuloviesti vain, jos käyttäjä on uusi
jos käyttäjätunnus eisisään welcomed_users:
tervetullut_käyttäjät.add (käyttäjätunnus)

user_info = client.users_info (user=user_id)
käyttäjän_nimi = käyttäjätiedot['käyttäjä']['nimi']

kanavan_tiedot = client.conversations_info (channel=channel_id)
kanavan_nimi = kanavan_tiedot['kanava']['nimi']

tervehdys = TERVEYSVIESTI.format (käyttäjänimi=käyttäjänimi,
kanavan_nimi=kanavan_nimi)

client.chat_postMessage (channel=channel_id, text=tervehdys)

Event_data sisältää kaikki tiedot tapahtumasta, jossa käyttäjä on liittynyt kanavaan.

Käynnistä Flask-sovellus ja suorita komentosarja. Jos suoritat pääohjelmana (ei tuotu moduulina), suorita virheenkorjaustilassa ja kuuntele portissa 5000.

jos __nimi__ == "__main__":
app.run (debug=Totta, portti=5000)

Virheenkorjaustila lataa sovelluksen automaattisesti uudelleen, kun teet muutoksia koodiin. Älä käytä virheenkorjaustilaa tuotantoympäristössä, se voi paljastaa arkaluonteisia tietoja ja tehdä sovelluksestasi alttiin hyökkäyksille. Suorita sovellus. Se toimii paikallisena palvelimena portissa 5000.

Logiikan yhdistäminen bottiin

Kun olet luonut logiikan, sinun on nyt muodostettava yhteys työtilasi bottiin. Näin se voi käyttää tätä logiikkaa toimintojen suorittamiseen työtilassasi. Aloita lataamalla ja suorittamalla Ngrok. Ngrok auttaa sinua paljastamaan paikallisen verkkopalvelimesi Internetiin.

Kun se on suoritettu, yhdistä paikallisen palvelimesi osoite Ngrokin osoitteeseen seuraavalla komennolla.

ngrok http 500

Kopioi Ngrokin osoite, joka liittyy paikalliseen isäntään.

Siirry Slack API -sivustolle. Alla Tapahtumatilaukset ominaisuus, ota tapahtumat käyttöön. Alla Pyydä URL-osoite kirjoita Ngrokin osoite ja sen jälkeen /slack/events. Tämä osoittaa päätepisteellesi.

Tilaa sitten Member_joined_channel -tapahtuma. Tämä ilmoittaa bottillesi aina, kun käyttäjä liittyy kanavaan. Klikkaa Tallenna muutokset. Slack lisää automaattisesti laajuudet, jotka tarvitset tilataksesi tämän tapahtuman. Aina kun muutat laajuutta, sinun on asennettava sovelluksesi uudelleen työtilaan.

Napsauta Asenna sovellus uudelleen.

Testaa bottiasi

Mene työtilallesi. Siirry kanavalle, jolla haluat käyttää bottia. Lähetä suora viesti bottiin. Esimerkiksi @Welcoming Bot. Näyttöön tulee kehote lisätä botti kanavalle. Napsauta lisää.

Nyt aina kun uusi käyttäjä liittyy kanavaan, botti lähettää tervetuloviestin.

Yllä olevassa kuvassa botti toivottaa uuden käyttäjän tervetulleeksi kanavalle.

Ota kaikki irti löyhästä työtilastasi

Slack-botit eivät ole ainoa tapa laajentaa Slackin viestintäalustan toimivuutta. Toinen tapa on integroida kolmannen osapuolen työkalut Slackiin. Ne tarjoavat lisätoimintoja alustan sisällä.

Tutustu näihin integraatioihin, sillä ne lisäävät tuottavuuttasi Slackin kanssa.