Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

Bots f'Telegram huma programmi li jgħinu biex jiġi stabbilit kuntatt mal-udjenza jew jissimplifikaw azzjonijiet li qabel kellhom isiru manwalment. Dawn il-programmi huma miktuba speċifikament għall-pjattaforma tal-messaġġiera. Il-bots jaħdmu b'dan il-mod: l-utent jibgħat kmand permezz tal-linja tal-input, u s-sistema twieġeb b'test jew messaġġ interattiv. Xi drabi l-programm saħansitra jimita l-azzjonijiet ta 'persuna reali - tali bot jispira aktar fiduċja fost il-klijenti.

Hemm diversi tipi ta' sistemi għall-assistenza awtomatika lill-utenti. Xi bots jikkomunikaw biss mal-klijenti, oħrajn jipprovdu informazzjoni regolarment. Huwa impossibbli li l-programmi jaqsmu b'mod ċar f'tipi - l-iżviluppaturi ħafna drabi jgħaqqdu diversi funzjonijiet f'bot wieħed.

Tista 'tikteb bot sempliċi għal Telegram b'elementi interattivi fil-forma ta' buttuni fuq l-iskrin f'9 passi. Ejja nħarsu lejn kull wieħed minnhom fid-dettall u nwieġbu ftit mistoqsijiet:

  • kif tibda bot;
  • kif tirreġistra tastiera integrata minn buttuna waħda jew aktar;
  • kif tipprogramma l-buttuni għall-funzjonijiet mixtieqa;
  • x'inhu l-modalità inline u kif twaqqafha għal bot eżistenti.

Pass 0: sfond teoretiku dwar l-API tal-bots tat-Telegram

L-għodda ewlenija użata biex jinħolqu bots tat-Telegram hija l-Interface tal-Programmazzjoni tal-Applikazzjoni HTML, jew HTML API. Dan l-element jaċċetta talbiet tal-viżitaturi u jibgħat tweġibiet fil-forma ta 'informazzjoni. Disinji lesti jissimplifikaw ix-xogħol fuq il-programm. Biex tikteb bot għal Telegram, trid tuża dan l-indirizz elettroniku: https://api.telegram.org/bot/METHOD_NAME

Għall-funzjonament korrett tal-bot, huwa meħtieġ ukoll token - taħlita ta 'karattri li tipproteġi l-programm u tiftaħ aċċess għalih għal żviluppaturi ta' fiduċja. Kull token huwa uniku. Is-sekwenza hija assenjata lill-bot mal-ħolqien. Il-metodi jistgħu jkunu differenti: getUpdates, getChat u oħrajn. L-għażla tal-metodu tiddependi fuq liema algoritmu jistennew l-iżviluppaturi mill-bot. Eżempju ta' token:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Il-bots jużaw rikjesti GET u POST. Il-parametri tal-metodu ħafna drabi jridu jiġu supplimentati - pereżempju, meta l-metodu sendMessage suppost jibgħat iċ-chat id u xi test. Il-parametri għall-irfinar tal-metodu jistgħu jiġu mgħoddija bħala sekwenza ta' query URL bl-użu ta' application/x-www-form-urlencoded jew permezz ta' application-json. Dawn il-metodi mhumiex adattati għat-tniżżil ta 'fajls. Hija meħtieġa wkoll kodifikazzjoni UTF-8. Billi tibgħat talba lill-API, tista 'tikseb ir-riżultat f'format JSON. Agħti ħarsa lejn ir-rispons tal-programm għall-irkupru tal-informazzjoni permezz tal-metodu getME:

IKOLLOK https://api.telegram.org/bot/getMe{ ok: veru, riżultat: { id: 231757398, first_name: "Bot tar-Rata tal-Kambju", isem tal-utent: "exchangetestbot" } }

Ir-riżultat jinkiseb jekk ok ugwali veru. Inkella, is-sistema tindika żball.

Hemm żewġ modi kif tikseb messaġġi personalizzati fil-bots. Iż-żewġ metodi huma effettivi, iżda huma adattati f'każijiet differenti. Biex tikseb messaġġi, tista 'tikteb manwalment talba bil-metodu getUpdates - il-programm se juri l-firxa tad-dejta tal-Aġġornament fuq l-iskrin. It-talbiet għandhom jintbagħtu regolarment, wara li tiġi analizzata kull firxa, it-trażmissjoni tiġi ripetuta. L-offset huwa parametru li jiddetermina n-numru ta 'rekords maqbuża qabel it-tagħbija ta' riżultat ġdid biex tiġi evitata d-dehra mill-ġdid ta 'oġġetti kkontrollati. Il-benefiċċji tal-metodu getUpdates jidħlu fis-seħħ jekk:

  • m'hemm l-ebda mod biex jiġi kkonfigurat HTTPS;
  • jintużaw lingwi tal-kitba kumplessi;
  • is-server tal-bot jinbidel minn żmien għal żmien;
  • il-bot huwa mgħobbi bl-utenti.

It-tieni metodu li jista 'jinkiteb biex jirċievi messaġġi tal-utent huwa setWebhook. Jintuża darba, l-ebda ħtieġa li kontinwament tibgħat talbiet ġodda. Il-webhook jibgħat aġġornamenti tad-dejta lill-URL speċifikat. Dan il-metodu jeħtieġ ċertifikat SSL. Webhook se jkun utli f'dawn il-każijiet:

  • jintużaw lingwi tal-ipprogrammar tal-web;
  • il-bot ma jkunx mgħobbi żżejjed, m'hemmx wisq utenti;
  • is-server ma jinbidilx, il-programm jibqa 'fuq l-istess server għal żmien twil.

F'aktar struzzjonijiet, se nużaw getUpdates.

Is-servizz tat-Telegramma @BotFather huwa ddisinjat biex joħloq chat bots. Is-settings bażiċi huma wkoll stabbiliti permezz ta 'din is-sistema - BotFather jgħinek tagħmel deskrizzjoni, tpoġġi ritratt tal-profil, iżżid għodod ta' appoġġ. Libreriji - settijiet ta 'talbiet HTML għal bots Telegram - huma disponibbli fuq l-Internet, hemm ħafna minnhom. Meta ħoloq il-programm eżempju, intuża pyTelegramBotApi.

Pass 1: Timplimenta Talbiet tar-Rata tal-Kambju

L-ewwel trid tikteb il-kodiċi li jwettaq il-mistoqsijiet. Aħna se nużaw meta niktbu l-API tal-PrivatBank, hawn taħt hemm link għaliha: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. Għandek bżonn tuża dawn il-metodi fil-kodiċi tiegħek:

  • load_exchange – isib ir-rati tal-kambju u juri informazzjoni kodifikata;
  • get_exchange – juri dejta dwar munita speċifika;
  • get_exchanges - turi l-elenkar tal-muniti skont il-kampjun.

Bħala riżultat, il-kodiċi fil-fajl pb.py jidher bħal dan:

importazzjoni re importazzjoni talbiet importazzjoni json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): return json.loads(requests.get(URL).text) def get_exchange(ccy_key ): for exc in load_exchange (): if ccy_key == exc['ccy']: return exc return False def get_exchanges(ccy_pattern): result = [] ccy_pattern = re.escape(ccy_pattern) + '.*' for exc in load_exchange(): jekk re.match(ccy_pattern, exc['ccy'], re.IGNORECASE) mhix Xejn: result.append(exc) jirritorna riżultat

Il-programm jista' joħroġ it-tweġiba li ġejja għat-talbiet speċifikati:

[ { ccy:"USD", base_ccy:"UAH", jixtru:"25.90000", bejgħ:"26.25000" }, { ccy:"EUR", base_ccy:"UAH", jixtru:"29.10000", bejgħ:"29.85000 " }, { ccy:"RUR", base_ccy:"UAH", jixtru:"0.37800", bejgħ:"0.41800" }, { ccy:"BTC", base_ccy:"USD", jixtru:"11220.0384", bejgħ: "12401.0950"} ]

Pass 2: Oħloq Telegram Bot ma' @BotFather

Tista' toħloq programm biex tirċievi messaġġi u twieġeb għalihom billi tuża s-servizz @BotFather. Mur fil-paġna Telegram tiegħu u daħħal il-kmand /newbot. L-istruzzjonijiet se jidhru fiċ-chat, li skonthom għandek bżonn tikteb l-isem tal-bot l-ewwel, u mbagħad l-indirizz tiegħu. Meta jinħoloq il-kont tal-bot, fuq l-iskrin jidher messaġġ ta' merħba li jkun fih token. Għal aktar konfigurazzjoni, uża dawn il-kmandi:

  • /setdescription – deskrizzjoni;
  • /setabouttext – informazzjoni dwar il-bot il-ġdid;
  • /setuserpic – ritratt tal-profil;
  • /setinline – modalità inline;
  • /setcommands – deskrizzjoni tal-kmandi.

Fl-aħħar pass tal-konfigurazzjoni, aħna niddeskrivu /help u /exchange. Meta l-passi kollha jkunu tlestew, wasal iż-żmien li ngħaddu għall-kodifikazzjoni.

Pass 3: Twaqqif u Tnedija tal-Bot

Ejja noħolqu fajl config.py. Fiha, għandek bżonn tispeċifika l-kodiċi tal-bot uniku u ż-żona tal-ħin li fiha l-programm se jsib l-informazzjoni.

TOKEN = '' # ibdel bit-token tal-bot tiegħekTIMEZONE = 'Ewropa/Kiev' TIMEZONE_COMMON_NAME = 'Kiev'

Sussegwentement, noħolqu fajl ieħor bl-importazzjoni tal-pb.py miktuba qabel, libreriji u komponenti oħra meħtieġa. Il-libreriji neqsin huma installati mis-sistema ta' ġestjoni tal-pakketti (pip).

import telebotimport configimport pbimport datetimeimport pytzimport jsonimport traceback P_TIMEZONE = pytz.timezone(config.TIMEZONE) TIMEZONE_COMMON_NAME = config.TIMEZONE_COMMON_NAME

Ejja nużaw il-kontenut ta 'pyTelegramBotApi biex noħolqu bot. Aħna nibagħtu t-token riċevut billi tuża l-kodiċi li ġej:

bot = telebot.TeleBot(config.TOKEN) bot.polling(none_stop=Veru)

Il-parametru none_stop jiżgura li t-talbiet jintbagħtu kontinwament. It-tħaddim tal-parametru mhux se jkun affettwat minn żbalji fil-metodu.

Pass 4: Ikteb il-/start Command Handler

Jekk il-passi kollha preċedenti jsiru b'mod korrett, il-bot beda jaħdem. Il-programm jiġġenera talbiet regolarment minħabba li juża l-metodu getUpdates. Qabel il-linja bl-element none_stop, għandna bżonn biċċa kodiċi li tipproċessa l-kmand /start:

@bot.message_handler(commands=['start']) def start_command(messagg): bot.send_message( message.chat.id, 'Tislijiet! Nista' nurik ir-rati tal-kambju.n' + 'Biex tikseb ir-rati tal-kambju agħfas / exchange.n' + 'Biex tikseb għajnuna agħfas /help.' )

RџSЂRё jikkmanda=['bidu'] ugwali għal Veru start_command jissejjaħ. Il-kontenut tal-messaġġ imur hemm. Sussegwentement, għandek bżonn timplimenta l-funzjoni tibgħat_messaġġ fir-rigward ta’ messaġġ partikolari.

Pass 5: Oħloq Immaniġġjar tal-Kmand /help

Il-kmand /help jista 'jiġi implimentat bħala buttuna. Billi tikklikkja fuqha, l-utent se jittieħed fil-kont Telegram tal-iżviluppatur. Agħti isem lill-buttuna, bħal "Staqsi lill-iżviluppatur". Issettja l-parametru reply_markup, li jidderieġi mill-ġdid lill-utent għal link, għall-metodu send_message. Ejja ikteb fil-kodiċi l-parametru li joħloq it-tastiera (InlineKeyboardMarkup). Għandek bżonn biss buttuna waħda (InlineKeyboardButton).

Il-kodiċi finali tal-immaniġġjar tal-kmand jidher bħal dan:

@bot.message_handler(commands=['għajnuna']) def help_command(messaġġ): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton('Staqsi lill-iżviluppatur', url='ваша ссылка на профиль' ) ) bot.send_message( message.chat.id, '1) Biex tirċievi lista ta' muniti disponibbli agħfas /exchange.n' + '2) Ikklikkja fuq il-munita li inti interessat fiha.n' + '3) Inti se tirċievi messaġġ li jkun fih informazzjoni dwar is-sors u l-muniti fil-mira, ' + 'rati ta' xiri u rati ta' bejgħ.n' + '4) Ikklikkja "Aġġorna" biex tirċievi l-informazzjoni attwali dwar it-talba. ' + 'Il-bot se juri wkoll id-differenza bejn ir-rati tal-kambju ta' qabel u dawk attwali.n' + '5) Il-bot jappoġġja inline. Ittajpja @ fi kwalunkwe chat u l-ewwel ittri ta' munita.', reply_markup=keyboard )

Azzjoni tal-kodiċi fiċ-chat tat-Telegram:

Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

Pass 6: Żieda tal-/exchange Command Handler

Dan il-pass huwa meħtieġ biex jintwerew buttuni b'simboli tal-muniti disponibbli fiċ-chat. Tastiera fuq l-iskrin b'għażliet tgħinek tevita l-iżbalji. PrivatBank jipprovdi informazzjoni dwar ir-rublu, id-dollaru u l-euro. L-għażla InlineKeyboardButton taħdem hekk:

  1. L-utent jikklikkja fuq il-buttuna bid-denominazzjoni mixtieqa.
  2. getUpdates jirċievi callback (CallbackQuery).
  3. Isir magħruf kif timmaniġġja l-ippressar tat-tastiera - tiġi trażmessa informazzjoni dwar il-buttuna ippressata.

/ kodiċi tal-immaniġġjar tal-iskambju:

@bot.message_handler(commands=['skambju']) def exchange_command(messaġġ): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton('USD', callback_data='get-USD') ) keyboard.row( telebot.types.InlineKeyboardButton('EUR', callback_data='get-EUR'), telebot.types.InlineKeyboardButton('RUR', callback_data='get-RUR') ) bot.send_message( message.chat .id, 'Ikklikkja fuq il-munita tal-għażla:', reply_markup=keyboard )

Ir-riżultat tal-kodiċi fit-Telegram:

Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

Pass 7: Kitba ta 'handler għall-buttuni tat-tastiera integrati

Il-pakkett pyTelegramBot Api fih il-funzjoni dekoratur @bot.callback_query_handler. Dan il-komponent huwa ddisinjat biex jittraduċi r-callback f'funzjoni - l-API tiżbara u terġa' toħloq is-sejħa. Huwa miktub hekk:

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data if data.startswith('get-'): get_ex_callback(query)

Ejja niktbu wkoll il-metodu get_ex_callback:

def get_ex_callback(mistoqsija): bot.answer_callback_query(query.id) send_exchange_result(query.message, query.data[4:])

Hemm metodu utli ieħor - answer_callback_query. Jgħin biex tneħħi t-tagħbija bejn tagħfas il-buttuna u turi r-riżultat fuq l-iskrin. Tista' tibgħat messaġġ lil send_exchange_query billi tgħaddi xi kodiċi tal-munita u Messaġġ. Ejja niktbu send_exchange_result:

def send_exchange_result (messaġġ, ex_code): bot.send_chat_action (message.chat.id, 'typing') ex = pb.get_exchange (ex_code) bot.send_message ( message.chat.id, serialize_ex (ex), reply_markup = get_update_keyboard (ex) ), parse_mode='HTML' )

Filwaqt li ċ-chatbot jirċievi r-riżultat tat-talba mill-bank API, il-viżitatur jara l-iskrizzjoni "ittajpja messaġġ". Jidher li persuna reali qed twieġeb. Biex turi tali indikatur fuq l-iskrin, ser ikollok bżonn iżżid linji ta 'status ta' input. Sussegwentement, se nużaw get_exchange - bl-għajnuna tiegħu, il-programm se jirċievi d-deżinjazzjoni tal-munita (rubli, euro jew dollari). send_message juża metodi addizzjonali: serialize_ex jikkonverti l-munita għal format ieħor, u get_update_keyboard jistabbilixxi softkeys li jaġġornaw l-informazzjoni u jibagħtu d-dejta tas-suq tal-munita lil chats oħra.

Ejja nikteb il-kodiċi għal get_update_keyboard. Jeħtieġ li jissemmew żewġ buttuni - t u e stand għal tip u skambju. L-oġġett switch_inline_query għall-buttuna Share huwa meħtieġ sabiex l-utent ikun jista' jagħżel minn diversi chats. Il-viżitatur se jkun jista 'jagħżel lil min jibgħat ir-rata tal-kambju attwali tad-dollaru, ir-rublu jew l-euro.

def get_update_keyboard(ex): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton( 'Aġġornament', callback_data=json.dumps({ 't': 'u', 'e': { ' b': ex['buy'], 's': ex['sale'], 'c': ex['ccy'] } }).replace(' ', '') ), telebot.types.InlineKeyboardButton ('Share', switch_inline_query=ex['ccy']) ) return keyboard

Xi drabi trid tara kemm ir-rata tal-kambju nbidlet fi żmien qasir. Ejja niktbu żewġ metodi għall-buttuna Aġġorna sabiex l-utenti jkunu jistgħu jaraw il-korsijiet meta mqabbla.

Id-differenza bejn ir-rati tal-kambju hija mgħoddija lis-serializzatur permezz tal-parametru diff.

Il-metodi preskritti jaħdmu biss wara li d-dejta tiġi aġġornata, mhux se jaffettwaw l-ewwel wiri tal-kors.

def serialize_ex (ex_json, diff=Xejn): riżultat = '' + ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'Ixtri: ' + ex_json['buy'] if diff: result += ' ' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'Biegħ: ' + ex_json['sale'] + ' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' inkella: riżultat += 'nSell: ' + ex_json['sale'] + 'n' ritorn riżultat def serialize_exchange_diff (diff): riżultat = '' jekk diff > 0: riżultat = '(' + str(diff) + ' " src="https://sworg/images/core/emoji/2.3/svg/2197.svg">" src="https://sworg/images /core/emoji/72x72/2197.png">" src="https://sworg/images/core/emoji/72x72/2197.png">)' elif diff < 0: riżultat = '(' + str( diff)[1:] + ' " src="https://sworg/images/core/emoji/2.3/svg/2198.svg">" src="https://sworg/images/core/emoji/72x72 /2198.png">" src="https://sworg/images/core/emoji/72x72/2198.png">)' ir-riżultat tar-ritorn

Immaġina li l-viżitatur ried ikun jaf ir-rata tal-kambju tad-dollaru. Hawn x'jiġri jekk tagħżel USD fil-messaġġ:

Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

Pass 8: Timplimenta l-Immaniġġjar tal-Buttuni tal-Aġġornament

Ejja niktbu l-kodiċi għall-immaniġġjar ta 'azzjonijiet bil-buttuna Aġġornament u żid il-parti iq_callback_method magħha. Meta l-oġġetti tal-programm jibdew bil-parametru get, trid tikteb get_ex_callback. F'sitwazzjonijiet oħra, aħna parse JSON u nippruvaw niksbu ċ-ċavetta t.

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data if data.startswith('get-'): get_ex_callback(query) inkella: ipprova: jekk json.loads(data)[ 't'] == 'u': edit_message_callback (mistoqsija) ħlief ValueError: pass

Jekk t tkun ugwali għal u, ser ikollok bżonn tikteb programm għall-metodu edit_message_callback. Ejja nkissru dan il-proċess pass pass:

  1. Tniżżil ta' informazzjoni aġġornata dwar l-istat tas-suq tal-munita (exchange_now = pb.get_exchange(data['c']).
  1. Kitba ta 'messaġġ ġdid permezz ta' serializzatur b'diff.
  2. Żieda ta' firma (get_edited_signature).

Jekk il-messaġġ inizjali ma jinbidelx, sejjaħ il-metodu edit_message_text.

def edit_message_callback(query): data = json.loads(query.data)['e'] exchange_now = pb.get_exchange(data['c']) text = serialize_ex( exchange_now, get_exchange_diff( get_ex_from_iq_data(data), exchange_now ) ) + 'n' + get_edited_signature() if query.message: bot.edit_message_text (test, query.message.chat.id, query.message.message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' ) elif query.inline_message_id : bot.edit_message_text (test, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' )

Ejja niktbu l-metodu get_ex_from_iq_data biex inqisu JSON:

def get_ex_from_iq_data(exc_json): return { 'ixtri': exc_json['b'], 'bejgħ': exc_json['s'] }

Ikollok bżonn ftit metodi oħra: per eżempju, get_exchange_diff, li jaqra l-informazzjoni l-qadima u l-ġdida dwar l-ispiża tal-muniti u juri d-differenza.

def get_exchange_diff(l-aħħar, issa): return { 'sale_diff': float("%.6f" % (float(issa['sale']) - float(last['sale']))), 'buy_diff': float ("%.6f" % (float(issa['ixtri']) - float(l-aħħar['ixtri']))) }

L-aħħar waħda, get_edited_signature, turi l-ħin li l-kors ġie aġġornat l-aħħar.

def get_edited_signature (): ritorn 'Aġġornata ' + str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + '(' + TIMEZONE_COMMON_NAME + ')'

Bħala riżultat, il-messaġġ aġġornat mill-bot b'rata tal-kambju stabbli jidher bħal dan:

Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

Meta l-kors jinbidel, id-differenzi bejn il-valuri jintwerew fil-messaġġ minħabba l-parametri preskritti.

Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

Pass 9: Implimentazzjoni tal-Modalità Inkorporata

Il-mod inkorporat huwa meħtieġ biex tibgħat malajr l-informazzjoni mill-programm għal kwalunkwe chat - issa m'għandekx bżonn iżżid bot mal-konversazzjoni bħala parteċipant. Meta utent ta' Telegram idaħħal isem ta' bot b'sinjal @ quddiemu, l-għażliet ta' konverżjoni għandhom jidhru fuq il-linja tad-dħul. Jekk tikklikkja fuq wieħed mill-oġġetti, il-bot jibgħat messaġġ lill-konversazzjoni bir-riżultati u l-buttuni għall-aġġornament u l-bgħit tad-dejta. Isem il-mittent ikun fih il-titlu “via ".

InlineQuery jiġi mgħoddi lil query_text permezz tal-librerija. Il-kodiċi juża l-funzjoni answer_line biex jirkupra r-riżultati tat-tfittxija bħala firxa ta 'dejta u l-element inline_query_id. Aħna nużaw get_exchanges sabiex il-bot isib diversi muniti fuq talba.

@bot.inline_handler(func=lambda query: Veru) def query_text(inline_query): bot.answer_inline_query( inline_query.id, get_iq_articles(pb.get_exchanges(inline_query.query)) )

Aħna ngħaddu firxa ta 'dejta biex get_iq_articles sabiex nirritornaw oġġetti minn InlineQueryResultArticle permezz ta' dan il-metodu.

def get_iq_articles(exchanges): result = [] for exc in exchanges: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], title=exc['ccy'], input_message_content=telebot.types.InputTextMessageContent ( serialize_ex(exc), parse_mode='HTML' ), reply_markup=get_update_keyboard(exc), description='Konverti ' + exc['base_ccy'] + ' -> '+ exc['ccy'], thumb_height=1 ) ) riżultat lura

Issa, jekk tikteb @ u spazju fil-linja, ir-riżultati tat-tfittxija se jidhru fuq l-iskrin - għażliet għall-konverżjoni fi tliet muniti disponibbli.

Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

L-utenti jistgħu jiffiltraw ir-riżultati billi jdaħħlu l-munita mixtieqa.

Wara li tikklikkja fuq il-munita mixtieqa mil-lista, iċ-chat jirċievi l-istess messaġġ li jirċievu l-utenti tal-bot. Tista' wkoll tuża l-buttuna Aġġornament. L-immaġni hawn taħt turi l-messaġġ aġġornat mibgħut permezz tal-bot:

Telegram bot f'Python. Gwida kompluta għall-kitba ta 'bot bir-rati tal-kambju mill-bidu

konklużjoni

Issa taf kif toħloq bot għal Telegram. Tista 'żżid għodod utli mal-programm tiegħek: buttuni biex taġġorna u tibgħat ir-riżultat lil utenti oħra tal-messaġġier u mod inkorporat li jippermettilek tuża l-funzjonijiet tal-bot barra ċ-chat miegħu. Ibbażat fuq din l-istruzzjoni, tista 'toħloq kwalunkwe bot sempliċi b'funzjonijiet oħra - mhux biss dik li se turi r-rati tal-kambju. Tibżax tesperimenta bil-libreriji, l-APIs, u l-kodiċi biex toħloq assistent awtomatizzat li chat mal-klijenti fuq Telegram u jsaħħaħ il-konnessjoni tan-nies interessati mal-kumpanija.

1 Kumment

  1. Fantastica publicación

Ħalli Irrispondi