Tänään keräämme improvisoiduista materiaaleista https://api.telegram.org/
. No, emme tee - ei, ei. Todellakin, laukussamme on ns. webhookit - Heidän avullaan emme tee pyyntöjä tiettyyn osoitteeseen, vaan vain lähetämme pyyntömme vastauksena meille pyyntöön. Eli kuten Odessassa - vastaamme kysymykseen kysymyksellä. Siksi Tietoliikennesovellusliittymä ei näy koodissamme.
VastuuvapauslausekeTässä artikkelissa mainittujen valtion järjestöjen nimet ovat kuvitteellisia, ja mahdolliset yhteensopivuus tosielämän organisaatioiden nimien kanssa ovat satunnaisia.
Joten teemme botin, joka toimittaa meille älykkäitä ajatuksia. Aivan kuten kuvassa:
Voit kokeilla sitä käytännössä - tässä on nimi: @SmartThoughtsBot. Huomaa painike "Liisan taito"? Tämä johtuu siitä, että botti on eräänlainen "kumppani" samannimiselle Alicen taito, eli se suorittaa samat toiminnot kuin Alicen taito ja kenties että he voivat elää rauhassa rinnakkain mainostaen toisiaan. Tietoja luomisesta Älykkään ajattelun taito artikkelissa kuvattu
Botin luominen
Haluaisin, että tästä opetusohjelmasta on hyötyä kaikille, mm. ja aloittelevat "bottien rakentajat". Siksi tässä osiossa kuvailen yksityiskohtaisesti kuinka luoda yleensä Telegrambotit. Niille, jotka eivät tarvitse näitä tietoja, siirry seuraaviin osiin.
Avaa sovellus Telegaram, kutsumme kaikkien robottien isäksi (heillä on kaikki kuin ihmisillä) - @BotFather - ja aluksi annamme hänelle / help -komennon virkistääksemme muistiamme siitä, mitä voimme tehdä. Nyt olemme kiinnostuneita joukkueesta / newbot.
Koska tässä kuvattu botti on jo luotu, luon esittelytarkoituksessa toisen botin hetkeksi (sen jälkeen poistan sen). Soitan hänelle DemoHabrBot. Nimet (käyttäjätunnus) kaikkien sähkerobottien on päätyttävä sanaan bot, esimerkiksi: MyCoolBot tai my_cool_bot Tämä on boteille. Mutta ensin, anna botille nimi (nimi) on tarkoitettu ihmisille. Nimi voi olla millä tahansa kielellä, sisältää välilyöntejä, sen ei tarvitse päättyä sanaan bot, eikä sen tarvitse edes olla ainutlaatuinen. Tässä esimerkissä kutsuin tätä bottia Demo Habr.
Valitse nyt nimi botille (käyttäjätunnus, boteille tarkoitettu). Kutsutaan sitä DemoHabrBot. Kaikki botin nimeen liittyvä (nimi) ei liity hänen nimeensä ollenkaan - käyttäjätunnus (tai pätee, mutta juuri päinvastoin). Kun olet luonut onnistuneesti ainutlaatuisen botin nimen, meidän on kopioitava ja tallennettava (tiukimmassa luottamuksessa!) kuvakaappauksessa näkyvä merkki punaisella nuolella. Sen avulla asennamme myöhemmin lähtevän Telegram'webhook meille Yandex-toiminto.
Ja nyt annamme käskyn kaikkien botien isälle: /mybotsja se näyttää meille luettelon kaikista luomistamme roboteista. Jätetään vastaleivottu botti toistaiseksi rauhaan Demo Habr (se luotiin osoittamaan, miten botteja luodaan, mutta käytämme sitä tänään muihin esittelytarkoituksiin) ja harkitse bottia Älykkäitä ajatuksia (@SmartThoughtsBot). Napsauta painiketta, jonka nimi on bottiluettelossa.
Täällä voimme asentaa bottimme. Napin painaminen Muokata… siirrymme yhden tai toisen vaihtoehdon muokkaamiseen. Esimerkiksi napsauttamalla painiketta Muokkaa nimeä voimme muuttaa botin nimen, sano sen sijaan Älykkäitä ajatuksia, kirjoita hulluja ideoita. Botpic - Tämä on botin avatar, täytyy olla vähintään 150 x 150 px. Kuvaus on lyhyt kuvaus, jonka käyttäjä näkee, kun botti käynnistetään ensimmäisen kerran, vastauksena kysymykseen: Mitä tämä botti voi tehdä? Meistä - vielä lyhyempi kuvaus, joka välitetään linkin kanssa bottiin (https://t.me/SmartThoughtsBot
) tai kun katselet sitä koskevia tietoja.
Meidän on vain määritettävä komennot. Voit tehdä tämän painamalla -painiketta Muokkaa komentoja. Standardoida käyttäjäkäytäntöjä Telegram suosittelee aina käyttämään kahta komentoa: /alkaa и /auta, ja jos botti tarvitsee asetuksia - ylimääräinen /settings-komento. Bottimme on yksinkertainen kuin pallo, joten se ei vielä vaadi asetuksia. Kirjoitamme kaksi ensimmäistä komentoa, jotka sitten käsittelemme koodissa. Nyt, jos käyttäjä kirjoittaa vinoviivan (vinoviiva: /) syöttökenttään, näkyviin tulee luettelo komennoista, joita hän voi valita nopeasti. Kaikki on kuten kuvassa: vasemmalla - asetamme komennot bot-isän kautta; oikealla, nämä komennot ovat jo bottimme käyttäjien saatavilla.
Yandex-toiminto
Nyt kun bottimme on luotu, siirrytään Yandex.Cloudluodaksesi toiminnon, joka suorittaa bot-koodimme. Jos et ole työskennellyt Yandex.Cloud lue materiaali
Siis konsolissa Yandex.Clouds valitse kohde vasemmanpuoleisesta navigointivalikosta Pilvitoiminnotja paina sitten -painiketta Luo funktio. Annamme sille nimen ja itsellemme - lyhyen kuvauksen.
Kun olet painanut painiketta luoda ja muutaman sekunnin kuluttua uusi toiminto tulee näkyviin kaikkien toimintojen luetteloon. Napsauta hänen nimeään - tämä vie meidät sivulle Arvostelu meidän toimintomme. Tässä sinun on otettava käyttöönOn) vaihtaa julkinen tehtäväjotta se saataisiin ulkopuolelta (for Yandex.Clouds) ja kenttien arvo Linkki puheluun и tunnisteen - Pidä se syvässä salassa kaikilta paitsi itseltäsi ja Telegramilta, jotta erilaiset huijarit eivät voi kutsua toimintoasi.
Siirry nyt käyttämällä vasenta valikkoa Toimittaja toimintoja. Otetaan hetkeksi sivuun omamme Älykkäitä ajatuksia, ja luo minimaalinen mallipohjatoiminto tarkistaaksesi bottimme suorituskyvyn... Tässä yhteydessä tämä toiminto on kuitenkin bottimme ... Lyhyesti sanottuna, nyt ja juuri tässä teemme yksinkertaisimman botin, joka "peilaa" ( eli lähetä takaisin ) käyttäjien pyyntöjä. Tätä mallia voidaan aina käyttää luotaessa uusia sähkebotteja varmistaaksesi yhteydenpidon Telegram'om toimii hyvin. Klikkaus Luo tiedosto, kutsu sitä index.js, ja verkossa Koodieditori liitä seuraava koodi tähän tiedostoon:
module.exports.bot = async (event) => {
const body = JSON.parse(event.body);
const msg = {
'method': 'sendMessage',
'chat_id': body.message.chat.id,
'text': body.message.text
};
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json'
},
'body': JSON.stringify(msg),
'isBase64Encoded': false
};
};
Yandex.Cloud-konsolissa sen pitäisi näyttää suunnilleen tältä:
Alla osoitamme sisääntulopiste - index.botMissä indeksi tämä on tiedostonimi (index.js) ja bot - funktion nimi (module.exports.bot). Jätä kaikki muut kentät "ennalleen" ja napsauta oikeassa yläkulmassa olevaa painiketta Luo versio. Muutaman sekunnin kuluttua tämä funktion versio luodaan. Pian testauksen jälkeen webhook, luomme uuden version − Älykkäitä ajatuksia.
Objektien tallennus
Nyt kun olemme perustaneet Yandex-toimintomennään, kun ollaan konsolissa Yandex.Clouds, luo ns. ämpäri (ämpäri, eli ämpäri venäjäksi, ei suinkaan kimppu) kuvatiedostojen tallentamiseen, joita käytetään botissamme Älykkäitä ajatuksia. Valitse vasemmasta navigointivalikosta Objektien varastointi, painaa nappia Luo ämpäri, anna sille nimi, esim. img-ämpäri, ja kaikkein tärkeimpänä, Lukuoikeus objekteihin tee se julkiseksi - muuten Telegram ei näe kuviamme. Kaikki muut kentät jätetään ennalleen. Painamme nappia Luo ämpäri.
Tämän jälkeen luettelo kaikista kauhoista saattaa näyttää suunnilleen tältä (jos tämä on ainoa ämpärisi):
Nyt ehdotan, että napsautat ämpärin nimeä ja luot sen sisään kansion kuvien tallennuksen järjestämiseksi eri sovelluksiin. Esimerkiksi sähkebotille Älykkäitä ajatuksia loin kansion nimeltä tg-bot-smart-ajatuksia (Ei mitään, ymmärrän tämän salauksen). Luo myös sellainen.
Nyt voit napsauttaa kansion nimeä, mennä siihen ja lähettää tiedostoja:
Ja napsauta tiedoston nimeä - hanki se URL käytettäväksi robotissamme ja yleensä missä tahansa (mutta älä julkaise tätä URL tarpeettomasti, koska liikennettä esineen säilytys veloitettu).
Tässä itse asiassa kaikki esineen säilytys. Nyt tiedät mitä tehdä, kun näet kehotteen ladata tiedostoja sinne.
Webhook
Nyt asennamme webhook – eli kun botti saa päivityksen (esimerkiksi viestin käyttäjältä) palvelimelta Telegram meidän sisään Yandex-toiminto pyyntö lähetetäänpyyntö) tietojen kanssa. Tässä on merkkijono, jonka voit liittää selaimen osoitekenttään ja päivittää sivun (tämä täytyy tehdä vain kerran): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Vaihda vain {bot_token} tokeniin, jonka saimme isäbotilta bottiamme luodessaan, ja {webhook_url} - päällä URL meidän Yandex-toiminnot. Odota hetki! Mutta RossKomsensuuri kieltää Venäjän federaation palveluntarjoajia toimittamasta osoitetta https://api.telegram.org
. Kyllä se on oikein. Mutta voit ajatella jotain. Loppujen lopuksi voit esimerkiksi kysyä isoäidiltäsi Ukrainassa, Israelissa tai Kanadassa - siellä ei ole "venäläisiä sensuuria", ja vain Jumala tietää, kuinka ihmiset elävät ilman sitä. Tämän seurauksena pyyntö-vastaus webhookia asennettaessa pitäisi näyttää tältä:
Testaus. Pitäisi peilata.
Tämä on totta. Onnittelumme - nyt Yandex-toiminto on tullut Telegram-botti!
Älykkäitä ajatuksia
Ja nyt teemme Smart Thoughtsia. Koodi on auki ja on päällä
Kloonaa projekti ja asenna riippuvuudet:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Tee tiedostoon tarvittavat muutokset index.js (valinnainen; et voi muuttaa mitään). Luoda vetoketju-arkisto, tiedoston kanssa index.js ja kansio solmu_moduulit sisällä esimerkiksi ns smart.zip.
Mene nyt konsoliin meidän luoksemme Yandex-toiminnot, valitse välilehti ZIP-arkisto, painaa nappia Valitse tiedostoja lataa arkistomme smart.zip. Napsauta lopuksi oikeassa yläkulmassa olevaa painiketta Luo versio.
Muutaman sekunnin kuluttua, kun toiminto on päivitetty, testaamme bottimme uudelleen. Nyt hän ei enää "peilaa", vaan välittää älykkäitä ajatuksia!
Siinä kaikki tältä päivältä. Muut artikkelit seuraavat. Jos olet kiinnostunut lukemaan tämän, tilaa ilmoitukset uusista artikkeleista. Voit tilata tästä tai Telegram- kanava
viittaukset
Lahjoitukset
Lähde: will.com