Kaip sukurti pagrindinį telegramos robotą naudojant „Python 3“

Kaip sukurti pagrindinį telegramos robotą naudojant „Python 3“

Jei esate „Telegram“ naudotojas, tam tikru momentu būtinai turėjote „pokalbį“ su „chatbot“. Nuostabiai pritaikomi „Telegram“ robotai siūlo daugybę privalumų-ar tai būtų automatizuotos užduotys, ar tiesiog linksmybės su žaidimais jūsų pokalbių grupėje.





Nors kai kuriems roboto kūrimas gali būti nelengvas uždavinys, tai tikrai nėra. Tinkamai suplanavę, „Telegram“ robotą galite paleisti greičiau nei per valandą! Štai kaip sukurti paprastą „Telegram“ robotą, kuris, kai būsite paraginti, išleis mielas interneto kačių nuotraukas.





Darbo pradžia

Šioje pamokoje naudosime „Python 3“ python-telegram-bot ir prašymus biblioteka, ir TheCatAPI .





Kiekvienas „Telegram“ robotas turi unikalų ženklą, padedantį jam bendrauti „Bot“ API kad galėtumėte naudoti programos pranešimų sąsają. „Bot“ API, viena populiariausių „Telegram“ funkcijų tarp kūrėjų, leidžia naudoti jos pranešimus kaip sąsają.

Atsisiųskite „YouTube“ vaizdo įrašą į „iPhone“ fotoaparato ritinį

Norėdami gauti simbolį, pradėkite pokalbį su @BotFather kuris, kaip rodo pavadinimas, yra oficialus robotas, leidžiantis kurti ir pritaikyti savo robotus. Galite pasiekti robotą naudodami nurodytą nuorodą arba ieškoti „@botfather“ „Telegram“.



Pokalbio metu sukurkite savo robotą įvesdami /newbot komandą. Toliau nustatykite savo roboto vardą ir naudotojo vardą (nusprendėme pavadinti savo @pawsomebot). Po to gausite unikalų jūsų robotui skirtą žetoną.

Dabar, kai turime visas būtinas sąlygas, laikas pereiti prie įdomios dalies!





Bibliotekų diegimas

Jei naudojate „Windows“, atidarykite komandų eilutę ir įveskite šias komandas:

pip install python-telegram-bot
pip install requests

Jei naudojate „MacOS“ arba „Linux“, naudokite šias komandas savo terminale. Be to, „Linux“ sistemoje įsitikinkite, kad esate prisijungę kaip vartotojas, turintis „sudo“ privilegijas.





pip3 install python-telegram-bot
pip3 install requests

Programos rašymas

Sukurkite naują aplanką savo kompiuteryje ir atidarykite jį mėgstamiausiame redaktoriuje. Sukurkite naują failą ir pavadinkite jį main.py. Šiame faile bus jūsų roboto šaltinio kodas.

Dabar importuokime anksčiau įdiegtas bibliotekas ir kai kurias jų integruotas funkcijas.

from telegram.ext import Updater, CommandHandler
import requests
import re

Nuo šiol programos srautas yra pasiekti „TheCatAPI“, gauti atsitiktinio vaizdo URL ir nusiųsti tą vaizdą į vartotojo pokalbį.

Pradėkime nuo vaizdo URL gavimo funkcijos, kurią galima padaryti naudojant užklausų modulį. Naudodami šią funkciją įkeliame „TheCatAPI“ pateikto atsitiktinio failo JSON duomenis ir ištraukiame jo URL, kad vėliau naudotume. Norėdami pamatyti JSON objekto formatą, eikite į https://api.thecatapi.com/v1/images/search naršyklėje. Jūs pastebėsite kažką panašaus:

[{'breeds':[],'id':'a8c','url':'url.jpg','width':800,'height':533}]

Atkreipkite dėmesį, kad JSON objektas yra masyvas, kuriame yra žodynas. Šiame žodyne yra URL su raktu „url“. Norėdami išgauti URL, turime nurodyti pirmąjį masyvo elementą, o tada atitinkamą raktą.

def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

Toliau turime nusiųsti šį vaizdą į vartotojo pokalbį. Tam mums reikalingas vaizdo URL ir unikalus vartotojo pokalbio ID. Norėdami tai padaryti, sukurkime apvyniojimo funkciją. Pirma, mes vadiname getUrl () . funkciją, kad gautumėte atsitiktinio vaizdo URL-šis URL keičiasi kiekvieną kartą, kai programa kartoja šią funkciją.

Po to gaunamas gavėjo vartotojo pokalbio ID, kuris nustato roboto tikslinę pranešimų vietą ir analizuoja URL per integruotą „Bot“ API Siųsti nuotrauką() funkcija.

def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

Norėdami sužinoti daugiau apie įvairias „Bot API“ integruotas funkcijas ir jų veikimą, nedvejodami peržiūrėkite „Telegram“ oficiali dokumentacija po šios pamokos.

Galiausiai sukurkime funkciją, valdančią bendrą roboto darbą. Ši funkcija, paprastai vadinama pagrindiniu (), yra ta vieta, kur mes siunčiame HTTP užklausą į „Bot“ API, naudodami žetoną, kurį gavome pamokos pradžioje, ir tada nustatome, kokia bus roboto vartotojo sąveika. Tokiu paprastu atveju, kaip mūsų, tai iš esmės reiškia roboto paleidimą ir iškvietimą sendImage () funkcija, kai to paprašo vartotojas.

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Jūsų galutinė programa turėtų atrodyti taip:

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Savo telegramos robotas

Sveikinu! Jūs sukūrėte savo stresą mažinantį robotą, kuris, paragintas, siunčia atvirojo kodo vaizdus iš mieliausių interneto kačių. Pabandykite paleisti programą ir įvesti /Miau savo roboto pokalbyje, kad jį suaktyvintumėte.

Nors tai gali būti paprastas robotas su ribotomis funkcijomis, jis parodo, kokia galinga yra „Telegram“ robotų kūrimo ekosistema. Galite pridėti bet kokį sudėtingų paprogramių ir funkcijų skaičių, kad padidintumėte savo roboto funkcionalumą-dangus yra riba. Norėdami sužinoti daugiau apie nuostabius „Telegram“ robotus, kuriuos bendraautoriai sukūrė per daugelį metų, apsilankykite mūsų naudingų „Telegram“ robotų sąrašas .

Taip pat tokiose platformose kaip „GitHub“ galite rasti įvairių atvirojo kodo licencijuotų programų, skirtų „Telegram“ robotams. Dauguma atvirojo kodo licencijų leidžia naudoti, studijuoti, atsisiųsti ar keisti programos šaltinio kodą.

Priglobkite savo telegramos robotą internete

Dabar, kai jūsų robotas yra paleistas ir paleistas, pabandykite uždaryti main.py savo kompiuteryje ir naudokite robotą savo „Telegram Messenger“ programoje. Ar jis vis dar reaguoja į /Miau komandą? Ne, ne.

Kaip pradedantysis, jums gali kilti painiava, kodėl jūsų kompiuteryje turi veikti ir veikti „main.py“, kai jau sukūrėte internete veikiantį robotą. Taip yra todėl, kad programa naudoja jūsų kompiuterį kaip vietinį serverį, kad išsiųstų HTTP užklausas į šioje programoje naudojamas API.

Taigi, paleisti programą kiekvieną kartą, kai norite naudoti programą, nėra nei įmanoma, nei patogu. Norėdami išspręsti šią problemą, turime pašalinti roboto priklausomybę nuo jūsų įrenginio

Vienas iš būdų tai padaryti yra naudoti nebrangią spausdintinę plokštę (PCB), tokią kaip „Raspberry Pi“, kad sukurtumėte savo žiniatinklio serverį ir naudotumėte jį savo programai paleisti. Ji turi tuos pačius pranašumus, kaip programos paleidimas kompiuteryje be išlaidų, kad ji būtų veikiama visą dieną ir naktį, nes PCB paprastai turi žymiai mažesnį energijos pėdsaką.

Arba taip pat galite įdiegti savo programą debesyje. Eikite į žiniatinklio programų prieglobos platformą, tokią kaip „Heroku“, „AWS“, „Google Cloud“ ar „Microsoft Azure“, ir pasirinkite geriausiai jūsų poreikius atitinkančią prenumeratą. Rekomenduojame pasirinkti nemokamą bandomąją versiją ar prenumeratą ir ją atnaujinti, didinant programos mastą ar apimtį.

Dalintis Dalintis „Tweet“ Paštu Kaip nemokamai priglobti savo „Python“ svetainę „Heroku“

Reikia nemokamai priglobti nedidelę svetainę? Heroku gali būti būtent tai, ko ieškote.

Skaityti toliau
Susijusios temos
  • Programavimas
  • Python
  • Telegrama
  • „Chatbot“
  • Socialinės žiniasklaidos robotai
Apie autorių Yash Chellani(Paskelbta 10 straipsnių)

Yash yra trokštantis informatikos studentas, mėgstantis kurti dalykus ir rašyti apie visas technologijas. Laisvalaikiu jis mėgsta žaisti skvošą, skaityti naujausio „Murakami“ egzempliorių ir medžioti drakonus „Skyrim“.

Daugiau iš Yash Chellani

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia