I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Amabhothi kuTelegramu izinhlelo ezisiza ukuthola ukuthintana nezithameli noma ukwenza lula izenzo obekumele zenziwe mathupha ngaphambilini. Lezi zinhlelo zibhalelwe ngokukhethekile inkundla yesithunywa. Amabhothi asebenza ngale ndlela: umsebenzisi uthumela umyalo ngomugqa wokufaka, futhi uhlelo luphendula ngombhalo noma umlayezo osebenzayo. Ngezinye izikhathi uhlelo luze lulingise izenzo zomuntu wangempela - i-bot enjalo ikhuthaza ukwethembana okwengeziwe phakathi kwamakhasimende.

Kunezinhlobo ezimbalwa zamasistimu osizo oluzenzakalelayo kubasebenzisi. Amanye ama-bots axhumana nje namakhasimende, amanye ahlinzeka ngolwazi njalo. Akunakwenzeka ukuhlukanisa ngokucacile izinhlelo zibe izinhlobo - abathuthukisi bavame ukuhlanganisa imisebenzi eminingana ku-bot eyodwa.

Ungabhala i-bot elula yeTelegramu enezici ezisebenzisanayo ngesimo sezinkinobho ezikusikrini ngezinyathelo eziyi-9. Ake sibheke ngayinye yazo ngokuningiliziwe futhi siphendule imibuzo embalwa:

  • ungaqala kanjani i-bot;
  • indlela yokubhalisa ikhibhodi eyakhelwe ngaphakathi kusuka kunkinobho eyodwa noma ngaphezulu;
  • indlela yokuhlela izinkinobho zemisebenzi oyifunayo;
  • iyini imodi engaphakathi komugqa nokuthi ungayisethela kanjani i-bot ekhona.

Isinyathelo 0: isizinda sethiyori mayelana ne-Telegraph bots API

Ithuluzi eliyinhloko elisetshenziselwa ukwakha i-Telegram bots i-HTML Application Programming Interface, noma i-HTML API. Lesi sici samukela izicelo zezivakashi futhi sithumela izimpendulo ngendlela yolwazi. Imiklamo eyenziwe ngomumo yenza umsebenzi ohlelweni lube lula. Ukubhala i-bot yeTelegramu, udinga ukusebenzisa leli kheli le-imeyili: https://api.telegram.org/bot/METHOD_NAME

Ukuze kusebenze kahle i-bot, ithokheni nayo iyadingeka - inhlanganisela yezinhlamvu ezivikela uhlelo futhi zivule ukufinyelela kulo kubathuthukisi abathembekile. Ithokheni ngayinye ihlukile. Iyunithi yezinhlamvu inikezwe i-bot lapho idalwa. Izindlela zingahluka: getUpdates, getChat nezinye. Ukukhethwa kwendlela kuncike ekutheni iyiphi i-algorithm abathuthukisi abayilindele ku-bot. Isibonelo sethokheni:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Amabhothi asebenzisa izicelo ze-GET ne-POST. Imingcele yendlela ngokuvamile kufanele yengezwe - isibonelo, lapho indlela ye-sendMessage kufanele ithumele i-id yengxoxo nombhalo othile. Amapharamitha okuthuthukisa indlela angadluliswa njengochungechunge lombuzo we-URL kusetshenziswa uhlelo lokusebenza/x-www-form-urlencoded noma nge-application-json. Lezi zindlela azifanelekile ukulanda amafayela. Umbhalo wekhodi we-UTF-8 nawo uyadingeka. Ngokuthumela isicelo ku-API, ungathola umphumela ngefomethi ye-JSON. Bheka impendulo yohlelo ekubuyiseni ulwazi ngendlela ye-getME:

THOLA ku-https://api.telegram.org/bot/getMe{ ok: iqiniso, umphumela: {id: 231757398, first_name: "Exchange Rate Bot", igama lomsebenzisi: "exchangetestbot" }}

Umphumela uzotholakala uma ok kufana weqiniso. Uma kungenjalo, uhlelo luzobonisa iphutha.

Kunezindlela ezimbili zokuthola imilayezo yangokwezifiso kuma-bots. Zombili izindlela ziyasebenza, kodwa zifanelekile ezimweni ezihlukene. Ukuze uthole imilayezo, ungabhala isicelo mathupha ngendlela ye-getUpdates - uhlelo luzobonisa uhlu lwedatha ethi Buyekeza esikrinini. Izicelo kufanele zithunyelwe njalo, ngemva kokuhlaziya uhlu ngalunye, ukuthumela kuyaphindwa. I-Offset iyipharamitha enquma inani lamarekhodi eqiwe ngaphambi kokulayisha umphumela omusha ukugwema ukuvela kabusha kwezinto ezihloliwe. Izinzuzo zendlela ye-getUpdates zizosebenza uma:

  • ayikho indlela yokumisa i-HTTPS;
  • izilimi zokubhala eziyinkimbinkimbi zisetshenziswa;
  • iseva ye-bot iyashintsha ngezikhathi ezithile;
  • i-bot ilayishwe ngabasebenzisi.

Indlela yesibili engabhalwa ukuze uthole imilayezo yomsebenzisi isethiWebhook. Isetshenziswa kanye, asikho isidingo sokuthumela izicelo ezintsha njalo. I-webhook ithumela izibuyekezo zedatha ku-URL eshiwo. Le ndlela idinga isitifiketi se-SSL. I-Webhook izoba usizo kulezi zimo:

  • izilimi zokuhlela iwebhu zisetshenziswa;
  • i-bot ayilayishiwe ngokweqile, abasebenzisi abaningi kakhulu;
  • iseva ayishintshi, uhlelo luhlala kuseva efanayo isikhathi eside.

Kweminye imiyalelo, sizosebenzisa i-getUpdates.

Isevisi ye-@BotFather Telegraph yakhelwe ukudala ama-chat bots. Izilungiselelo eziyisisekelo nazo zisethwe ngalolu hlelo - I-BotFather izokusiza wenze incazelo, ubeke isithombe sephrofayela, wengeze amathuluzi okusekela. Imitapo yolwazi - amasethi ezicelo ze-HTML zama-Telegraph bots - ayatholakala ku-inthanethi, maningi kakhulu. Lapho udala uhlelo lwesibonelo, i-pyTelegramBotApi yasetshenziswa.

Isinyathelo 1: Ukusebenzisa Izicelo Zesilinganiso Sokushintshanisa

Okokuqala udinga ukubhala ikhodi eyenza imibuzo. Sizosebenzisa lapho sibhala i-PrivatBank API, ngezansi isixhumanisi sayo: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. Udinga ukusebenzisa lezi zindlela kukhodi yakho:

  • load_exchange - ithola amanani okushintshana futhi ibonise ulwazi olufakwe ikhodi;
  • get_exchange - ibonisa idatha mayelana nemali ethile;
  • get_exchanges - ibonisa ukufakwa kuhlu kwezimali ngokwesampula.

Njengomphumela, ikhodi kufayela le-pb.py ibukeka kanje:

izicelo zokungenisa kabusha zokungenisa 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 ): okwe-exc ku-load_exchange(): uma ccy_key == exc['ccy']: buyisela exc buyisela I-False def get_exchanges(ccy_pattern): umphumela = [] ccy_pattern = re.escape(ccy_pattern) + '.*' ukuze uthole i-exc in load_exchange(): uma i-re.match(ccy_pattern, exc['ccy'], re.IGNORECASE) ingekho: result.append(exc) umphumela wokubuya

Uhlelo lungakhipha impendulo elandelayo ezicelweni ezishiwo:

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

Isinyathelo sesi-2: Dala i-Telegraph Bot nge-@BotFather

Ungakha uhlelo lokwamukela imilayezo futhi uyiphendule usebenzisa isevisi ye-@BotFather. Iya ekhasini lakhe leTelegramu bese ufaka umyalo /newbot. Imiyalo izovela engxoxweni, ngokusho okufanele ubhale phansi igama le-bot kuqala, bese emva kwalokho ikheli layo. Uma i-akhawunti ye-bot idaliwe, umlayezo wokwamukela oqukethe ithokheni uzovela esikrinini. Ukuze uthole ukucushwa okwengeziwe, sebenzisa le miyalo:

  • /sethadescription - incazelo;
  • /setabouttext - ulwazi mayelana ne-bot entsha;
  • /setuserpic - isithombe sephrofayili;
  • /setinline - imodi ye-inline;
  • /setcommands – incazelo yemiyalelo.

Esinyathelweni sokugcina sokumisa, sichaza/usizo kanye/nokushintshanisa. Uma zonke izinyathelo seziqediwe, sekuyisikhathi sokudlulela ekubhaleni ikhodi.

Isinyathelo sesi-3: Ukusetha nokwethula i-Bot

Masidale ifayela le-config.py. Kuyo, udinga ukucacisa ikhodi ye-bot eyingqayizivele kanye nendawo yesikhathi lapho uhlelo luzothola khona ulwazi.

I-TOKEN = '' # buyisela ithokheni ye-bot yakhoTIMEZONE = 'Europe/Kiev' TIMEZONE_COMMON_NAME = 'Kiev'

Okulandelayo, sakha elinye ifayela ngokungeniswa kwe-pb.py ebhalwe ngaphambilini, imitapo yolwazi nezinye izingxenye ezidingekayo. Amalabhulali angekho afakiwe kuhlelo lokuphatha iphakheji (pip).

ngenisa i-telebotimport lungiselela i-pbimport datetimengenisa i-pytzimport jsonimport traceback P_TIMEZONE = pytz.timezone(config.TIMEZONE) TIMEZONE_COMMON_NAME = config.TIMEZONE_COMMON_NAME

Masisebenzise okuqukethwe kwe-pyTelegramBotApi ukuze sakhe i-bot. Sithumela ithokheni etholiwe sisebenzisa ikhodi elandelayo:

i-bot = telebot.TeleBot(config.TOKEN) bot.polling(none_stop=Iqiniso)

Ipharamitha ye-none_stop iqinisekisa ukuthi izicelo zithunyelwa njalo. Ukusebenza kwepharamitha ngeke kuthintwe amaphutha endlela.

Isinyathelo sesi-4: Bhala i/start Command Handler

Uma zonke izinyathelo zangaphambilini zenziwe ngendlela efanele, i-bot isiqalile ukusebenza. Uhlelo ludala izicelo njalo ngoba lusebenzisa indlela ye-getUpdates. Ngaphambi komugqa onesici se-none_stop, sidinga ucezu lwekhodi olucubungula umyalo /start:

@bot.message_handler(commands=['start']) def start_command(umlayezo): bot.send_message( message.chat.id, 'Sawubona! Ngingakubonisa amanani okushintshanisa.n' + 'Ukuze uthole amanani okushintshanisa cindezela / exchange.n' + 'Ukuze uthole usizo cindezela /usizo.' )

RџS•Rё imiyalo=['qala'] ilingana neQiniso start_command ubizwa. Okuqukethwe umlayezo kuya lapho. Okulandelayo, udinga ukusebenzisa umsebenzi wokuthumela_umlayezo maqondana nomlayezo othile.

Isinyathelo sesi-5: Dala i-/help Command Handler

Umyalo /usizo ungasetshenziswa njengenkinobho. Ngokuchofoza kuyo, umsebenzisi uzoyiswa ku-akhawunti ye-Telegram kanjiniyela. Nikeza inkinobho igama, njengokuthi “Buza unjiniyela”. Setha ipharamitha ye-reply_markup, eqondisa kabusha umsebenzisi kusixhumanisi, ngendlela ye-send_message. Masibhale kukhodi ipharamitha eyakha ikhibhodi (InlineKeyboardMarkup). Udinga inkinobho eyodwa kuphela (InlineKeyboardButton).

Ikhodi yokugcina yomyalo ibukeka kanje:

@bot.message_handler(commands=['help']) def help_command(umlayezo): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton( 'Buza unjiniyela', url='ваша ссылка на профиль' ) ) bot.send_message( message.chat.id, '1) Ukuze uthole uhlu lwezimali ezitholakalayo cindezela /exchange.n' + '2) Chofoza uhlobo lwemali oluthandayo.n' + '3) Wena izothola umlayezo oqukethe ulwazi mayelana nomthombo kanye nezinhlobo zemali eziqondiwe, ' + 'izilinganiso zokuthenga nezilinganiso zokuthengisa.n' + '4) Chofoza okuthi “Buyekeza” ukuze uthole ulwazi lwamanje mayelana nesicelo. ' + 'I-bot izophinde ibonise umehluko phakathi kwamazinga okushintshanisa angaphambilini nawamanje.n' + '5) I-bot isekela emgqeni. Thayipha @ kunoma iyiphi ingxoxo nezinhlamvu zokuqala zemali.', reply_markup=keyboard )

Isenzo sekhodi engxoxweni yeTelegramu:

I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Isinyathelo sesi-6: Ukungeza i-/exchange Command Handler

Lesi sinyathelo siyadingeka ukuze ubonise izinkinobho ezinezimpawu zezimali ezitholakalayo engxoxweni. Ikhibhodi esesikrinini enezinketho izokusiza ugweme amaphutha. I-PrivatBank inikeza ulwazi nge-ruble, idola kanye ne-euro. Inketho ye-InlineKeyboardButton isebenza kanje:

  1. Umsebenzisi uchofoza inkinobho enegama alifunayo.
  2. I-getUpdates ithola ukushayelwa emuva (CallbackQuery).
  3. Kuyaziwa ukuthi kusingathwa kanjani ukucindezela ikhibhodi - ulwazi mayelana nenkinobho ecindezelwe luyadluliselwa.

/ukushintshanisa ikhodi yesibambi:

@bot.message_handler(commands=['exchange']) def exchange_command(umlayezo): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton('USD', callback_data='thola-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, 'Chofoza imali oyikhethayo:', reply_markup=keyboard )

Umphumela wekhodi kuTelegram:

I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Isinyathelo sesi-7: Ukubhala isibambi sezinkinobho zekhibhodi ezakhelwe ngaphakathi

Iphakheji ye-pyTelegramBot Api iqukethe umsebenzi womhlobiso we-@bot.callback_query_handler. Le ngxenye yakhelwe ukuhumusha ukuphinda ushayele kube umsebenzi - i-API iqaqa futhi idale kabusha ikholi. Ibhalwe kanje:

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

Masibhale futhi indlela ye-get_ex_callback:

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

Kukhona enye indlela ewusizo - answer_callback_query. Kuyasiza ukususa umthwalo phakathi kokucindezela inkinobho nokubonisa umphumela esikrinini. Ungathumela umlayezo ku-send_exchange_query ngokudlulisa ikhodi yemali ethile kanye nomlayezo. Masibhale send_exchange_result:

def send_exchange_result(umlayezo, 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_key ), pase_mode='HTML' )

Ngenkathi i-chatbot ithola umphumela wesicelo esivela ebhange API, isivakashi sibona umbhalo othi “bhala umlayezo”. Kubukeka sengathi kuphendula umuntu wangempela. Ukuze ubonise inkomba enjalo esikrinini, uzodinga ukwengeza imigqa yesimo sokufaka. Okulandelayo, sizosebenzisa i-get_exchange - ngosizo lwayo, uhlelo luzothola ukuqokwa kwemali (ama-ruble, ama-euro noma amadola). send_message isebenzisa izindlela ezengeziwe: i-serialize_ex iguqulela uhlobo lwemali kwenye ifomethi, bese i-get_update_keyboard imisa okhiye abathambile ababuyekeza ulwazi futhi ithumele idatha yemakethe yemali kwezinye izingxoxo.

Masibhale ikhodi ye-get_update_keyboard. Kudingeka kukhulunywe izinkinobho ezimbili - u-t no-e umele uhlobo nokushintshanisa. Into ye-switch_inline_query yenkinobho yokwabelana iyadingeka ukuze umsebenzisi akwazi ukukhetha ezingxoxweni ezimbalwa. Isivakashi sizokwazi ukukhetha ukuthi sizothumela kubani izinga lokushintshaniswa kwedola, i-ruble noma i-euro.

def get_update_keyboard(ex): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton( 'Buyekeza', callback_data=json.dumps({ 't': 'u', 'e': { ' b': ex['thenga'], 's': ex['sale'], 'c': ex['ccy'] } }).replace(' ', '') ), telebot.types.InlineKeyboardButton ('Yabelana', switch_inline_query=ex['ccy']) ) buyisela ikhibhodi

Kwesinye isikhathi udinga ukubona ukuthi izinga lokushintshana lishintshile kangakanani ngesikhathi esifushane. Masibhale izindlela ezimbili zenkinobho ethi Buyekeza ukuze abasebenzisi babone izifundo ngokuqhathanisa.

Umehluko phakathi kwamazinga okushintshaniswa udluliselwa ku-serializer ngepharamitha ye-diff.

Izindlela ezinqunyiwe zisebenza kuphela ngemva kokuba idatha ibuyekeziwe, ngeke ithinte isibonisi sokuqala sesifundo.

def serialize_ex(ex_json, diff=None): umphumela = '' + ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'Thenga: ' + ex_json['buy'] if diff: result += '' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'Thengisa: ' + ex_json['sale'] + ' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' else: result += 'nThengisa: ' + ex_json['sale'] + 'n' return result def serialize_exchange_diff(diff): result = '' if diff > 0: umphumela = '(' + 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: result = '(' + 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">)' umphumela wokubuya

Ake ucabange ukuthi isivakashi besifuna ukwazi izinga lokushintshaniswa kwedola. Nakhu okwenzekayo uma ukhetha i-USD kumlayezo:

I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Isinyathelo sesi-8: Ukusebenzisa Isibambi Senkinobho Yokuvuselela

Masibhale ikhodi yokusingatha izenzo ngenkinobho ethi Buyekeza bese sengeza ingxenye ye-iq_callback_method kuyo. Uma izinto zohlelo ziqala ngepharamitha yokuthola, kufanele ubhale okuthi get_ex_callback. Kwezinye izimo, sihlaziya i-JSON bese sizame ukuthola ukhiye t.

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data if data.startswith('get-'): get_ex_callback(query) else: try: if json.loads(data)[ 't'] == 'u': edit_message_callback(umbuzo) ngaphandle kweValueError: pass

Uma ilingana nawe, uzodinga ukubhala uhlelo lwendlela ye-edit_message_callback. Ake sihlukanise le nqubo isinyathelo ngesinyathelo:

  1. Ilanda ulwazi lwakamuva mayelana nesimo semakethe yemali (exchange_now = pb.get_exchange(data['c']).
  1. Ukubhala umlayezo omusha nge-serializer ene-diff.
  2. Ukwengeza isiginesha (get_edited_signature).

Uma umlayezo wokuqala ungashintshi, shayela indlela ye-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() uma query.message: bot.edit_message_text( umbhalo, query.message.chat.id, query.message.message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTMLge_idline_idline : bot.edit_message_text( umbhalo, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' )

Masibhale indlela ye-get_ex_from_iq_data ukuze sihlaziye i-JSON:

def get_ex_from_iq_data(exc_json): buyisela {'buy': exc_json['b'], 'sale': exc_json['s']}

Uzodinga ezinye izindlela ezimbalwa: isibonelo, get_exchange_diff, efunda ulwazi oludala nolusha mayelana nezindleko zemali futhi ibonise umehluko.

def get_exchange_diff(okokugcina, manje): buyisela {'sale_diff': float("%.6f" % (ntanta(manje['sale']) - ntanta(last['sale']))), 'buy_diff': ntanta ("%.6f" % (ntanta(manje['thenga']) - ntanta(kokugcina['ukuthenga'])))}

Eyokugcina, get_edited_signature, ibonisa isikhathi isifundo esigcine ukubuyekezwa ngaso.

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

Njengomphumela, umlayezo obuyekeziwe ovela ku-bot onenani lokushintshisana elizinzile ubukeka kanje:

I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Lapho isifundo sishintsha, umehluko phakathi kwamanani uboniswa emlayezo ngenxa yemingcele enqunyiwe.

I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Isinyathelo sesi-9: Ukuqaliswa Kwemodi Eshumekiwe

Imodi eyakhelwe ngaphakathi iyadingeka ukuze uthumele ngokushesha ulwazi kusuka ohlelweni kuya kunoma iyiphi ingxoxo - manje awudingi ukwengeza i-bot engxoxweni njengomhlanganyeli. Lapho umsebenzisi weTelegramu efaka igama le-bot enophawu elithi @ phambi kwalo, izinketho zokuguqula kufanele zivele ngaphezu komugqa wokufaka. Uma uchofoza kwenye yezinto, i-bot izothumela umlayezo engxoxweni ngemiphumela nezinkinobho zokubuyekeza nokuthumela idatha. Igama lomthumeli lizoqukatha amagama-ncazo athi “via ".

I-InlineQuery idluliselwa ku-query_text ngelabhulali. Ikhodi isebenzisa umsebenzi we-answer_line ukubuyisa imiphumela yosesho njengoxhaxha lwedatha kanye ne-inline_query_id element. Sisebenzisa i-get_exchanges ukuze i-bot ithole izimali ezimbalwa uma icelwa.

@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)))

Sidlulisa idatha eminingana ukuze uthole_iq_articles ukuze sibuyisele izinto zisuka ku-InlineQueryResultArticle ngale ndlela.

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.InputTextMessage ( serialize_ex(exc), parse_mode='HTML' ), reply_markup=get_update_keyboard(exc), description='Guqula ' + exc['base_ccy'] + ' -> ' + exc['ccy'], thumb_height=1 ) ) umphumela wokubuyisela

Manje, uma ubhala @ kanye nesikhala kulayini, imiphumela yosesho izovela esikrinini - izinketho zokuguqula zibe yizinhlobo zemali ezintathu ezitholakalayo.

I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Abasebenzisi bangahlunga imiphumela ngokufaka uhlobo lwemali abalufunayo.

Ngemva kokuchofoza uhlobo lwemali olufunayo ohlwini, ingxoxo ithola umlayezo ofanayo nalowo otholwa abasebenzisi be-bot. Ungasebenzisa futhi inkinobho ethi Buyekeza. Isithombe esingezansi sibonisa umlayezo obuyekeziwe othunyelwe nge-bot:

I-Telegraph bot ku-Python. Umhlahlandlela ophelele wokubhala i-bot ngamanani okushintshanisa kusukela ekuqaleni

Isiphetho

Manje uyazi ukuthi ungayenza kanjani i-bot yeTelegram. Ungangeza amathuluzi awusizo ohlelweni lwakho: izinkinobho zokubuyekeza nokuthumela umphumela kwabanye abasebenzisi besithunywa kanye nemodi eyakhelwe ngaphakathi ekuvumela ukuthi usebenzise imisebenzi ye-bot ngaphandle kwengxoxo nayo. Ngokusekelwe kulo myalelo, ungakha noma iyiphi i-bot elula neminye imisebenzi - hhayi kuphela leyo ezobonisa amanani okushintshaniswa. Ungesabi ukuzama imitapo yolwazi, ama-API, nekhodi ukuze udale umsizi ozenzakalelayo ozoxoxa namakhasimende kuTelegram futhi aqinise ukuxhumana kwabantu abanentshisekelo nenkampani.

1 Comment

  1. I-Fantástica publicación

shiya impendulo