Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Ny bots ao amin'ny Telegram dia programa manampy amin'ny fifandraisana amin'ny mpihaino na manamora ny hetsika izay tsy maintsy natao tamin'ny tanana teo aloha. Ireo programa ireo dia nosoratana manokana ho an'ny sehatra messenger. Miasa toy izao ny bots: mandefa baiko amin'ny alàlan'ny tsipika fidirana ny mpampiasa, ary mamaly amin'ny hafatra na hafatra mifampiresaka ny rafitra. Indraindray aza ny programa dia maka tahaka ny fihetsiky ny olona tena izy - ny bot toy izany dia manentana ny fahatokisana bebe kokoa eo amin'ny mpanjifa.

Misy karazana rafitra maromaro ho an'ny fanampiana mandeha ho azy ho an'ny mpampiasa. Ny bots sasany dia mifandray fotsiny amin'ny mpanjifa, ny hafa dia manome vaovao tsy tapaka. Tsy azo atao ny mizara mazava ny programa ho karazana - matetika ny mpamorona dia manambatra fiasa maromaro ao anaty bot iray.

Azonao atao ny manoratra bot tsotra ho an'ny Telegram miaraka amin'ireo singa mifampiresaka amin'ny endrika bokotra eo amin'ny efijery amin'ny dingana 9. Andeha hojerentsika amin'ny antsipiriany ny tsirairay amin'izy ireo ary valio fanontaniana vitsivitsy:

  • ny fomba hanombohana bot;
  • ny fomba fisoratana anarana naorina-in fitendry avy amin`ny bokotra iray na maromaro;
  • ny fomba fandaharana ny bokotra ho an'ny asa irina;
  • inona ny mode inline sy ny fomba fametrahana azy ho an'ny bot efa misy.

Dingana 0: fototra teorika momba ny Telegram bots API

Ny fitaovana lehibe ampiasaina amin'ny famoronana bots Telegram dia ny HTML Application Programming Interface, na HTML API. Ity singa ity dia manaiky ny fangatahan'ny mpitsidika ary mandefa valiny amin'ny endrika fampahalalana. Ny endrika efa vita dia manamora ny asa amin'ny programa. Raha hanoratra bot ho an'ny Telegram dia mila mampiasa ity adiresy mailaka ity ianao: https://api.telegram.org/bot/METHOD_NAME

Ho an'ny fampandehanana tsara ny bot, ilaina ihany koa ny marika iray - fitambarana endri-tsoratra izay miaro ny programa ary manokatra ny fidirana amin'izany ho an'ny mpamorona azo itokisana. Ny famantarana tsirairay dia miavaka. Ny tady dia nomena ny bot rehefa namorona. Mety ho samy hafa ny fomba: getUpdates, getChat ary hafa. Ny safidy fomba dia miankina amin'ny algorithm izay andrasan'ny mpamorona amin'ny bot. Ohatra famantarana:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Mampiasa fangatahana GET sy POST ny bots. Matetika dia tsy maintsy ampiana ny mari-pamantarana fomba - ohatra, rehefa tokony handefa ny id chat sy lahatsoratra sasany ny fomba sendMessage. Ny parametres ho an'ny fanatsarana ny fomba dia azo ampitaina ho tady fangatahana URL amin'ny fampiasana application/x-www-form-urlencoded na amin'ny alalan'ny application-json. Ireo fomba ireo dia tsy mety amin'ny fampidinana rakitra. Ilaina ihany koa ny fanodinana UTF-8. Amin'ny fandefasana fangatahana amin'ny API dia azonao atao ny mahazo ny valiny amin'ny endrika JSON. Jereo ny valintenin'ny programa momba ny fakana vaovao amin'ny alàlan'ny fomba getME:

GET https://api.telegram.org/bot/getMe{ ok: marina, valiny: { id: 231757398, first_name: "Bot tahan'ny fifanakalozana", solon'anarana: "exchangetestbot" } }

Ny vokatra dia ho azo raha ok mitovy marina. Raha tsy izany dia hanondro fahadisoana ny rafitra.

Misy fomba roa ahazoana hafatra manokana amin'ny bots. Samy mahomby ireo fomba roa ireo, saingy mety amin'ny tranga samihafa. Mba hahazoana hafatra dia azonao atao ny manoratra fangatahana amin'ny alàlan'ny fomba getUpdates - ny programa dia hampiseho ny laharan'ny data Update eo amin'ny efijery. Ny fangatahana dia tsy maintsy alefa tsy tapaka, aorian'ny famakafakana ny array tsirairay dia averina ny fandefasana. Ny offset dia mari-pamantarana mamaritra ny isan'ny firaketana an-tsoratra alohan'ny hampidirana valiny vaovao mba hialana amin'ny fisehoan'ny zavatra voamarika. Ny tombony amin'ny fomba getUpdates dia ho tafiditra raha:

  • tsy misy fomba hanamboarana HTTPS;
  • fiteny fanoratana sarotra no ampiasaina;
  • miova tsindraindray ny mpizara bot;
  • feno mpampiasa ny bot.

Ny fomba faharoa azo soratana handraisana hafatra amin'ny mpampiasa dia setWebhook. Ampiasaina indray mandeha izy io, tsy mila mandefa fangatahana vaovao foana. Ny webhook dia mandefa fanavaozam-baovao amin'ny URL voatondro. Ity fomba ity dia mitaky fanamarinana SSL. Ny Webhook dia ilaina amin'ireto tranga ireto:

  • fiteny fandaharana amin'ny tranonkala no ampiasaina;
  • tsy be loatra ny bot, tsy dia be loatra ny mpampiasa;
  • ny mpizara dia tsy miova, ny programa dia mijanona ao amin'ny server iray ihany mandritra ny fotoana maharitra.

Amin'ny torolàlana fanampiny dia hampiasa getUpdates izahay.

Ny serivisy @BotFather Telegram dia natao hamoronana bots amin'ny chat. Ny fametrahana fototra dia napetraka amin'ny alàlan'ity rafitra ity ihany koa - BotFather dia hanampy anao hanao famaritana, hametraka sarin'ny mombamomba azy, hanampy fitaovana fanohanana. Tranomboky – andiana fangatahana HTML ho an'ny bots Telegram – hita ao amin'ny Internet, be dia be izy ireo. Rehefa namorona ny programa ohatra, dia nampiasaina ny pyTelegramBotApi.

Dingana 1: Fampiharana ny fangatahana ny tahan'ny fifanakalozana

Voalohany dia mila manoratra ny code izay manao fanontaniana ianao. Hampiasainay rehefa manoratra ny PrivatBank API, eto ambany misy rohy mankany aminy: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. Mila mampiasa ireto fomba ireto ianao amin'ny codeo:

  • load_exchange - mahita ny taham-panakalozana ary mampiseho fampahalalana voakodia;
  • get_exchange - mampiseho angona momba ny vola manokana;
  • get_exchanges - mampiseho ny lisitry ny vola araka ny santionany.

Vokatr'izany dia toy izao ny kaody ao amin'ny rakitra pb.py:

import re import requests import json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): miverina json.loads(requests.get(URL).text) def get_exchange(ccy_key ): ho an'ny exc amin'ny load_exchange(): raha ccy_key == exc['ccy']: miverina exc miverina Diso def get_exchanges(ccy_pattern): valiny = [] ccy_pattern = re.escape(ccy_pattern) + '.*' ho an'ny exc in load_exchange(): raha re.match(ccy_pattern, exc['ccy'], re.IGNORECASE) dia tsy misy: result.append(exc)

Ny programa dia afaka mamoaka izao valinteny manaraka izao amin'ireo fangatahana voafaritra:

[ { ccy:"USD", base_ccy:"UAH", mividy:"25.90000", vente:"26.25000" }, {ccy:"EUR", base_ccy:"UAH", mividy:"29.10000", vente:"29.85000 " }, { ccy:"RUR", base_ccy:"UAH", mividy:"0.37800", varotra:"0.41800" }, {ccy:"BTC", base_ccy:"USD", mividy:"11220.0384", varotra: "12401.0950" } ]

Dingana 2: Mamorona Bot Telegram miaraka amin'i @BotFather

Azonao atao ny mamorona programa handraisana hafatra sy hamaliana azy ireo amin'ny alàlan'ny serivisy @BotFather. Mandehana any amin'ny pejiny Telegram ary ampidiro ny baiko / newbot. Ny torolalana dia hiseho ao amin'ny chat, araka izay ilainao ny manoratra ny anaran'ny bot aloha, ary avy eo ny adiresiny. Rehefa noforonina ny kaonty bot, dia hisy hafatra tongasoa misy marika hiseho eo amin'ny efijery. Ho an'ny fanamafisana fanampiny dia ampiasao ireto baiko ireto:

  • /setdescription – famaritana;
  • /setabouttext – fampahalalana momba ny bot vaovao;
  • /setuserpic – sary mombamomba azy;
  • /setinline – mode inline;
  • /setcommands – famaritana ny baiko.

Amin'ny dingana fanamafisana farany dia mamaritra ny /help sy /exchange. Rehefa vita ny dingana rehetra dia tonga ny fotoana hirosoana amin'ny coding.

Dingana 3: Fametrahana sy fandefasana ny Bot

Andao hamorona rakitra config.py. Ao anatin'izany dia mila mamaritra ny kaody bot tsy manam-paharoa sy ny faritry ny fotoana hahitana fampahalalana ny programa.

TOKEN = '' # soloy amin'ny token'ny botanaoTIMEZONE = 'Europe/Kiev' TIMEZONE_COMMON_NAME = 'Kiev'

Manaraka, mamorona rakitra iray hafa miaraka amin'ny fanafarana ny pb.py efa voasoratra teo aloha, tranomboky ary singa ilaina hafa. Ny tranomboky tsy hita dia napetraka avy amin'ny rafitra fitantanana fonosana (pip).

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

Andao hampiasa ny votoatin'ny pyTelegramBotApi mba hamoronana bot. Mandefa ny mari-pamantarana voaray izahay amin'ny alàlan'ny code manaraka:

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

Ny parameter none_stop dia miantoka fa alefa tsy tapaka ny fangatahana. Ny fiasan'ny paramètre dia tsy hisy fiantraikany amin'ny fahadisoana amin'ny fomba.

Dingana 4: Soraty ny / start Command Handler

Raha vita tsara ny dingana rehetra teo aloha dia nanomboka niasa ny bot. Mamokatra fangatahana tsy tapaka ny programa satria mampiasa ny fomba getUpdates. Alohan'ny tsipika miaraka amin'ny singa none_stop dia mila sombin-kaody iray izay manodina ny baiko / start:

@bot.message_handler(commands=['manomboka']) def start_command(message): bot.send_message( message.chat.id, 'Miarahaba! Afaka asehoko anao ny tahan'ny fifanakalozana. exchange.n' + 'Raha te hahazo fanampiana dia tsindrio /help.' )

RџSЂRё commands=['manomboka'] mitovy amin'ny Marina start_command dia antsoina. Ny votoatin'ny hafatra dia mandeha any. Manaraka, mila mampihatra ny asa fandefasana ianao_hafatra mifandraika amin'ny hafatra manokana.

Dingana 5: Mamorona /help Commander Handler

Ny baiko /help dia azo ampiharina toy ny bokotra. Amin'ny fanindriana azy dia hoentina any amin'ny kaonty Telegram an'ny mpamorona ilay mpampiasa. Omeo anarana ny bokotra, toy ny hoe "Anontanio ny mpamorona". Mametraha ny parameter reply_markup, izay mamindra ny mpampiasa amin'ny rohy iray, ho an'ny fomba send_message. Andeha hosoratana ao amin'ny kaody ny mari-pamantarana mamorona ny klavier (InlineKeyboardMarkup). Boky iray ihany no ilainao (InlineKeyboardButton).

Toy izao ny kaody mpandrindra baiko farany:

@bot.message_handler(commands=['fanampiana']) def help_command(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton( 'Anontanio ny mpamorona', url='ваша ссылка на профиль' ) ) bot.send_message( message.chat.id, '1) Raha te-hahazo lisitr'ireo vola azo dia tsindrio ny /exchange.n' + '2) Kitiho ny vola mahaliana anao.n' + '3) Ianao dia hahazo hafatra misy fampahalalana momba ny loharano sy ny vola lasibatra, ' + 'ny vidin'ny fividianana sy ny varotra.n' + '4) Tsindrio ny “Update” raha te hahazo ny vaovao momba ny fangatahana. ' + 'Ny bot koa dia hampiseho ny fahasamihafana misy eo amin'ny teo aloha sy ny tahan'ny fifanakalozana ankehitriny.n' + '5) Ny bot dia manohana inline. Soraty @ amin'ny resaka rehetra sy ny litera voalohany amin'ny vola iray.', reply_markup=keyboard )

Hetsika fehezan-dalàna amin'ny chat Telegram:

Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Dingana 6: Manampy ny /exchange Commander Handler

Ity dingana ity dia ilaina mba hampisehoana bokotra misy marika amin'ny vola misy ao amin'ny chat. Ny klavier eo amin'ny efijery misy safidy dia hanampy anao hisoroka ny fahadisoana. PrivatBank dia manome fampahalalana momba ny roubles, dolara ary euro. Ny safidy InlineKeyboardButton dia miasa toy izao:

  1. Ny mpampiasa dia manindry ny bokotra miaraka amin'ny fanendrena tiana.
  2. getUpdates dia mahazo antso miverina (CallbackQuery).
  3. Lasa fantatra ny fomba fitantanana ny fanerena ny fitendry - ny fampahalalana momba ny bokotra voatsindry dia alefa.

/manakalo kaody mpitantana:

@bot.message_handler(commands=['exchange']) def exchange_command(message): kitendry = 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, 'Tsindrio ny vola nofidina:', reply_markup=keyboard )

Ny vokatry ny kaody ao amin'ny Telegram:

Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Dingana 7: Manoratra mpandrindra ho an'ny bokotra fitendry naorina

Ny fonosana pyTelegramBot Api dia misy ny @bot.callback_query_handler fampiasa haingo. Ity singa ity dia natao handikana ny antso miverina ho lasa asa iray - ny API dia mamoha sy mamorona indray ny antso. Toy izao ny tsipelina:

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

Andao koa hanoratra ny fomba get_ex_callback:

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

Misy fomba hafa mahasoa - answer_callback_query. Manampy amin'ny fanesorana ny enta-mavesatra eo anelanelan'ny fanindriana ny bokotra sy ny fampisehoana ny valiny eo amin'ny efijery. Azonao atao ny mandefa hafatra amin'ny send_exchange_query amin'ny alàlan'ny fandefasana kaody vola sy Hafatra. Andao hanoratra 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' )

Raha mandray ny valin'ny fangatahana avy amin'ny banky ny chatbot API, ny mpitsidika dia mahita ny soratra hoe "manoratra hafatra". Toa tena olona no mamaly. Mba hampisehoana famantarana toy izany eo amin'ny efijery dia mila manampy tsipika sata fidirana ianao. Avy eo, hampiasa get_exchange isika - miaraka amin'ny fanampiany, ny programa dia hahazo ny fanendrena vola (roubles, euros na dolara). Mampiasa fomba fanampiny ny send_message: mamadika ny vola ho endrika hafa ny serialize_ex, ary ny get_update_keyboard dia manangana fanalahidy malefaka izay manavao vaovao sy mandefa ny angon-drakitra momba ny tsena amin'ny resaka hafa.

Andao hanoratra ny kaody ho an'ny get_update_keyboard. Ny bokotra roa dia mila lazaina - t sy e dia mijoro ho an'ny karazana sy fifanakalozana. Ny singa switch_inline_query ho an'ny bokotra Mizara dia ilaina mba ahafahan'ny mpampiasa misafidy amin'ny chat maromaro. Ny mpitsidika dia afaka misafidy izay handefasana ny tahan'ny fifanakalozana ankehitriny amin'ny dolara, roubles na 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['mividy'], 's': ex['mivarotra'], 'c': ex['ccy'] } }).soloy(' ', '') ), telebot.types.InlineKeyboardButton ('Mizara', switch_inline_query=ex['ccy']) ) miverena kitendry

Indraindray ianao dia mila mahita hoe ohatrinona no niova ny tahan'ny fifanakalozana tao anatin'ny fotoana fohy. Andao hanoratra fomba roa ho an'ny bokotra Fanavaozana mba ahafahan'ny mpampiasa mahita fampianarana ampitahaina.

Ny fahasamihafana eo amin'ny taham-panakalozana dia alefa any amin'ny serializer amin'ny alàlan'ny diff parameter.

Ny fomba voalaza dia tsy miasa raha tsy aorian'ny fanavaozana ny angon-drakitra, tsy hisy fiantraikany amin'ny fampisehoana voalohany amin'ny fampianarana.

def serialize_ex(ex_json, diff=Tsy misy): valiny = '' + ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'Mividiana: ' + ex_json ['mividy'] raha diff: valiny += ' ' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'Mivarotra: ' + ex_json ['varotana'] + ' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' else: result += 'nSell:' + ex_json['sale'] + 'n' return result def serialize_exchange_diff(diff): result = '' raha tsy mitovy > 0: valiny = '(' + 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: valiny = '(' + 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">)' valiny

Alaivo sary an-tsaina hoe te hahalala ny tahan'ny fifanakalozana dolara ilay mpitsidika. Izao no mitranga raha misafidy USD amin'ny hafatra ianao:

Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Dingana 8: Mampihatra ny Update Button Handler

Andao hanoratra ny kaody amin'ny fikarakarana hetsika miaraka amin'ny bokotra Fanavaozana ary ampio ny ampahany iq_callback_method ao aminy. Rehefa manomboka amin'ny mari-pamantarana get ny singa fandaharana dia tsy maintsy manoratra get_ex_callback ianao. Amin'ny toe-javatra hafa, manara-maso ny JSON izahay ary manandrana maka ny fanalahidy t.

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data raha data.startswith('get-'): get_ex_callback(query) hafa: andramo: raha json.loads(data)[ 't'] == 'u': edit_message_callback(query) afa-tsy ValueError: pass

Raha t mitovy aminao ianao dia mila manoratra programa ho an'ny fomba edit_message_callback. Andeha hovakiantsika tsikelikely ity dingana ity:

  1. Misintona vaovao farany momba ny toetry ny tsenan'ny vola (exchange_now = pb.get_exchange(data['c']).
  1. Manoratra hafatra vaovao amin'ny alàlan'ny serializer misy diff.
  2. Manampy sonia (get_edited_signature).

Raha tsy miova ny hafatra voalohany dia antsoy ny fomba 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() raha 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' )

Andao hanoratra ny fomba get_ex_from_iq_data hametahana JSON:

def get_ex_from_iq_data(exc_json): miverina { 'mividy': exc_json['b'], 'mivarotra': exc_json['s'] }

Mila fomba vitsivitsy fanampiny ianao: ohatra, get_exchange_diff, izay mamaky ny vaovao taloha sy vaovao momba ny vidin'ny vola ary mampiseho ny fahasamihafana.

def get_exchange_diff(farany, ankehitriny): miverina { 'varotana_diff': float("%.6f" % (float(ankehitriny ['varotana']) - float(farany['varotana']))), 'buy_diff': float ("%.6f" % (mitsingevana(ankehitriny['mividy']) - mitsingevana(farany['mividy']))) }

Ny farany, get_edited_signature, dia mampiseho ny fotoana nanavaozana farany ny fampianarana.

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

Vokatr'izany, ny hafatra nohavaozina avy amin'ny bot miaraka amin'ny tahan'ny fifanakalozana dia toa izao:

Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Rehefa miova ny fampianarana, dia aseho amin'ny hafatra ny fahasamihafana misy eo amin'ny soatoavina noho ny mari-pamantarana voatondro.

Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Dingana 9: Fampiharana Mode Embedded

Ilaina ny maodely naorina mba handefasana haingana ny vaovao avy amin'ny programa amin'ny chat rehetra - tsy mila manampy bot amin'ny resaka ianao amin'ny maha mpandray anjara anao. Rehefa misy mpampiasa Telegram miditra anarana bot miaraka amin'ny famantarana @ eo anoloana, dia tokony hiseho eo ambonin'ny tsipika fidirana ny safidy fiovam-po. Raha manindry ny iray amin'ireo entana ianao, dia handefa hafatra amin'ny resaka miaraka amin'ny valiny sy bokotra ny bot amin'ny fanavaozana sy fandefasana data. Ny anaran'ny mpandefa dia hisy soratra hoe “via ".

InlineQuery dia alefa amin'ny query_text amin'ny alàlan'ny tranomboky. Ny kaody dia mampiasa ny asa answer_line mba haka ny valin'ny fikarohana ho toy ny angona angona sy singa inline_query_id. Mampiasa get_exchanges izahay mba hahitan'ny bota vola maromaro raha angatahina.

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

Mandefa angon-drakitra maromaro izahay amin'ny get_iq_articles mba hamerenana zavatra avy amin'ny InlineQueryResultArticle amin'ny alàlan'ity fomba ity.

def get_iq_articles(exchanges): valiny = [] ho an'ny exc amin'ny fifanakalozana: 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='Convert ' + exc['base_ccy'] + ' -> ' + exc['ccy'], thumb_height=1 ) ) vokatra miverina

Ankehitriny, raha manoratra @ ary toerana iray ao amin'ny andalana, ny valin'ny fikarohana dia hiseho eo amin'ny efijery - safidy hanovana vola telo misy.

Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Ny mpampiasa dia afaka manivana ny valiny amin'ny fampidirana ny vola irina.

Rehefa avy manindry ny vola irina avy amin'ny lisitra, ny chat dia mahazo hafatra mitovy izay azon'ny mpampiasa bot. Azonao atao koa ny mampiasa ny bokotra Update. Ny sary eto ambany dia mampiseho ny hafatra nohavaozina nalefa tamin'ny alalan'ny bot:

Telegram bot amin'ny Python. Torolàlana feno amin'ny fanoratana bot miaraka amin'ny taham-panakalozana hatrany am-boalohany

Famaranana

Ankehitriny fantatrao ny fomba hamoronana bot ho an'ny Telegram. Azonao atao ny manampy fitaovana mahasoa amin'ny programanao: bokotra hanavaozana sy handefasana ny valiny amin'ireo mpampiasa hafa amin'ny messenger ary fomba iray namboarina izay ahafahanao mampiasa ny asan'ny bot ivelan'ny chat miaraka aminy. Miorina amin'ity torolalana ity, azonao atao ny mamorona bot tsotra miaraka amin'ny fiasa hafa - fa tsy ilay mampiseho ny tahan'ny fifanakalozana ihany. Aza matahotra ny manandrana amin'ny tranomboky, API ary kaody mba hamoronana mpanampy mandeha ho azy izay hiresaka amin'ny mpanjifa amin'ny Telegram ary hanamafy ny fifandraisan'ny olona liana amin'ny orinasa.

1 Comment

  1. Fantástica publicación

Leave a Reply