Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

Bots i Telegram o polokalame ia e fesoasoani e faʻatūina fesoʻotaʻiga ma le au maimoa pe faʻafaigofie gaioiga na tatau ona faia muamua ma le lima. O nei polokalame ua tusia faapitoa mo le tulaga avefeau. Bots e galue i lenei auala: e tuʻuina atu e le tagata faʻaoga se faʻatonuga e ala i le laina faʻapipiʻi, ma tali atu le faiga i se tusitusiga poʻo se feʻau fefaʻatauaʻiga. O nisi taimi e faʻataʻitaʻi ai e le polokalame gaioiga a se tagata moni - o sea bot e faʻaosofia atili ai le faʻalagolago i tagata faʻatau.

E tele ituaiga faiga mo fesoasoani otometi i tagata fa'aoga. O nisi bots naʻo fesoʻotaʻiga ma tagata faʻatau, o isi e masani ona tuʻuina atu faʻamatalaga. E le mafai ona vaevae manino polokalame i ituaiga - e masani ona tuʻufaʻatasia e le au atinaʻe le tele o galuega i le tasi bot.

E mafai ona e tusia se pusa faigofie mo Telegram faʻatasi ai ma elemene fesoʻotaʻi i foliga o faʻamau i luga ole mata ile 9 laasaga. Se'i o tatou va'ai au'ili'ili i latou ta'itasi ma tali ni nai fesili:

  • auala e amata ai se bot;
  • pe fa'afefea ona resitala se piano fa'apipi'i mai le tasi pe sili atu fa'amau;
  • auala e fa'apolokalame ai fa'amau mo galuega e mana'omia;
  • o le a le inline mode ma pe faʻafefea ona faʻatulagaina mo se bot o iai.

Laasaga 0: faʻamatalaga faʻamatalaga e uiga i le Telegram bots API

O le meafaigaluega autu na faʻaaogaina e fatu ai Telegram bots o le HTML Application Programming Interface, poʻo le HTML API. O lenei elemene e talia talosaga a tagata asiasi ma auina atu tali i le tulaga o faʻamatalaga. O mamanu ua saunia e faafaigofieina ai le galuega i le polokalame. Ina ia tusi se bot mo Telegram, e tatau ona e faʻaogaina lenei tuatusi imeli: https://api.telegram.org/bot/METHOD_NAME

Mo le faʻaogaina saʻo o le bot, e manaʻomia foʻi se faʻailoga - o se tuʻufaʻatasiga o mataitusi e puipuia ai le polokalame ma tatala avanoa i ai i tagata faʻalagolago. E tulaga ese faailoga taitasi. O le manoa o loʻo tuʻuina atu i le bot i luga o le foafoaga. Metotia e mafai ona ese: getUpdates, getChat ma isi. O le filifiliga o le auala e faʻalagolago i le mea e faʻamoemoeina e le au atinaʻe mai le bot. Fa'ata'ita'iga fa'ailoga:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

E fa'aaoga e Bots talosaga GET ma POST. E masani ona tatau ona faʻaopoopoina faʻasologa o metotia - mo se faʻataʻitaʻiga, pe a faʻapea o le auala sendMessage e tatau ona lafo ai le chat id ma nisi tusitusiga. Parameters mo le faʻaleleia o metotia e mafai ona pasia e avea o se URL fesili e faʻaaoga ai le talosaga/x-www-form-urlencoded poʻo le talosaga-json. O nei metotia e le talafeagai mo le la'uina o faila. UTF-8 encoding e manaʻomia foʻi. E ala i le tuʻuina atu o se talosaga i le API, e mafai ona e maua le faʻaiʻuga ile JSON format. Vaʻai ile tali ole polokalame ile toe maua mai o faʻamatalaga e ala ile auala getME:

MAUA https://api.telegram.org/bot/getMe{ lelei: moni, i'uga: { id: 231757398, first_name: "Exchange Rate Bot", username: "exchangetestbot" } }

O le taunuuga o le a maua pe afai ok tutusa moni. A leai, o le a fa'aalia e le faiga se mea sese.

E lua auala e maua ai feʻau masani i bots. O auala uma e lua e aoga, ae talafeagai i tulaga eseese. Mo le mauaina o feʻau, e mafai ona e tusi ma le lima se talosaga i le getUpdates method - o le polokalama o le a faʻaalia le faʻasologa o faʻamaumauga Faʻafouina i luga o le lau. O talosaga e tatau ona lafo i taimi uma, pe a uma ona suʻesuʻeina laina taʻitasi, e toe faʻafeiloaʻi le lafoina. Offset o se ta'otoga e iloa ai le aofa'i o fa'amaumauga fa'ase'e a'o le'i utaina se fa'ai'uga fou e 'alofia ai le toe aliali mai o mea ua siaki. O faʻamanuiaga o le getUpdates metotia o le a faʻaaogaina pe afai:

  • e leai se auala e faʻapipiʻi ai le HTTPS;
  • fa'aaogaina gagana tusitusi lavelave;
  • e suia le server bot mai lea taimi i lea taimi;
  • o loʻo faʻatumuina le bot i tagata faʻaoga.

O le auala lona lua e mafai ona tusia e maua ai feʻau faʻaoga o le setWebhook. E faʻaaogaina tasi, e le manaʻomia le tuʻuina atu pea o talosaga fou. E auina atu e le webhook faʻamatalaga faʻamatalaga i le URL faʻamaonia. O lenei metotia e manaʻomia ai se tusi faamaonia SSL. O le a aoga le Webhook i tulaga nei:

  • o lo'o fa'aogaina gagana polokalame i luga ole laiga;
  • e le mamafa tele le bot, e le tele naua tagata faʻaoga;
  • e le suia le 'auʻaunaga, o loʻo tumau pea le polokalama i le server lava e tasi mo se taimi umi.

I nisi faʻatonuga, matou te faʻaogaina getUpdates.

O le @BotFather Telegram auaunaga ua mamanuina e fatu ai talatalanoaga bots. O loʻo faʻatulagaina foʻi tulaga faʻavae e ala i lenei faiga - BotFather o le a fesoasoani ia te oe e fai se faʻamatalaga, tuʻu se ata faʻamatalaga, faʻaopoopo meafaigaluega lagolago. Faletusi - seti o talosaga HTML mo Telegram bots - o loʻo maua i luga ole Initaneti, e tele naua. I le fatuina o le polokalame faʻataʻitaʻiga, pyTelegramBotApi sa faʻaaogaina.

Laasaga 1: Fa'atino Talosaga Fetufaaiga

Muamua e tatau ona e tusia le code e faia ai fesili. Matou te fa'aogaina pe a tusia le PrivatBank API, o lo'o i lalo se so'oga i ai: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. E te manaʻomia le faʻaogaina o metotia nei i lau code:

  • load_exchange - su'e fua faatatau ma fa'aalia fa'amatalaga fa'ailoga;
  • get_exchange - faʻaalia faʻamatalaga e uiga i se tupe faʻapitoa;
  • get_exchanges - faʻaalia le lisi o tupe e tusa ai ma le faʻataʻitaʻiga.

O se taunuuga, o le code i le pb.py faila e pei o lenei:

faaulufale mai toe faaulufale mai talosaga faaulufale mai json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): toe faafoi json.loads(requests.get(URL).text) def get_exchange(ccy_key ): mo exc i load_exchange(): afai ccy_key == exc ['ccy']: toe faafoi exc toe faafoi False def get_exchanges(ccy_pattern): taunuuga = [] ccy_pattern = re.escape(ccy_pattern) + '.*' mo exc in load_exchange(): pe afai re.match(ccy_pattern, exc ['ccy'], re.IGNORECASE) e le leai: result.append(exc) toe faafoi i'uga

E mafai e le polokalame ona tuʻuina atu le tali lea i talosaga faʻapitoa:

[ { ccy:"USD", base_ccy:"UAH", faatau:"25.90000", faatau:"26.25000" }, {ccy:"EUR", base_ccy:"UAH", faatau:"29.10000", faatau:"29.85000 "}, {ccy:"RUR", base_ccy:"UAH", fa'atau:"0.37800", fa'atau:"0.41800"}, {ccy:"BTC", base_ccy:"USD", fa'atau:"11220.0384", fa'atau: "12401.0950" } ]

Laasaga 2: Fausia se Telegram Bot ma @BotFather

E mafai ona e fatuina se polokalame mo le mauaina o feʻau ma tali atu ia i latou e faʻaaoga ai le @BotFather auaunaga. Alu i lana itulau Telegram ma ulufale i le / newbot poloaiga. O faʻatonuga o le a faʻaalia i le talatalanoaga, e tusa ai ma le mea e te manaʻomia e tusi muamua ai le igoa o le bot, ona sosoo ai lea ma lona tuatusi. A fa'atūina le fa'amatalaga bot, o le a fa'aalia se fe'au fa'afeiloa'i o lo'o iai se fa'ailoga i luga o le lau. Mo nisi faʻatulagaga, faʻaaoga tulafono nei:

  • /setdescription – faʻamatalaga;
  • /setaouttext - faʻamatalaga e uiga i le bot fou;
  • /setuserpic – ata fa'apitoa;
  • /setinline – faiga i totonu;
  • /setcommands - faʻamatalaga o poloaiga.

I le laasaga mulimuli, matou te faamatalaina /fesoasoani ma /fetufaaiga. A mae'a uma laasaga, ua o'o i le taimi e fa'agasolo ai i le coding.

Laasaga 3: Faʻatūina ma faʻalauiloa le Bot

Tatou fai se faila config.py. I totonu, e tatau ona e faʻamaonia le code bot tulaga ese ma le sone taimi lea o le a maua ai e le polokalame faʻamatalaga.

TOKEN = '' # sui i lau bot's tokenTIMEZONE = 'Europa/Kiev' TIMEZONE_COMMON_NAME = 'Kiev'

Le isi, matou te fatuina se isi faila ma le faʻaulufaleina mai o le pb.py na tusia muamua, faletusi ma isi vaega talafeagai. O faletusi o loʻo misi o loʻo faʻapipiʻiina mai le faʻaogaina o pusa (pip).

fa'aulufale mai telebotimport configimport pbimport datetimeimport pytzimport jsonimport traceback P_TIMEZONE = pytz.timezone(config.TIMEZONE) TIMEZONE_COMMON_NAME = config.TIMEZONE_COMMON_NAME

Tatou fa'aoga le anotusi o le pyTelegramBotApi e fai ai se bot. Matou te lafoina le faʻailoga na maua e faʻaaoga ai le code lea:

bot = telebot.TeleBot(config.TOKEN) bot.polling(leai_stop=Sa'o)

O le none_stop parameter e faʻamautinoa o loʻo auina atu pea talosaga. O le faʻaogaina o le parakalafa o le a le afaina i auala sese.

Laasaga 4: Tusi le /start Command Handler

Afai e sa'o uma laasaga muamua, ua amata ona galue le bot. O le polokalame e faʻatupuina talosaga i taimi uma ona e faʻaaogaina le getUpdates method. Aʻo leʻi oʻo i le laina ma le none_stop elemene, matou te manaʻomia se fasi code e faʻagasolo ai le / start command:

@bot.message_handler(commands=['amata']) def start_command(message): bot.send_message( message.chat.id, 'Talofa! E mafai ona ou faaali atu ia te oe le fesuiaiga o tau.n' + 'Ia maua le fesuiaiga o tupe lolomi / exchange.n' + 'Ia maua se fesoasoani fetaomi /fesoasoani.' )

RџSЂRё commands=['amata'] tutusa ma Moni start_command ua valaauina. O le anotusi o le savali e alu iina. Le isi, e tatau ona e faʻatinoina le galuega lafo_feau e faatatau i se feau faapitoa.

Laasaga 5: Fausia se /help Command Handler

O le /fesoasoani poloaiga e mafai ona faʻatinoina o se faʻamau. O le kiliki i luga, o le a ave le tagata faʻaoga i le faʻamatalaga Telegram a le tagata e faia. Tu'u le fa'amau se igoa, e pei o le "Fesili i le tagata atia'e". Seti le reply_markup parameter, lea e toe faʻafeiloaʻi le tagata faʻaoga i se soʻotaga, mo le auala send_message. Sei o tatou tusia i le code le parakalafa e fatuina ai le piano (InlineKeyboardMarkup). E na'o le tasi le faamau (InlineKeyboardButton).

O le fa'atonuga fa'atonu code e foliga fa'apea:

@bot.message_handler(commands=['fesoasoani']) def help_command(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton( 'Fesili i le na te faia', url='ваша ссылка на профиль' ) bot.send_message( message.chat.id, '1) Ina ia maua se lisi o tupe avanoa lolomi /exchange.n' + '2) Kiliki le tupe e te fiafia i ai.n' + '3) Oe o le a maua se feʻau o loʻo i ai faʻamatalaga e uiga i le puna ma tupe faʻatatau, ' + 'faʻatau fua ma faʻatau rates.n' + '4) Kiliki "Faʻafouina" e maua ai faʻamatalaga o loʻo iai nei e uiga i le talosaga. ' + 'O le a fa'aalia fo'i e le bot le 'ese'esega i le va o le tau fa'afesuia'i muamua ma le taimi nei.n' + '5) E lagolagoina e le bot i le laina. Tu'i @ i soo se talanoaga ma mataitusi muamua o se tupe.', reply_markup=keyboard )

Faiga fa'ailoga ile Telegram chat:

Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

Laasaga 6: Faʻaopoopoina le /exchange Command Handler

O lenei laasaga e manaʻomia e faʻaalia ai faʻamau ma faʻailoga o tupe maua i le talatalanoaga. O le keyboard i luga o le lau ma filifiliga o le a fesoasoani ia te oe e aloese mai mea sese. PrivatBank o loʻo tuʻuina atu faʻamatalaga i luga o le ruble, tala ma le euro. O le InlineKeyboardButton filifiliga e galue e pei o lenei:

  1. O le tagata fa'aoga e kiliki i luga o le ki ma le fa'ailoga mana'omia.
  2. getUpdates maua se toe valaau (CallbackQuery).
  3. Ua iloa le auala e taulima ai le oomiina o le piano - o faʻamatalaga e uiga i le ki oomi e faʻasalalau.

/fa'afesuia'i fa'ailoga fa'atau:

@bot.message_handler(poloaiga=['fesuiaiga']) def exchange_command(message): 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, 'Kiliki i le tupe e filifili ai:', reply_markup=keyboard )

Le taunuuga o le code i Telegram:

Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

Laasaga 7: Tusia o se fa'aulu mo fa'amau fa'apipi'i

O le pyTelegramBot Api afifi o lo'o i ai le galuega @bot.callback_query_handler teuteuga. O lenei vaega ua mamanuina e fa'aliliu ai le toe fo'i i totonu o se galuega - o le API e tatalaina ma toe faia le valaau. Ua sipelaina faapenei:

@bot.callback_query_handler(func=lambda valaau: Moni) def iq_callback(query): data = query.data pe afai data.startswith('get-'): get_ex_callback(query)

Tatou tusi foi le get_ex_callback method:

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

O loʻo i ai se isi auala aoga - answer_callback_query. E fesoasoani e aveese le uta i le va o le oomiina o le ki ma faʻaalia le iʻuga i luga o le lau. E mafai ona e auina atu se fe'au e send_exchange_query e ala i le pasi atu o se numera o tupe ma le Feau. Tatou tusi send_exchange_result:

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

A'o maua e le chatbot le taunu'uga o le talosaga mai le faletupe API, e vaʻaia e le tagata asiasi le faʻailoga "taina o se feʻau". E foliga mai o se tagata moni o loo tali mai. Ina ia faʻaalia se faʻailoga faʻapea i luga o le lau, e te manaʻomia le faʻaopoopoina o laina tulaga faʻaoga. O le isi, matou te faʻaaogaina get_exchange - faʻatasi ai ma lana fesoasoani, o le a maua e le polokalame le faʻailoga tupe (rubles, euros poʻo tala). send_message e fa'aoga auala fa'aopoopo: fa'aliliuina e serialize_ex le tupe i se isi fa'atulagaga, ma fa'atūina e get_update_keyboard ki vaivai e fa'afou ai fa'amatalaga ma lafo fa'amatalaga tau maketi i isi talatalanoaga.

Tatou tusi le code mo get_update_keyboard. E lua fa'amau e tatau ona ta'ua - t ma e tu mo le ituaiga ma fefa'asoa'iga. Ole aitema switch_inline_query mo le Fa'asoa fa'amau e mana'omia ina ia mafai e le tagata fa'aoga ona filifili mai le tele o talatalanoaga. O le a mafai e le tagata asiasi ona filifili po o ai e lafo i ai le fesuiaiga o tupe o loʻo iai nei o le tala, ruble poʻo le euro.

def get_update_keyboard(ex): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton( 'Update', callback_data=json.dumps({ 't': 'u', 'e': { ' b': ex['fa'atau'], 's': ex['fa'atau'], 'c': ex['ccy'] } }).suia(' ', '') ), telebot.types.InlineKeyboardButton ('Share', switch_inline_query=ex['ccy']) ) toe fo'i le keyboard

O nisi taimi e tatau ona e vaʻai pe fia le suiga o le fesuiaiga i se taimi puupuu. Se'i o tatou tusia ni auala se lua mo le fa'amau Fa'afou ina ia mafai ai e tagata fa'aoga ona va'ai vasega i fa'atusatusaga.

O le eseesega i le va o le fesuiaiga o tau e pasi atu i le serializer e ala i le diff parameter.

O metotia faʻatonu e galue pe a uma ona faʻafouina faʻamaumauga, latou te le afaina ai le faʻaaliga muamua o le vasega.

def serialize_ex(ex_json, diff=Leai): taunuuga = '' + ex_json['base_ccy'] + ' -> ' + ex_json ['ccy'] + ':nn' + 'Fa'atau: ' + ex_json['fa'atau'] pe'ā 'ese'ese: taunu'uga += ' ' + serialize_exchange_diff(eseese ['fa'atau_diff']) + 'n' + 'Fa'atau: ' + ex_json ['fa'atau'] + ' ' + serialize_exchange_diff(eseese ['sale_diff']) + 'n' isi: i'uga += 'nFa'atau: ' + ex_json ['fa'atau'] + 'n' toe fa'afo'i fa'ai'uga def serialize_exchange_diff(eseese): i'uga = '' pe 'ese > 0: taunuuga = '(' + str(eseese) + ' " 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: result = '(' + str( ese)[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">)' i'uga toe faafoi

Vaai faalemafaufau na fia iloa e le tagata asiasi le tau o le fesuiaiga o tala. Ole mea lea e tupu pe a e filifilia le USD ile fe'au:

Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

Laasaga 8: Fa'atino le Fa'afou Fa'amau Fa'atonu

Sei o tatou tusia le code mo le taulimaina o gaioiga i le Update button ma faaopoopo i ai le vaega iq_callback_method. A amata mea o le polokalame i le get parameter, e tatau ona e tusi get_ex_callback. I isi tulaga, matou te faʻasalalau JSON ma taumafai e maua le ki t.

@bot.callback_query_handler(func=lambda valaau: Moni) def iq_callback(query): data = query.data pe afai data.startswith('get-'): get_ex_callback(query) isi: taumafai: afai json.loads(data)[ 't'] == 'u': edit_message_callback(fa'fesili) vagana ai le ValueError: pasi

Afai e tutusa le t, e tatau ona e tusia se polokalame mo le edit_message_callback method. Se'i o tatou ta'oto i lalo le fa'agasologa lea i lea la'asaga:

  1. Si'itia fa'amatalaga lata mai e uiga i le tulaga o le maketi o tupe (exchange_now = pb.get_exchange(data['c']).
  1. Tusia o se fe'au fou e ala i se fa'asologa fa'asalalau fa'atasi.
  2. Fa'aopoopoina se saini (get_edited_signature).

Afai e le suia le savali muamua, valaau le edit_message_text method.

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() pe afai query.message: bot.edit_message_text( text, query.message.chat.id, query.message.message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' ) elif query.inline_message : bot.edit_message_text( text, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' )

Sei o tatou tusia le get_ex_from_iq_data method e fa'avasega ai le JSON:

def get_ex_from_iq_data(exc_json): toe faafoi { 'fa'atau': exc_json['b'], 'fa'atau': exc_json['s'] }

E te manaʻomia ni nai metotia: mo se faʻataʻitaʻiga, get_exchange_diff, lea e faitau ai faʻamatalaga tuai ma fou e uiga i le tau o tupe ma faʻaalia le eseesega.

def get_exchange_diff(mulimuli, nei): toe fo'i { 'fa'atau_ese'ese': fa'afefe("%.6f" % (fa'opeopea(le taimi nei['fa'atau']) - fa'anofoa(mulimuli['fa'atau']))), 'fa'atau_ese'ese': fa'afefe ("%.6f" % (fa'opeopea(i le taimi nei['fa'atau']) - fa'anofoa(mulimuli['fa'atau']))) }

O le mea mulimuli, get_edited_signature, o lo'o fa'aalia ai le taimi na toe fa'afouina ai le kosi.

def get_edited_signature(): toe fo'i 'Fa'afouina ' + str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + '(' + TIMEZONE_COMMON_NAME + ')'

O le i'uga, o le fe'au fa'afou mai le bot ma se tau fa'afesuia'i mautu e pei o lenei:

Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

Pe a suia le vasega, o le eseesega i le va o tau o loʻo faʻaalia i le feʻau ona o faʻatonuga faʻatulagaina.

Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

Laasaga 9: Fa'atinoina le Faiga Fa'apipi'i

E manaʻomia le faiga faʻapipiʻi e vave auina atu faʻamatalaga mai le polokalame i soʻo se talatalanoaga - o lea e te le manaʻomia le faʻaopoopoina o se bot i le talanoaga o se tagata auai. Pe a ulufale se tagata Telegram i se igoa bot ma se @ faʻailoga i luma, e tatau ona faʻaalia filifiliga liliu i luga aʻe o le laina faʻaoga. Afai e te kiliki i luga o se tasi o mea, o le a tuʻuina atu e le bot se feʻau i le talanoaga ma faʻaiʻuga ma faʻamau mo le faʻafouina ma le lafoina o faʻamatalaga. O le igoa o le tagata e auina atu o le a iai le faʻamatalaga “via ".

Ole InlineQuery ua pasi ile query_text ile faletusi. E fa'aogaina e le code le tali_line galuega e toe aumai ai fa'ai'uga o su'esu'ega o se fa'asologa o fa'amaumauga ma le inline_query_id elemene. Matou te fa'aogaina get_exchanges ina ia maua e le bot ni tupe se tele pe a talosaga.

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

Matou te pasia le tele o faʻamaumauga e maua ai_iq_articles ina ia mafai ona toe faʻafoʻi mea mai le InlineQueryResultArticle e ala i lenei metotia.

def get_iq_articles(fesuiaiga): taunuuga = [] mo exc i fesuiaiga: 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='Su'esu'e ' + exc['base_ccy'] + ' -> ' + exc ['ccy'], thumb_height=1 ) ) toe faafoi i'uga

Ia, afai e te tusia @ ma se avanoa i le laina, o suʻesuʻega o le a faʻaalia i luga o le lau - filifiliga mo le liua i ni tupe maua se tolu.

Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

E mafai e tagata fa'aoga ona fa'amama fa'ai'uga e ala i le fa'aofiina o le tupe e mana'omia.

A maeʻa ona kiliki i luga o le tupe manaʻomia mai le lisi, e maua e le talatalanoaga le feʻau tutusa e maua e tagata faʻaoga bot. E mafai fo'i ona e fa'aogaina le fa'afou fa'amau. O le ata o loʻo i lalo o loʻo faʻaalia ai le feʻau faʻafouina na lafoina e ala i le bot:

Telegram bot i le Python. O se ta'iala atoatoa i le tusiaina o se bot ma le fesuiaiga o tau mai le sasa

iʻuga

O lea ua e iloa le auala e fai ai se bot mo Telegram. E mafai ona e faʻaopoopo meafaigaluega aoga i lau polokalame: faʻamau mo le faʻafouina ma le tuʻuina atu o le taunuʻuga i isi tagata faʻaoga o le avefeau ma se faiga faʻapipiʻi e mafai ai ona e faʻaogaina galuega a le bot i fafo atu o le talanoaga ma ia. Faʻavae i luga o lenei faʻatonuga, e mafai ona e fatuina soʻo se bot faigofie ma isi galuega - e le gata o le mea e faʻaalia ai le fesuiaiga o tau. Aua e te fefe e faʻataʻitaʻi i faletusi, API, ma code e fatu ai se fesoasoani faʻapitoa e talanoa ma tagata faʻatau i luga o Telegram ma faʻamalosia le fesoʻotaʻiga o tagata fiafia ma le kamupani.

1 Faamatalaga

  1. Fatástica publicación

Tuua se tali