Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

Bots na Telegram bụ mmemme na-enyere aka ịmepụta kọntaktị na ndị na-ege ntị ma ọ bụ mee ka omume dị mfe nke ekwesịrị iji aka mee na mbụ. Edere mmemme ndị a kpọmkwem maka ikpo okwu ozi. Bots na-arụ ọrụ n'ụzọ dị otú a: onye ọrụ na-eziga iwu site na ntinye ntinye, na usoro na-aza ozi na ederede ma ọ bụ ozi mmekọrịta. Mgbe ụfọdụ, mmemme ahụ na-eṅomi omume nke onye dị adị - bot dị otú ahụ na-akpalikwu ntụkwasị obi n'etiti ndị ahịa.

Enwere ọtụtụ ụdị sistemụ maka enyemaka akpaaka nye ndị ọrụ. Ụfọdụ bots na-ekwurịta okwu na ndị ahịa, ndị ọzọ na-enye ozi mgbe niile. Ọ gaghị ekwe omume ikewa mmemme n'ụzọ doro anya na ụdị - ndị mmepe na-ejikọta ọtụtụ ọrụ na otu bot.

Ị nwere ike dee bot dị mfe maka Telegram nwere ihe mmekọrịta n'ụdị bọtịnụ ihuenyo na usoro 9. Ka anyị leba anya na nke ọ bụla n'ime ha nke ọma ma zaa ajụjụ ole na ole:

  • otu esi amalite bot;
  • otu esi edebanye aha ahụigodo arụnyere n'ime ya site na otu bọtịnụ ma ọ bụ karịa;
  • otu esi eme mmemme bọtịnụ maka ọrụ achọrọ;
  • kedu ọnọdụ inline na otu esi edobe ya maka bot dị adị.

Kwụpụ 0: ndabere usoro ihe gbasara Telegram bots API

Ngwá ọrụ bụ isi eji emepụta bots Telegram bụ HTML Application Programming Interface, ma ọ bụ HTML API. Ihe a na-anabata arịrịọ ndị ọbịa ma zipụ nzaghachi n'ụdị ozi. Nhazi emebere emebere na-eme ka ọrụ dị mfe na mmemme ahụ. Iji dee bot maka Telegram, ịkwesịrị iji adreesị ozi-e a: https://api.telegram.org/bot/METHOD_NAME

Maka ịrụ ọrụ ziri ezi nke bot, a na-achọkwa akara ngosi - ngwakọta nke ihe odide na-echebe mmemme ahụ ma mepee ohere ịnweta ya na ndị mmepe tụkwasịrị obi. Token ọ bụla pụrụ iche. E kenyere eriri ahụ na bot n'elu okike. Ụzọ nwere ike ịdị iche: getUpdates, getChat na ndị ọzọ. Nhọrọ nke usoro dabere na ihe algọridim ndị mmepe na-atụ anya site na bot. Ihe atụ akara:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Bots na-eji arịrịọ GET na POST. A ga-agbakwunyerịrị oke usoro - dịka ọmụmaatụ, mgbe usoro izipu kwesịrị izipu id nkata na ụfọdụ ederede. Enwere ike ịfefe ụkpụrụ maka nhazigharị usoro dị ka eriri ajụjụ URL site na iji ngwa/x-www-form-urlencoded ma ọ bụ site na ngwa-json. Ụzọ ndị a adabaghị maka nbudata faịlụ. Achọkwara itinye koodu UTF-8. Site na izipu arịrịọ na API, ị nwere ike nweta nsonaazụ n'ụdị JSON. Lelee nzaghachi mmemme maka iweghachite ozi site na usoro getME:

Nweta https://api.telegram.org/bot/getMe{ ok: ezi, nsonaazụ: {id: 231757398, first_name: "Exchange Rate Bot", aha njirimara: "exchangetestbot"}}

A ga-enweta nsonaazụ ya ma ọ bụrụ ok nhata ezi. Ma ọ bụghị ya, usoro ahụ ga-egosi njehie.

Enwere ụzọ abụọ iji nweta ozi omenala na bots. Ụzọ abụọ a dị irè, ma ọ dị mma n'ọnọdụ dị iche iche. Iji nweta ozi, ị nwere ike iji aka dee arịrịọ site na iji usoro getUpdates - mmemme ahụ ga-egosipụta nhazi data mmelite na ihuenyo. A ga-ezigarịrị arịrịọ mgbe niile, mgbe nyochachara usoro nke ọ bụla, a na-emegharịghachi ya ọzọ. Offset bụ oke nke na-ekpebi ọnụọgụ ndekọ ndị amafere tupu ị na-ebupụta nsonaazụ ọhụrụ iji zere mpụta ọzọ nke ihe enyochara. Uru nke usoro getUpdates ga-abata ma ọ bụrụ:

  • ọ nweghị ụzọ isi hazie HTTPS;
  • a na-eji asụsụ scripting mgbagwoju anya;
  • ihe nkesa bot na-agbanwe site n'oge ruo n'oge;
  • bot na-ejuju na ndị ọrụ.

Ụzọ nke abụọ enwere ike dee iji nweta ozi onye ọrụ bụ setWebhook. A na-eji ya otu ugboro, ọ dịghị mkpa na-eziga arịrịọ ọhụrụ mgbe niile. Webhook na-eziga mmelite data na URL akọwapụtara. Usoro a chọrọ asambodo SSL. Webhook ga-aba uru n'ọnọdụ ndị a:

  • A na-eji asụsụ mmemme weebụ;
  • bot adịghị ebufe ibu, ọ bụghị ọtụtụ ndị ọrụ;
  • ihe nkesa anaghị agbanwe agbanwe, ihe omume ahụ na-anọgide na otu ihe nkesa ruo ogologo oge.

Na ntuziaka ndị ọzọ, anyị ga-eji getUpdates.

Emebere ọrụ @BotFather Telegram iji mepụta bots nkata. A na-edozikwa ntọala ntọala site na usoro a - BotFather ga-enyere gị aka ịmepụta nkọwa, tinye foto profaịlụ, tinye ngwaọrụ nkwado. Ọbá akwụkwọ - nhazi nke arịrịọ HTML maka bots Telegram - dị na ịntanetị, enwere ọtụtụ n'ime ha. Mgbe ị na-eke mmemme ihe atụ, ejiri pyTelegramBotApi mee ihe.

Kwụpụ 1: Na-emejuputa arịrịọ ọnụego mgbanwe

Mbụ ị ga-ede koodu na-eme ajụjụ. Anyị ga-eji mgbe ị na-ede PrivatBank API, n'okpuru bụ njikọ ya: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. Ịkwesịrị iji usoro ndị a na koodu gị:

  • load_exchange - chọta ọnụego mgbanwe ma gosipụta ozi etinyere;
  • get_exchange - na-egosiputa data gbasara otu ego;
  • get_exchanges - na-egosi ndepụta nke ego dịka ihe nlele ahụ si dị.

N'ihi ya, koodu dị na pb.py faịlụ dị ka nke a:

mbubata rebubata arịrịọ bubata json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): laghachi json.loads(requests.get(URL).text) def get_exchange(ccy_key) ): maka exc na load_exchange (): ma ọ bụrụ na ccy_key == exc ['ccy']: laghachi exc rene Ụgha def get_exchanges(ccy_pattern): N'ihi = [] ccy_pattern = re.escape(ccy_pattern) + '.*' maka exc in load_exchange(): ma ọ bụrụ na re.match (ccy_pattern, exc ['ccy'], re.IGNORECASE) abụghị Nke ọ bụla: result.append(exc) nloghachi rịzọlt

Mmemme nwere ike ịnye nzaghachi ndị a maka arịrịọ ndị akọwapụtara:

[ {ccy:"USD", base_ccy:"UAH", zụta:"25.90000", ire:"26.25000"}, {ccy:"EUR", base_ccy:"UAH", zụta:"29.10000", ire:"29.85000 " }, {ccy:"RUR", base_ccy:"UAH", zụta:"0.37800", ire:"0.41800"}, {ccy:"BTC", base_ccy:"USD", zụrụ:"11220.0384", ire: "12401.0950"} ]

Kwụpụ 2: Mepụta Telegram Bot na @BotFather

Ị nwere ike ịmepụta mmemme maka ịnata ozi na ịzaghachi ha site na iji ọrụ @BotFather. Gaa na ibe Telegram ya wee tinye iwu /newbot. Ntuziaka ga-apụta na nkata ahụ, dịka nke ị ga-esi dee aha bot na mbụ, na adreesị ya. Mgbe emepụtara akaụntụ bot, ozi nnabata nwere akara ga-apụta na ihuenyo. Maka nhazi ọzọ, jiri iwu ndị a:

  • / setdescription - nkọwa;
  • / setabouttext - ozi gbasara bot ọhụrụ;
  • /setuserpic - foto profaịlụ;
  • /setinline – inline mode;
  • /setcommands – nkọwa nke iwu.

Na nhazi nhazi ikpeazụ, anyị na-akọwa / enyemaka na / mgbanwe. Mgbe emechara usoro niile, ọ bụ oge ịkwaga na nzuzo.

Nzọụkwụ 3: Ịtọlite ​​​​na ịmalite Bot

Ka anyị mepụta faịlụ config.py. N'ime ya, ịkwesịrị ịkọwapụta koodu bot pụrụ iche na mpaghara oge nke mmemme ahụ ga-achọta ozi.

TOKEN = '' # jiri akara bot gị dochie TIMEZONE = 'Europe/Kiev' TIMEZONE_COMMON_NAME = 'Kiev'

Ọzọ, anyị na-emepụta faịlụ ọzọ na mbubata nke pb.py edere na mbụ, ụlọ akwụkwọ na ihe ndị ọzọ dị mkpa. A na-etinye ọba akwụkwọ ndị na-efu efu site na sistemụ njikwa ngwugwu (pip).

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

Ka anyị jiri ọdịnaya pyTelegramBotApi mepụta bot. Anyị na-eziga token enwetara site na iji koodu a:

bot = telebot.TeleBot(config.TOKEN) bot.polling(enweghị_stop=Eziokwu)

Oke none_stop na-ahụ na a na-eziga arịrịọ mgbe niile. Njehie usoro agaghị emetụta ọrụ nke oke.

Kwụpụ 4: Dee / malite Command Handler

Ọ bụrụ na emechara usoro niile gara aga nke ọma, bot amalitela ịrụ ọrụ. Mmemme a na-ewepụta arịrịọ mgbe niile n'ihi na ọ na-eji usoro getUpdates. Tupu ahịrị nwere mmewere enweghị nkwụsị, anyị chọrọ mpempe koodu na-ahazi iwu / mmalite:

@bot.message_handler(iwu=['mmalite']) def start_command(ozi): bot.send_message( message.chat.id, 'Ekele! Enwere m ike igosi gị ọnụego mgbanwe.n' + 'Iji nweta ọnụego mgbanwe pịa / Exchange.n' + ' Iji nweta enyemaka pịa /help.')

RџSЂRё iwu =['mmalite'] nhata na Ezi start_iwu ka a na-akpọ. Ọdịnaya nke ozi na-aga ebe ahụ. Na-esote, ịkwesịrị imejuputa ọrụ izipu_ozi n'ihe gbasara otu ozi.

Kwụpụ 5: Mepụta /help Command Handler

Enwere ike itinye iwu / enyemaka dị ka bọtịnụ. Site na ịpị ya, a ga-akpọrọ onye ọrụ na akaụntụ Telegram nke onye nrụpụta. Nye bọtịnụ ahụ aha, dị ka "Jụọ onye mmepụta". Tọọ akara reply_markup, nke na-atụgharị onye ọrụ gaa na njikọ, maka usoro send_message. Ka anyị dee paramita na-emepụta ahụigodo (InlineKeyboardMarkup) na koodu. Ị chọrọ naanị otu bọtịnụ (InlineKeyboardButton).

Koodu njikwa iwu ikpeazụ dị ka nke a:

@bot.message_handler(iwu = ['enyemaka']) def help_command(ozi): kiiboodu = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton('Jụọ onye mmepụta', url='ваша ссылка на профиль' ) ) bot.send_message( message.chat.id, '1) Iji nata ndepụta nke ego dị, pịa /exchange.n' + '2) Pịa na ego ị nwere mmasị na.n' + '3) Ị ga-enweta ozi nwere ozi gbasara isi mmalite na ego ndị a na-eche, '+' ọnụ ahịa ịzụrụ na ọnụ ahịa ire ere.n' + '4) Pịa “Mmelite” iji nweta ozi ugbu a gbasara arịrịọ ahụ. ' Ụdị @ na nkata ọ bụla na mkpụrụedemede mbụ nke ego.', reply_markup=keyboard )

Usoro koodu na nkata Telegram:

Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

Kwụpụ 6: Na-agbakwụnye / Exchange Handler Command

Nzọụkwụ a dị mkpa iji gosipụta bọtịnụ nwere akara nke ego dị na nkata ahụ. Ahụigodo na ihuenyo nwere nhọrọ ga-enyere gị aka izere mmejọ. PrivatBank na-enye ozi gbasara ruble, dollar na euro. Nhọrọ bọtịnụ InlineKeyboard na-arụ ọrụ dị ka nke a:

  1. Onye ọrụ pịa bọtịnụ ahụ na aha achọrọ.
  2. getUpdates na-anata oku azụ (CallbackQuery).
  3. A na-amata ka esi edozi ịpị igodo ahụ - a na-ebufe ozi gbasara bọtịnụ pịa.

/ koodu njikwa mgbanwe:

@bot.message_handler (iwu = ['exchange']) def exchange_command(ozi): kiiboodu = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton('USD', callback_data='nweta-USD') ) keyboard. ahiri( telebot.types.InlineKeyboardButton('EUR', callback_data='nweta-EUR'), telebot.types.InlineKeyboardButton('RUR', callback_data='nweta-RUR') ) bot.send_message( message.chat. .id, 'pịa ego ị họọrọ:', reply_markup=keyboard )

Nsonaazụ nke koodu na Telegram:

Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

Kwụpụ 7: Ide onye njikwa maka bọtịnụ ahụ arụnyere arụnyere

Ngwungwu pyTelegramBot Api nwere ọrụ ndozi @bot.callback_query_handler. Emebere akụrụngwa a iji tụgharịa oku azụ ka ọ bụrụ ọrụ - API na-ewepụ ma megharịa oku ahụ. A na-asụ ya dị ka nke a:

@bot.callback_query_handler (func = oku lambda: Ezi) def iq_callback(ajụjụ): data = query.data ma ọ bụrụ data.startswith ('get-'): get_ex_callback(ajụjụ)

Ka anyị deekwa usoro get_ex_callback:

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

Enwere ụzọ ọzọ bara uru - answer_callback_query. Ọ na-enyere aka iwepu ibu n'etiti ịpị bọtịnụ na igosipụta nsonaazụ na ihuenyo. Ị nwere ike izipu ozi na send_exchange_query site na ịnyefe ụfọdụ koodu ego na ozi. Ka anyị dee send_exchange_result:

def send_exchange_result(ozi, 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' )

Mgbe chatbot na-enweta nsonaazụ nke arịrịọ sitere na ụlọ akụ API, onye ọbịa ahụ na-ahụ ihe e dere “ịpị ozi”. Ọ dị ka onye n'ezie na-aza. Iji gosipụta ihe ngosi dị otú ahụ na ihuenyo, ị ga-achọ ịgbakwunye ahịrị ọkwa ntinye. Ọzọ, anyị ga-eji get_exchange - site n'enyemaka ya, mmemme ahụ ga-enweta aha ego (rubles, euro ma ọ bụ dollar). send_message na-eji ụzọ ndị ọzọ: serialize_ex na-atụgharị ego ahụ ka ọ bụrụ usoro ọzọ, na get_update_keyboard na-edozi softkeys na-emelite ozi na zipu data ahịa ego na nkata ndị ọzọ.

Ka anyị dee koodu maka get_update_keyboard. Ekwesịrị ịkpọ bọtịnụ abụọ - t na e guzo maka ụdị na mgbanwe. Ihe switch_inline_query maka bọtịnụ Share dị mkpa ka onye ọrụ nwee ike họrọ n'ọtụtụ nkata. Onye ọbịa ahụ ga-enwe ike ịhọrọ onye ọ ga-ezigara ọnụego mgbanwe ugbu a nke dollar, ruble ma ọ bụ euro.

def get_update_keyboard(ex): kiiboodu = telebot.types.InlineKeyboardMarkup() kiiboodu.row( telebot.types.InlineKeyboardButton ('Update', callback_data=json.dumps({'t': 'u','e': {' b': ex['zụrụ'], 's': ex['ire'], 'c': ex['ccy']} }).dochie('',')), telebot.types.InlineKeyboardButton ('Share', switch_inline_query=ex['ccy']) ) weghachi ahụigodo

Mgbe ụfọdụ, ị ga-achọ ịhụ ole mgbanwe mgbanwe gbanwere n'ime obere oge. Ka anyị dee ụzọ abụọ maka bọtịnụ Mmelite ka ndị ọrụ wee hụ nkuzi n'iji atụnyere.

A na-ebufe ọdịiche dị n'etiti ọnụego mgbanwe na serializer site na paramita dị iche.

Usoro ndị edepụtara na-arụ ọrụ naanị mgbe emelitere data, ha agaghị emetụta ngosipụta mbụ nke usoro ahụ.

def serialize_ex(ex_json, diff=Ọ dịghị onye): arụpụta = ''+ ex_json['base_ccy'] + ' ->' + ex_json['ccy'] + ':nn ' ' + serialize_exchange_diff (diff['sale_diff']) + 'n' ọzọ: nsonaazụ += 'nere:' + ex_json['sale'] + 'n' nkwụghachi nsonaazụ def serialize_exchange_diff(diff): nsonaazụ =' ọ bụrụ na iche > 0: nsonaazụ = '(' + 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: results = '(' + 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">)' nsonaazụ nloghachi

Were ya na onye ọbịa ahụ chọrọ ịma ọnụego mgbanwe dollar. Nke a bụ ihe na-eme ma ọ bụrụ na ị họrọ USD na ozi:

Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

Kwụpụ 8: Na-eme ihe njikwa bọtịnụ Mmelite

Ka anyị jiri bọtịnụ nwelite dee koodu maka ijikwa omume wee tinye akụkụ iq_callback_method na ya. Mgbe ihe mmemme malitere site na nweta parameter, ị ga-ederịrị get_ex_callback. N'ọnọdụ ndị ọzọ, anyị na-atụgharị JSON ma gbalịa nweta igodo t.

@bot.callback_query_handler (func = oku lambda: Ezi) def iq_callback(ajụjụ): data = query.data ma ọ bụrụ data.startswith ('get-'): get_ex_callback(ajụjụ) ọzọ: gbalịa: ọ bụrụ json.loads (data)[ 't'] == 'u': edit_message_callback(ajụjụ) ewezuga ValueError: gafere

Ọ bụrụ na gị nhata, ị ga-achọ ide mmemme maka usoro edit_message_callback. Ka anyị bibie usoro a site na nzọụkwụ:

  1. Ịbudata ozi ọhụrụ gbasara ọnọdụ ahịa ego (exchange_now = pb.get_exchange(data['c']).
  1. Ide ozi ọhụrụ site na serializer nwere diff.
  2. Na-agbakwụnye mbinye aka (get_edited_signature).

Ọ bụrụ na ozi mbụ agbanweghị, kpọọ usoro edit_message_text.

def edit_message_callback (ajụjụ): data = json.loads (query.data) ['e'] exchange_now = pb.get_exchange (data['c']) ederede = serialize_ex (exchange_now, get_exchange_diff ( nweta_ex_from_iq_data (data), mgbanwe_now) ) + 'n' + get_edited_signature() ma ọ bụrụ na ajụjụ: bot.edit_message_text (ederede, query.message.chat.id, query.message.message_id, reply_markup=get_update_keyboard(exchange_now),parse_mode='HTML' ) elifmesageinline_id. : bot.edit_message_text(ederede, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now),parse_mode='HTML' )

Ka anyị dee usoro get_ex_from_iq_data iji tụgharịa JSON:

def get_ex_from_iq_data(exc_json): laghachi {'zụrụ': exc_json['b'], 'ire': exc_json['s']}

Ị ga-achọ ụzọ ole na ole ọzọ: dịka ọmụmaatụ, get_exchange_diff, nke na-agụ ozi ochie na nke ọhụrụ gbasara ọnụ ahịa ego ma gosipụta ọdịiche ahụ.

def get_exchange_diff (nke ikpeazụ, ugbu a): laghachi {'sale_diff': sere n'elu ("%.6f"% (ugbu a ['ire']) - sere n'elu ( ikpeazụ['ire']))), 'buy_diff': sere n'elu. ("%6f"% (ugbu a['zụrụ']) - sere n'elu( ikpeazụ['zụrụ']))))}

Nke ikpeazụ, get_edited_signature, na-egosi oge emelitere nkuzi ikpeazụ.

def get_edited_signature(): laghachi 'Emelitere '+ str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + '(' + TIMEZONE_COMMON_NAME + ')'

N'ihi ya, ozi emelitere sitere na bot nwere ọnụego mgbanwe kwụsiri ike dị ka nke a:

Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

Mgbe usoro ahụ gbanwere, a na-egosipụta ọdịiche dị n'etiti ụkpụrụ na ozi ahụ n'ihi usoro ndị edepụtara.

Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

Kwụpụ 9: Mmejuputa ọnọdụ agbakwunyere

Ụdị arụnyere arụnyere dị mkpa iji zipu ozi ngwa ngwa site na mmemme ahụ gaa na nkata ọ bụla - ugbu a ọ dịghị mkpa ka ị tinye bot na mkparịta ụka dị ka onye so na ya. Mgbe onye ọrụ Telegram tinyere aha bot na akara @ n'ihu ya, nhọrọ ntụgharị kwesịrị ịpụta n'elu ahịrị ntinye. Ọ bụrụ na ị pịa otu n'ime ihe ndị ahụ, bot ga-eziga ozi na mkparịta ụka na nsonaazụ na bọtịnụ maka imelite na izipu data. Aha onye zitere ya ga-enwe isiokwu “via ".

A na-ebufe inlineQuery gaa na query_text site n'ọbá akwụkwọ. Koodu ahụ na-eji ọrụ answer_line weghachite nsonaazụ ọchụchọ dị ka ọtụtụ data yana mmewere inline_query_id. Anyị na-eji get_exchanges ka bot ahụ chọta ọtụtụ ego na arịrịọ.

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

Anyị na-agafe ọtụtụ data iji nweta_iq_articles iji weghachi ihe sitere na InlineQueryResultArticle site na usoro a.

def get_iq_articles (mgbanwe): nsonaazụ = [] maka exc na mgbanwe: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], aha=exc['ccy'], input_message_content=telebot.types.InputTextMessageContent ( serialize_ex(exc), parse_mode='HTML'), reply_markup=get_update_keyboard(exc), nkọwa ='Tụgharịa' + exc['base_ccy'] + ' -> ' + exc['ccy'], thumb_height=1 ) ) weghachi nsonaazụ

Ugbu a, ọ bụrụ na ị dee @ na oghere n'ahịrị, nsonaazụ ọchụchọ ga-apụta na ihuenyo - nhọrọ maka ịtụgharị n'ime ego atọ dị.

Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

Ndị ọrụ nwere ike nyochaa nsonaazụ ya site na itinye ego achọrọ.

Mgbe ịpịchara ego achọrọ site na listi ahụ, nkata ahụ na-enweta otu ozi nke ndị ọrụ bot na-enweta. Ị nwekwara ike iji bọtịnụ Mmelite. Foto dị n'okpuru na-egosi ozi emelitere ezitere site na bot:

Telegram bot na Python. Ntuziaka zuru oke iji dee bot nwere ọnụego mgbanwe site na ọkọ

mmechi

Ugbu a ị maara ka ịmepụta bot maka Telegram. Ị nwere ike tinye ngwaọrụ bara uru na mmemme gị: bọtịnụ maka imelite na iziga nsonaazụ ya na ndị ọrụ ndị ọzọ nke ozi na ọnọdụ arụnyere na-enye gị ohere iji ọrụ nke bot na-abụghị nkata na ya. Dabere na ntuziaka a, ị nwere ike ịmepụta bot ọ bụla dị mfe na ọrụ ndị ọzọ - ọ bụghị naanị nke ga-egosi ọnụego mgbanwe. Atụla egwu ịnwale ụlọ akwụkwọ, API na koodu iji mepụta onye enyemaka na-akpaghị aka nke ga-eso ndị ahịa kparịta ụka na Telegram wee wusie njikọ nke ndị nwere mmasị na ụlọ ọrụ ahụ ike.

1 Comment

  1. Fatástica publicación

Nkume a-aza