Bevezetés
A vonzó beszélgetésekhez az automatizált chatbot igazán előnyös. Olyan platformokon, mint a Facebook, a Google és mások, fejleszthetünk chatbotokat. Ebben az oktatóanyagban megtudjuk, hogyan hozhatunk létre Telegram chatbotot, és hogyan készíthetünk vele szöveges üzeneteket gazdag válaszokkal.
Itt megtudjuk, hogyan kaphatunk különböző típusú válaszokat a bottól, például:
- szöveg
- Kép
- videó
- dokumentum
- Audio
- Szavazás
- Gyors válasz gombok
- Gombok a linkekkel
A Telegram Bot létrehozásának lépései
Kövesse az alábbi utasításokat a Telegram chatbot létrehozásához.
1 lépés: Nyissa meg táviratfiókját, és a keresősávba írja be a „BotFather” kifejezést.
2 lépés: Kattintson a „BotFather” elemre, majd kattintson a „Start” gombra.
3 lépés: Írja be: „/newbot”.
4 lépés: Írja be egyedi robotnevét.
5 lépés: Most írjon be egy egyedi felhasználónevet a robotjához.
Ne feledje: a felhasználónévnek "bot"-ra kell végződnie. Pl. 'Tetris_bot' vagy 'Tetrisbot'.
Lépés 6: Egyedi felhasználónév megadása után az alábbihoz hasonló üzenetet fog kapni. tartalmaz egy tokent a HTTP API eléréséhez. Tartsa biztonságban a tokent, és tárolja biztonságosan.
7 lépés: Lombik alkalmazás létrehozása a webhook válaszhoz.
Először is telepítenie kell a pythont és a flaskot a számítógépére.
$ pip telepítse Lombik
Az alábbiakban található az alap lombik alkalmazás futtatásához szükséges kód.
lombik importból Lombik
app = Lombik(__name__)
@app.route('/')
def index():
Visszatérés " Üdvözöljük! "
ha __név__ == '__fő__':
app.run(threaded=True)
Futtassa ezt a kódot annak ellenőrzéséhez, hogy a lombik alkalmazás megfelelően fut-e vagy sem. Amikor futtatja a kódot, megkapja a linket a szerverhez, például " http://127.0.0.1:5000/ Kattintson erre a linkre, akkor átirányítunk arra a weboldalra, ahol az „Üdvözlünk!”
Lépjen az Ngrok-ba, és írja be az „ngrok http 5000” parancsot a parancs futtatása után, és megkapja a hivatkozásokat.
Ebből az Ngrok hivatkozásokból másolja ki a HTTPS hivatkozást, és illessze be a böngészőjébe. Látni fogja az „Üdvözlünk!” választ! ugyanaz, mint az előző lépésben.
9 lépés: Webhook beállítása.
Most be kell állítania a webhookot a távirat-bothoz.
Ezt úgy teheti meg, hogy futtatja a hivatkozást a böngészőjében.
https://api.telegram.org/bot<Your Bot Token>/setWebhook?url=<URL that you got from Ngrok>
Miután futtatta a hivatkozást a webböngészőben, az alábbi képen látható választ kapja.
10 lépés: JSON-válasz kérése.
Most meg kell kapnunk a JSON-választ a távirat-bottól minden olyan szöveghez, amelyet a botnak írunk.
Most nyissa meg a VS Code-ot, és adja hozzá a következő kódot, és futtassa ugyanazon az Ngrok hivatkozáson, amelyen az előző kódot futtatta.
lombik importból Lombik
lombik behozatali kérelemből
lombikimportálási válaszból
importkérések
app = Lombik(__name__)
@app.route('/', method=['GET', 'POST'])
def index():
if request.method == 'POST':
msg = request.get_json()
nyomtatás (üzenet)
return Response('ok', status=200)
más:
Visszatérés " Üdvözöljük! "
ha __név__ == '__fő__':
app.run(debug=True)
A BotFatherben, ahol megkapja a Telegram csevegőbotjának tokent, megadhatja az URL-címet is, hogy átirányítsa a Telegram robotjára.
Ezt követően kattintson a gombra Indítsa el a Botot hogy elindítsa a csevegést a bottal. Ezután írjon be bármilyen üzenetet, például „tesztbot” vagy bármit, amit szeretne.
Miután beírta a „test bot” kifejezést a botjára, lépjen a Vscode-ba, és a következő JSON-t fogja elhelyezni a termináljában.
Itt láthatjuk, hogy a táviratbotnak írt üzenetet a háttérben kapjuk meg szöveges formában.
11 lépés: küldje el a szöveges üzenetet a bottól.
Megírjuk a kódot, hogy megkapjuk a „szia” üzenetre adott választ a felhasználótól, és ha a „szia”-n kívül bármi mást imputálunk, akkor a „webhook-tól” választ kapjuk.
Az üzenet küldése során egy extra paramétert is hozzáadhat, amelyhez követheti a Dokumentáció.
lombik importból Lombik
lombik behozatali kérelemből
lombikimportálási válaszból
importkérések
TOKEN = " "
app = Lombik(__name__)
def parse_message(message):
print("üzenet-->",üzenet)
chat_id = üzenet['üzenet']['csevegés']['id']
txt = üzenet['üzenet']['szöveg']
print("chat_id-->", chat_id)
print("txt-->", txt)
vissza chat_id,txt
def tel_send_message(chat_id, text):
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
hasznos teher = {
'chat_id': chat_id,
'szöveg': szöveg
}
r = kérések.post(url,json=payload)
r visszatérés
@app.route('/', method=['GET', 'POST'])
def index():
if request.method == 'POST':
msg = request.get_json()
chat_id,txt = parse_message(msg)
if txt == "szia":
tel_send_message(chat_id"Szia!!")
más:
tel_send_message(chat_id,'webhookból')
return Response('ok', status=200)
más:
Visszatérés " Üdvözöljük! "
ha __név__ == '__fő__':
app.run(debug=True)
Az alábbi választ kapjuk a Telegram Botban.
12 lépés: Szerezd meg a képet.
Most már a telegram botból is megkaphatjuk a képet.
A képek küldésére szolgáló funkció hozzáadásával a kódban.
További paraméterekért kövesse a Dokumentáció.
lombik importból Lombik
lombik behozatali kérelemből
lombikimportálási válaszból
importkérések
TOKEN = " "
app = Lombik(__name__)
def tel_parse_message(message):
print("üzenet-->",üzenet)
próbálja ki:
chat_id = üzenet['üzenet']['csevegés']['id']
txt = üzenet['üzenet']['szöveg']
print("chat_id-->", chat_id)
print("txt-->", txt)
vissza chat_id,txt
kivéve:
print("NINCS szöveg-->>")
def tel_send_message(chat_id, text):
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
hasznos teher = {
'chat_id': chat_id,
'szöveg': szöveg
}
r = kérések.post(url,json=payload)
r visszatérés
def tel_send_image(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendPhoto'
hasznos teher = {
'chat_id': chat_id,
'fotó': "https://raw.githubusercontent.com/fbsamples/original-coast-clothing/main/public/styles/male-work.jpg",
'caption': "Ez egy mintakép"
}
r = kérések.post(url, json=payload)
r visszatérés
@ app.route('/', method=['GET', 'POST'])
def index():
if request.method == 'POST':
msg = request.get_json()
próbálja ki:
chat_id, txt = tel_parse_message(msg)
if txt == "szia":
tel_send_message(chat_id"Szia, világ!")
elif txt == "kép":
tel_send_image(chat_id)
más:
tel_send_message(chat_id, 'webhookból')
kivéve:
print("indexből-->")
return Response('ok', status=200)
más:
Visszatérés " Üdvözöljük! "
ha __név__ == '__fő__':
app.run(threaded=True)
Íme a válasz, amelyet a táviratból fog kapni.
13 lépés: Hang beszerzése.
Hasonló módon küldhet hangot a táviratnak. További paraméterekért kövesse a Dokumentáció.
def tel_send_audio(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendAudio'
hasznos teher = {
'chat_id': chat_id,
"audio": "http://www.largesound.com/ashborytour/sound/brobob.mp3",
}
r = kérések.post(url, json=payload)
r visszatérés
Adja hozzá ezt a kódot az indexfüggvényhez.
elif txt == "audio":
tel_send_audio(chat_id)
Lépés 14: Videó letöltése.
Adja hozzá a kódot, hogy a videó a távirathoz kerüljön. További paraméterek hozzáadásához kövesse a Dokumentáció.
def tel_send_video(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendVideo'
hasznos teher = {
'chat_id': chat_id,
"videó": "https://www.appsloveworld.com/wp-content/uploads/2018/10/640.mp4",
}
r = kérések.post(url, json=payload)
visszatérés
Adja hozzá ezt a kódot az indexfüggvényhez.
elif txt == "videó":
tel_send_video(chat_id)
A következő választ kapja a táviratában.
15 lépés: Szerezze be a fájlt.
Adja hozzá a kódot, hogy a fájl a távirathoz kerüljön. További paraméterek hozzáadásához kövesse a Dokumentáció.
def tel_send_document(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendDocument'
hasznos teher = {
'chat_id': chat_id,
"dokumentum": "http://www.africau.edu/images/default/sample.pdf",
}
r = kérések.post(url, json=payload)
r visszatérés
Adja hozzá ezt a kódot az indexfüggvényhez.
elif txt == "fájl":
tel_send_document(chat_id)
A következő választ kapja a táviratában.
Lépés 16: Kérj szavazást.
Adja hozzá a kódot, hogy a Poll a távirathoz kerüljön. További paraméterek hozzáadásához kövesse a Dokumentáció.
def tel_send_poll(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendPoll'
hasznos teher = {
'chat_id': chat_id,
"question": "Melyik irányba kel a nap?",
"opciók": json.dumps(["Észak", "Dél", "Kelet", "Nyugat"]),
"is_anonymous": Hamis,
"type": "kvíz",
"correct_option_id": 2
}
r = kérések.post(url, json=payload)
r visszatérés
Adja hozzá ezt a kódot az indexfüggvényhez.
elif txt == "poll":
tel_send_poll(chat_id)
A következő választ kapja a táviratában.
17 lépés: Get gomb.
Adja hozzá a kódot, hogy a Gombot a távirat-bothoz kapja.
def tel_send_button(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
hasznos teher = {
'chat_id': chat_id,
'text': "Mi ez?",
'reply_markup': {'billentyűzet': [[{'text': 'supa'}, {'text': 'mario'}]]}
}
r = kérések.post(url, json=payload)
r visszatérés
Adja hozzá ezt a kódot az indexfüggvényhez.
elif txt == "gomb":
tel_send_button(chat_id)
A következő választ kapja a táviratában.
18 lépés: Szerezze be a beágyazott gombot.
Adja hozzá a kódot, hogy az Inline Button a távirathoz kerüljön.
def tel_send_inlinebutton(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
hasznos teher = {
'chat_id': chat_id,
'text': "Mi ez?",
'reply_markup': {
"inline_keyboard": [[
{
"text": "A",
"callback_data": "ic_A"
},
{
"text": "B",
"callback_data": "ic_B"
}]
]
}
}
r = kérések.post(url, json=payload)
r visszatérés
Adja hozzá ezt a kódot az indexfüggvényhez.
elif txt == "inline":
tel_send_inlinebutton(chat_id)
Táviratijában a következő választ kapja.
19 lépés: Szerezze meg a beágyazott gomb URL-címét.
Adja hozzá a kódot, hogy az Inline Button a távirathoz kerüljön.
def tel_send_inlineurl(chat_id):
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
hasznos teher = {
'chat_id': chat_id,
'text': "Melyik linket szeretné meglátogatni?",
'reply_markup': {
"inline_keyboard": [
[
{"text": "google", "url": "http://www.google.com/"},
{"text": "youtube", "url": "http://www.youtube.com/"}
]
]
}
}
r = kérések.post(url, json=payload)
r visszatérés
Adja hozzá ezt a kódot az indexfüggvényhez.
elif txt == "inlineurl":
tel_send_inlineurl(chat_id)
A következő választ kapja a táviratában.
További információkért kövesse a Telegram Bot Api dokumentáció.
Lépés 20: Oszd meg a képet a bottal, és szerezd be a szerveroldalon.
Először is megosztjuk a képet a bottal, és megnézzük, milyen típusú JSON-t kapunk a szerveroldalunkon.
Amint látjuk, egy fájlazonosítót kapunk a fájlhoz, amelyet a távirat-botnak küldünk. Most megkapjuk a kép fájlazonosítóját.
def tel_parse_get_message(message):
print("üzenet-->",üzenet)
próbálja ki:
g_chat_id = üzenet['üzenet']['csevegés']['id']
g_file_id = üzenet['üzenet']['fotó'][0]['fájl_azonosító']
print("g_chat_id-->", g_chat_id)
print("g_image_id-->", g_file_id)
vissza g_file_id
kivéve:
print("NEM található fájl -->>")
Most az index függvényben az adott függvény meghívásával kinyomtathatjuk a chat-azonosítót és a fájlazonosítót.
file_id = tel_parse_get_message(msg)
Az alábbiakban megkapjuk a választ.
Most a képhez kapott fájlazonosítót fogjuk használni, hogy megkapjuk a táviratszerveren tárolt kép fájl elérési útját.
Ehhez át kell irányítanunk egy másik URL-re, és át kell adnunk neki a fájlazonosítónkat, mert létrehoztunk egy függvényt.
def tel_upload_file(file_id):
url = f'https://api.telegram.org/bot{TOKEN}/getFile?file_id={file_id}'
a = kérések.post(url)
json_resp = json.loads(a.content)
print("a-->",a)
print("json_resp-->",json_resp)
file_pathh = json_resp['eredmény']['file_path']
print("fájl_útvonal-->", fájl_útvonala)
url_1 = f'https://api.telegram.org/file/bot{TOKEN}/{file_pathh}'
b = kérések.get(url_1)
file_content = b.tartalom
with open(file_path, "wb") mint f:
f.write(file_content)
Meg kell hívnunk az általunk létrehozott függvényt is.
file_id = tel_parse_get_message(msg)
tel_upload_file(file_id)
Itt a függvényben először megpróbáljuk megszerezni a fájl elérési útját a JSON-ból megosztott képhez.
Miután megkaptuk a fájl elérési útját, megpróbáljuk lekérni a fájlt a távirat-szerverről úgy, hogy átirányítjuk a fájl elérési útját az „url_1” címre.
Az „url_1” címről megpróbáljuk menteni a fájlt a számítógépünkre.
A szerver oldalon a nyomtatást és a JSON-t fogja látni, mint ez.
Itt van a könyvtár, ahová a kódunkat írjuk. Létre kell hoznunk egy "" nevű mappát képek “, hogy a botnak elküldött képet közvetlenül a rendszerünkben kaphassuk meg.
21 lépés: Most megpróbálunk hozzáadni egy videót a távirat-bothoz.
Amikor elküldjük a videót a botnak, akkor különböző típusú JSON-okat kapunk. Tehát ki kell bontani belőle a fájlazonosítót.
Ezt a következő kód segítségével lehet megtenni.
def tel_parse_get_message(message):
print("üzenet-->",üzenet)
nyomtatás ("1")
próbálja ki:
g_chat_id = üzenet['üzenet']['csevegés']['id']
g_file_id = üzenet['üzenet']['fotó'][0]['fájl_azonosító']
print("g_chat_id-->", g_chat_id)
print("g_image_id-->", g_file_id)
vissza g_file_id
kivéve:
próbálja ki:
g_chat_id = üzenet['üzenet']['csevegés']['id']
g_file_id = üzenet['üzenet']['videó']['fájl_azonosítója']
print("g_chat_id-->", g_chat_id)
print("g_video_id-->", g_file_id)
vissza g_file_id
kivéve:
print("NEM található fájl -->>")
Most itt is hasonló módon kibontjuk a fájl azonosítóját és átadjuk a függvénynek, majd megkapjuk a fájl elérési útját és eltároljuk a videót a szerveroldalunkon.
A videó tárolásához létre kell hoznunk a mappa nevét " videók “ amelyben tárolhatjuk a videót.
22 lépés: Most hasonló módon tudjuk megtenni a hangot és a fájlokat.
A hang tárolásához létre kell hoznunk egy "" nevű mappát zene ".
A dokumentumok tárolásához létre kell hoznunk egy "" nevű mappát dokumentumok ".
Itt hasonló módon ki kell bontani a fájlazonosítót, és át kell adni a file_upload függvénynek.
def tel_parse_get_message(message):
print("üzenet-->",üzenet)
próbálja ki:
g_chat_id = üzenet['üzenet']['csevegés']['id']
g_file_id = üzenet['üzenet']['fotó'][0]['fájl_azonosító']
print("g_chat_id-->", g_chat_id)
print("g_image_id-->", g_file_id)
vissza g_file_id
kivéve:
próbálja ki:
g_chat_id = üzenet['üzenet']['csevegés']['id']
g_file_id = üzenet['üzenet']['videó']['fájl_azonosítója']
print("g_chat_id-->", g_chat_id)
print("g_video_id-->", g_file_id)
vissza g_file_id
kivéve:
próbálja ki:
g_chat_id = üzenet['üzenet']['csevegés']['id']
g_file_id = üzenet['üzenet']['audio']['file_id']
print("g_chat_id-->", g_chat_id)
print("g_audio_id-->", g_file_id)
vissza g_file_id
kivéve:
próbálja ki:
g_chat_id = üzenet['üzenet']['csevegés']['id']
g_file_id = üzenet['üzenet']['dokumentum']['fájl_azonosító']
print("g_chat_id-->", g_chat_id)
print("g_file_id-->", g_file_id)
vissza g_file_id
kivéve:
print("NEM található fájl -->>")
Lépés 23: Miközben megpróbáltuk a képet, videót, hangot és fájlt a szerveroldalunkon tárolni, és elkészítettük a kódot is, hogy a távirat-boton keresztül megkapjuk a különböző típusú válaszokat.
A teljes kódot a mi oldalunkon is megtalálhatja Github tároló és tesztelje, hogy megkapja a különféle válaszokat a távirat-boton keresztül, és fájlokat küldjön a szerveroldalra.
Megtanultuk, hogyan kaphatjuk meg a szöveges választ a bottól és a különböző típusú fájloktól. Ezek után azt is láttuk, hogyan juthatunk hozzá a szerveroldalunkon lévő botnak elküldött fájlokhoz.
Most már úgy működhet a botja, ahogy szeretné – haladjon előre, és hozza létre a következő nagy dolgot!
Remélem, jól érezte magát az első Telegram bot megépítésében. Ha bármilyen nehézségbe ütközik, ossza meg velünk megjegyzésben.
Eredetileg a Create Telegram Bot Python oktatóprogram használatával példákkal 11. április 2022-án.
Hozzon létre Telegram Botot a Python oktatóprogram segítségével példákkal eredetileg a Chatbotok élete a Medium oldalon, ahol az emberek folytatják a beszélgetést, kiemelve és válaszolva erre a történetre.
- Coinsmart. Európa legjobb Bitcoin- és kriptográfiai tőzsdéje.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. SZABAD HOZZÁFÉRÉS.
- CryptoHawk. Altcoin radar. Ingyenes próbaverzió.
- Source: https://chatbotslife.com/create-telegram-bot-using-python-tutorial-with-examples-bc5d76351a24?source=rss—-a49517e4c30b—4
- "
- 11
- 2022
- Rólunk
- hozzáférés
- Fiók
- Minden termék
- Másik
- api
- app
- április
- hang-
- Automatizált
- Bot
- böngésző
- Épület
- hívás
- Kaphat
- kód
- tartalmaz
- tartalom
- Beszélgetés
- beszélgetések
- teremt
- készítette
- létrehozása
- Fejleszt
- különböző
- közvetlenül
- dokumentumok
- Kivéve
- Arc
- vezetéknév
- következik
- következő
- talált
- Tele
- móka
- funkció
- szerzés
- Giving
- segít
- itt
- Hogyan
- HTTPS
- kép
- index
- információ
- telepíteni
- IT
- TANUL
- tanult
- LINK
- linkek
- közepes
- több
- nyitva
- Más
- Emberek (People)
- Platformok
- szavazás
- Készít
- kap
- átirányítás
- kérni
- kéri
- válasz
- visszatérés
- futás
- futás
- Keresés
- biztonság
- készlet
- felépítés
- Megosztás
- megosztott
- hasonló
- So
- kezdet
- tárolni
- rendszer
- Telegram
- terminál
- teszt
- Keresztül
- jelképes
- egyedi
- us
- használ
- különféle
- videó
- háló
- webböngésző
- Mit
- Mi
- vajon
- Munka
- lenne
- írás
- youtube