Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

ʻO Bots ma Telegram nā papahana e kōkua i ka hoʻokumu ʻana i ka pilina me ka lehulehu a i ʻole e hoʻomaʻamaʻa i nā hana i hana mua ʻia me ka lima. Ua kākau ʻia kēia mau papahana no ka paepae ʻelele. Ke hana nei nā bots i kēia ala: hoʻouna ka mea hoʻohana i kahi kauoha ma o ka laina hoʻokomo, a pane ka ʻōnaehana me kahi kikokikona a i ʻole ka leka uila. I kekahi manawa, hoʻohālike ka papahana i nā hana a ke kanaka maoli - ʻo ia ka bot e hoʻoulu i ka hilinaʻi i waena o nā mea kūʻai.

Nui nā ʻano ʻōnaehana no ke kōkua ʻakomi i nā mea hoʻohana. Ke kamaʻilio nei kekahi mau bots me nā mea kūʻai aku, hāʻawi mau kekahi i ka ʻike. ʻAʻole hiki ke hoʻokaʻawale i nā polokalamu i nā ʻano - hoʻohui pinepine nā mea hoʻomohala i nā hana he nui i hoʻokahi bot.

Hiki iā ʻoe ke kākau i kahi bot maʻalahi no Telegram me nā mea pili i ke ʻano o nā pihi ma ka ʻaoʻao ma 9 mau ʻanuʻu. E nānā pono kākou i kēlā me kēia o lākou a pane i kekahi mau nīnau:

  • pehea e hoʻomaka ai i kahi bot;
  • pehea e hoʻopaʻa inoa ai i kahi kīpē i kūkulu ʻia mai hoʻokahi pihi a ʻoi aku paha;
  • pehea e hoʻolālā ai i nā pihi no nā hana i makemake ʻia;
  • he aha ke ʻano inline a pehea e hoʻonohonoho ai no kahi bot e noho nei.

KaʻAnuʻu 0: ka ʻaoʻao kumu e pili ana i ka Telegram bots API

ʻO ka mea hana nui i hoʻohana ʻia e hana i nā bots Telegram ʻo ia ka HTML Application Programming Interface, a i ʻole HTML API. ʻAe kēia mea i nā noi malihini a hoʻouna i nā pane ma ke ʻano o ka ʻike. Hoʻomaʻamaʻa nā hoʻolālā mākaukau i ka hana ma ka papahana. No ke kākau ʻana i kahi bot no Telegram, pono ʻoe e hoʻohana i kēia leka uila: https://api.telegram.org/bot/METHOD_NAME

No ka hana pono ʻana o ka bot, pono pū kekahi hōʻailona - kahi hui o nā huaʻōlelo e pale i ka papahana a wehe i ke komo ʻana iā ia i nā mea hoʻomohala hilinaʻi. He kū hoʻokahi kēlā me kēia hōʻailona. Hāʻawi ʻia ke kaula i ka bot ma ka hana ʻana. Hiki ke ʻokoʻa nā ala: getUpdates, getChat a me nā mea ʻē aʻe. ʻO ke koho o ke ala e pili ana i ka algorithm a nā mea hoʻomohala e manaʻo ai mai ka bot. Laʻana hōʻailona:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Hoʻohana nā bots i nā noi GET a me POST. Pono e hoʻohui pinepine ʻia nā ʻāpana ʻano - no ka laʻana, ke manaʻo ʻia ke ala sendMessage e hoʻouna i ka id kamaʻilio a me kekahi mau kikokikona. Hiki ke hāʻawi ʻia nā ʻāpana no ka hoʻomaʻemaʻe ʻana ma ke ʻano he string hulina URL me ka hoʻohana ʻana i ka application/x-www-form-urlencoded a i ʻole ma o application-json. ʻAʻole kūpono kēia mau ala no ka hoʻoiho ʻana i nā faila. Pono pū ka hoʻopili ʻana UTF-8. Ma ka hoʻouna ʻana i kahi noi i ka API, hiki iā ʻoe ke kiʻi i ka hopena ma JSON format. E nānā i ka pane o ka papahana i ka loaʻa ʻana o ka ʻike ma ke ala getME:

E loaʻa iā https://api.telegram.org/bot/getMe{ ʻoi: ʻoiaʻiʻo, hopena: { id: 231757398, first_name: "Exchange Rate Bot", inoa inoa: "exchangetestbot" } }

E loaʻa ka hopena inā ok like like oiaio. A i ʻole, e hōʻike ka ʻōnaehana i kahi hewa.

ʻElua ala e loaʻa ai nā memo maʻamau i nā bots. He kūpono nā ʻano ʻelua, akā kūpono i nā hihia like ʻole. No ka loaʻa ʻana o nā memo, hiki iā ʻoe ke kākau lima i kahi noi me ke ʻano getUpdates - e hōʻike ka papahana i ka hoʻonohonoho ʻikepili Update ma ka pale. Pono e hoʻouna mau ʻia nā noi, ma hope o ka nānā ʻana i kēlā me kēia ʻano, hoʻouna hou ʻia ka hoʻouna ʻana. ʻO ka Offset kahi ʻāpana e hoʻoholo ai i ka helu o nā moʻolelo i hoʻokuʻu ʻia ma mua o ka hoʻouka ʻana i kahi hopena hou e pale ai i ka ʻike hou ʻana o nā mea i nānā ʻia. E hoʻokomo ʻia nā pōmaikaʻi o ke ala getUpdates inā:

  • ʻaʻohe ala e hoʻonohonoho i ka HTTPS;
  • hoʻohana ʻia nā ʻōlelo kākau paʻakikī;
  • hoʻololi ke kikowaena bot i kēlā me kēia manawa;
  • hoʻouka ʻia ka bot me nā mea hoʻohana.

ʻO ke ala ʻelua e hiki ke kākau ʻia no ka loaʻa ʻana o nā memo mea hoʻohana ʻo setWebhook. Hoʻohana ʻia ia i hoʻokahi manawa, ʻaʻole pono e hoʻouna mau i nā noi hou. Hoʻouna ka webhook i nā mea hou i ka URL i kuhikuhi ʻia. Pono kēia ʻano i kahi palapala SSL. Pono ka Webhook i kēia mau hihia:

  • hoʻohana ʻia nā ʻōlelo hoʻonohonoho pūnaewele;
  • ʻAʻole i hoʻonui ʻia ka bot, ʻaʻole nui nā mea hoʻohana;
  • ʻaʻole hoʻololi ke kikowaena, noho ka papahana ma ka server hoʻokahi no ka manawa lōʻihi.

Ma nā kuhikuhi hou aʻe, e hoʻohana mākou i getUpdates.

Hoʻolālā ʻia ka lawelawe @BotFather Telegram e hana i nā bots kamaʻilio. Hoʻonohonoho ʻia nā hoʻonohonoho kumu ma o kēia ʻōnaehana - E kōkua ʻo BotFather iā ʻoe e hana i kahi wehewehe, kau i kahi kiʻi kiʻi, hoʻohui i nā mea kōkua. ʻO nā hale waihona puke - nā hoʻonohonoho o nā noi HTML no nā bots Telegram - loaʻa ma ka Pūnaewele, aia ka nui o lākou. I ka hana ʻana i ka papahana laʻana, ua hoʻohana ʻia ʻo pyTelegramBotApi.

KaʻAnuʻu Hana 1: Hoʻokō i nā noi uku uku

Pono mua ʻoe e kākau i ke code e hana ana i nā nīnau. E hoʻohana mākou i ke kākau ʻana i ka PrivatBank API, aia ma lalo kahi loulou iā ia: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. Pono ʻoe e hoʻohana i kēia mau ala i kāu code:

  • load_exchange - loaʻa nā kumukūʻai kūʻai a hōʻike i ka ʻike i hoʻopaʻa ʻia;
  • get_exchange - hōʻike i ka ʻikepili e pili ana i kahi kālā kikoʻī;
  • get_exchanges - hōʻike i ka papa inoa o nā kālā e like me ka laʻana.

ʻO ka hopena, ua like ke code ma ka faila pb.py penei:

e hoʻokomo hou i nā noi e hoʻokomo i ka json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): hoʻihoʻi json.loads(requests.get(URL).text) def get_exchange(ccy_key ): no excy i load_exchange(): ina ccy_key == exc['ccy']: ho'iho'i exc return False def get_exchanges(ccy_pattern): hopena = [] ccy_pattern = re.escape(ccy_pattern) + '.*' no exc in load_exchange(): inā re.match(ccy_pattern, exc ['ccy'], re.IGNORECASE) ʻaʻole ʻAʻohe: result.append(exc) hoʻihoʻi i ka hopena

Hiki i ka polokalamu ke hoʻopuka i kēia pane i nā noi i kuhikuhi ʻia:

[ { ccy:"USD", base_ccy:"UAH", kūʻai:"25.90000", kūʻai:"26.25000" }, { ccy:"EUR", base_ccy:"UAH", kūʻai:"29.10000", kūʻai:"29.85000 "}, {ccy:"RUR", base_ccy:"UAH", kūʻai:"0.37800", kūʻai:"0.41800" }, {ccy:"BTC", base_ccy:"USD", kūʻai:"11220.0384", kūʻai: "12401.0950" } ]

KaʻAnuʻu Hana 2: E hana i kahi Telegram Bot me @BotFather

Hiki iā ʻoe ke hana i kahi papahana no ka loaʻa ʻana o nā leka a pane aku iā lākou me ka hoʻohana ʻana i ka lawelawe @BotFather. E hele i kāna ʻaoʻao Telegram a komo i ke kauoha / newbot. E ʻike ʻia nā ʻōlelo aʻoaʻo ma ke kamaʻilio, e like me ka mea e pono ai ʻoe e kākau i ka inoa o ka bot ma mua, a laila kāna helu. Ke hana ʻia ka moʻokāki bot, e ʻike ʻia kahi leka hoʻokipa me kahi hōʻailona ma ka pale. No ka hoʻonohonoho hou aku, e hoʻohana i kēia mau kauoha:

  • /setdescription – wehewehe;
  • /setaouttext - ʻike e pili ana i ka bot hou;
  • /setuserpic – kiʻi kiʻi;
  • /setinline – mode inline;
  • /setcommands - wehewehe o nā kauoha.

Ma ka ʻanuʻu hoʻonohonoho hope, wehewehe mākou i /kōkua a me / hoʻololi. Ke pau nā ʻanuʻu a pau, ʻo ia ka manawa e neʻe ai i ka coding.

KaʻAnuʻu Hana 3: Hoʻonohonoho a hoʻomaka i ka Bot

E hana kākou i faila config.py. I loko o ia mea, pono ʻoe e kuhikuhi i ka code bot kūʻokoʻa a me ka manawa manawa e loaʻa ai ka ʻike i ka papahana.

TOKEN = '' # hoʻololi me kāu token TIMEZONE = 'Europa/Kiev' TIMEZONE_COMMON_NAME = 'Kiev'

A laila, hana mākou i kahi faila me ka lawe ʻana mai o ka pb.py i kākau mua ʻia, nā hale waihona puke a me nā mea pono ʻē aʻe. Hoʻokomo ʻia nā hale waihona puke i nalowale mai ka ʻōnaehana hoʻokele pōʻai (pip).

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

E hoʻohana kākou i ka ʻike o pyTelegramBotApi e hana i kahi bot. Hoʻouna mākou i ka hōʻailona i loaʻa me ka hoʻohana ʻana i kēia code:

bot = telebot.TeleBot(config.TOKEN) bot.polling(none_stop=ʻOiaʻiʻo)

ʻO ka ʻokoʻa none_stop e hōʻoia e hoʻouna mau ʻia nā noi. ʻAʻole e hoʻopilikia ʻia ka hana o ka ʻāpana e nā hewa ala.

KaʻAnuʻu Hana 4: Kākau i ka /start Command Handler

Inā hana pololei nā ʻanuʻu mua a pau, ua hoʻomaka ka bot. Hoʻopuka pinepine ka papahana i nā noi no ka mea hoʻohana ia i ke ala getUpdates. Ma mua o ka laina me ka mea none_stop, pono mākou i kahi ʻāpana code e hana i ke kauoha / hoʻomaka:

@bot.message_handler(commands=['start']) def start_command(message): bot.send_message( message.chat.id, 'Aloha! Hiki iaʻu ke hōʻike aku iā ʻoe i nā kumukūʻai. exchange.n' + 'No ke kiʻi ʻana i ke kōkua kaomi /kōkua.' )

RџSЂRё kauoha=['hoʻomaka'] elike me ka Oiaio kahea ʻia ka start_command. Hele ka ʻike o ka memo ma laila. A laila, pono ʻoe e hoʻokō i ka hana hoʻouna_ʻelele e pili ana i kekahi memo.

KaʻAnuʻu Hana 5: E hana i kahi /help Command Handler

Hiki ke hoʻokō ʻia ke kauoha /help ma ke ʻano he pihi. Ma ke kaomi ʻana iā ia, e lawe ʻia ka mea hoʻohana i ka moʻokāki Telegram o ka mea hoʻomohala. Hāʻawi i ka pihi i inoa, e like me "E nīnau i ka mea hoʻomohala". E hoʻonoho i ka ʻāpana reply_markup, e hoʻohuli hou i ka mea hoʻohana i kahi loulou, no ke ʻano send_message. E kākau kāua i loko o ke code i ka ʻāpana e hana ai i ka keyboard (InlineKeyboardMarkup). Pono ʻoe i hoʻokahi pihi (InlineKeyboardButton).

ʻO ka helu hope loa o ka mea hoʻohana kauoha e like me kēia:

@bot.message_handler(kauoha=['kōkua']) def help_command(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add(telebot.types.InlineKeyboardButton( 'E nīnau i ka mea hoʻomohala', url='ваша ссылка на профиль' ) ) bot.send_message( message.chat.id, '1) No ka loaʻa ʻana o kahi papa inoa o nā kālā i loaʻa e kaomi /exchange.n' + '2) Kaomi ma ke kālā āu e makemake ai.n' + '3) ʻO ʻoe e loaʻa i kahi leka i loaʻa ka ʻike e pili ana i ke kumu a me nā kālā i hoʻopaʻa ʻia, ' + 'kūʻai i nā kumukūʻai a kūʻai aku. ' + 'E hōʻike pū ana ka bot i ka ʻokoʻa ma waena o ka mua a me nā kumukūʻai kūʻai o kēia manawa.n' + '4) Kākoʻo ka bot i ka laina. ʻAno @ ma kekahi kamaʻilio a me nā leka mua o ke kālā.', reply_markup=keyboard )

Nā hana code ma ke kamaʻilio Telegram:

Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

KaʻAnuʻu Hana 6: Hoʻohui i ka /exchange Command Handler

Pono kēia ʻanuʻu e hōʻike i nā pihi me nā hōʻailona o nā kālā i loaʻa i ke kamaʻilio. ʻO kahi papa kuhikuhi ma ka ʻaoʻao me nā koho e kōkua iā ʻoe e pale i nā hewa. Hāʻawi ʻo PrivatBank i ka ʻike e pili ana i ka ruble, dollar a me ka euro. ʻO ke koho InlineKeyboardButton e like me kēia:

  1. Kaomi ka mea hoʻohana i ke pihi me ka inoa i makemake ʻia.
  2. Loaʻa iā getUpdates kahi kelepona (CallbackQuery).
  3. Ua ʻike ʻia pehea e hana ai i ke kaomi ʻana i ke kīpē - hoʻouna ʻia ka ʻike e pili ana i ke pihi kaomi.

/exchange handler code:

@bot.message_handler(mau kauoha=['hoʻololi']) hoʻololi i ka 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, 'E kaomi i ke kālā koho:', reply_markup=keyboard )

ʻO ka hopena o ke code ma Telegram:

Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

KaʻAnuʻu Hana 7: Ke kākau ʻana i kahi mea lawelawe no nā pihi kīwī i kūkulu ʻia

Aia ka pūʻolo pyTelegramBot Api i ka @bot.callback_query_handler hana hoʻohiwahiwa. Hoʻolālā ʻia kēia ʻāpana e unuhi i ka callback i kahi hana - wehe ka API a hana hou i ke kelepona. Penei ka ʻōlelo ʻana:

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

E kākau pū kākou i ke ʻano get_ex_callback:

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

Aia kekahi ala ʻē aʻe - answer_callback_query. Kōkua ia e wehe i ka ukana ma waena o ke kaomi ʻana i ke pihi a hōʻike i ka hopena ma ka pale. Hiki iā ʻoe ke hoʻouna i kahi leka e send_exchange_query ma ke kau ʻana i kekahi code currency a me Message. E kākau kāua send_exchange_result:

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

ʻOiai e loaʻa ana i ka chatbot ka hopena o ka noi mai ka panakō API, ʻike ka malihini i ka palapala "type a message". Me he mea lā ke pane mai nei ke kanaka maoli. No ka hōʻike ʻana i kahi hōʻailona ma ka pale, pono ʻoe e hoʻohui i nā laina kūlana hoʻokomo. Ma hope aʻe, e hoʻohana mākou i get_exchange - me kāna kōkua, e loaʻa i ka papahana ke koho kālā (rubles, euros a i ʻole kālā). Hoʻohana ka send_message i nā ʻano hana hou: hoʻololi ʻo serialize_ex i ke kālā i kahi ʻano ʻē aʻe, a hoʻonohonoho ʻo get_update_keyboard i nā kī palupalu e hoʻohou i ka ʻike a hoʻouna i ka ʻikepili mākeke kālā i nā kamaʻilio ʻē aʻe.

E kākau kāua i ke code no get_update_keyboard. Pono e ʻōlelo ʻia ʻelua pihi - t a me e kū no ke ʻano a me ka hoʻololi. Pono ka mea switch_inline_query no ke pihi Kaʻana i hiki i ka mea hoʻohana ke koho mai kekahi mau kamaʻilio. Hiki i ka malihini ke koho i ka mea e hoʻouna ai i ke kumukūʻai kūʻai o ke kālā, ruble a i ʻole 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['kūʻai'], 's': ex['kūʻai'], 'c': ex['ccy'] } }).replace(' ', '') ), telebot.types.InlineKeyboardButton ('Kaʻana', switch_inline_query=ex['ccy']) ) hoʻihoʻi i ka papa keyboard

I kekahi manawa pono ʻoe e ʻike i ka nui o ka loli o ka hoʻololi i ka manawa pōkole. E kākau i ʻelua ala no ke pihi Hoʻohou i hiki i nā mea hoʻohana ke ʻike i nā papa i ka hoʻohālikelike.

Hāʻawi ʻia ka ʻokoʻa ma waena o nā kumukūʻai kūʻai i ka serializer ma o ka diff parameter.

Ke hana wale nei nā ʻano i kuhikuhi ʻia ma hope o ka hoʻonui ʻia ʻana o ka ʻikepili, ʻaʻole lākou e pili i ka hōʻike mua o ka papa.

def serialize_ex(ex_json, diff=ʻAʻohe): hopena = '' + ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'kūʻai: ' + ex_json['kūʻai'] inā ʻokoʻa: hopena += ' ' + serialize_exchange_diff(ʻokoʻa ['buy_diff']) + 'n' + 'kūʻai: ' + ex_json ['kūʻai'] + ' ' + serialize_exchange_diff(ʻokoʻa ['sale_diff']) + 'n' ʻē aʻe: hopena += 'nSell: ' + ex_json ['kūʻai'] + 'n' hopena hoʻihoʻi def serialize_exchange_diff(ʻokoʻa): hopena = '' inā ʻokoʻa > 0: hopena = '(' + str(ʻokoʻa) + ' " 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: hopena = '(' + 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">)' hopena hoʻihoʻi

E noʻonoʻo ua makemake ka malihini e ʻike i ke kumukūʻai kālā. Eia ka mea inā koho ʻoe i ka USD ma ka memo:

Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

KaʻAnuʻu Hana 8: Hoʻokō i ka Update Button Handler

E kākau i ke code no ka lawelawe ʻana i nā hana me ke pihi Update a hoʻohui i ka ʻāpana iq_callback_method iā ia. Ke hoʻomaka nā mea papahana me ka loaʻa ʻana, pono ʻoe e kākau get_ex_callback. Ma nā kūlana ʻē aʻe, hoʻopau mākou iā JSON a hoʻāʻo e kiʻi i ke kī t.

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data if data.startswith('get-'): get_ex_callback(query) 'ē aʻe: hoʻāʻo: inā json.loads(data)[ 't'] == 'u': edit_message_callback(query) koe wale ValueError: pass

Inā like t u, pono ʻoe e kākau i papahana no ke ʻano edit_message_callback. E hoʻokaʻawale i kēia kaʻina hana i kēlā me kēia pae:

  1. Hoʻoiho i ka ʻike hou e pili ana i ke kūlana o ka mākeke kālā (exchange_now = pb.get_exchange(data['c']).
  1. Ke kākau ʻana i memo hou ma o ka serializer me ka diff.
  2. Hoʻohui i kahi pūlima (get_edited_signature).

Inā ʻaʻole e loli ka memo mua, e kāhea i ke ʻano edit_message_text.

def edit_message_callback(query): data = json.loads(query.data)['e'] exchange_now = pb.get_exchange(data['c']) kikokikona = serialize_ex( exchange_now, get_exchange_diff(get_ex_from_iq_data(data), exchange_now ) ) + 'n' + get_edited_signature() inā query.message: bot.edit_message_text( kikokikona, 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( kikokikona, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' )

E kākau kāua i ke ala get_ex_from_iq_data e hoʻopau iā JSON:

def get_ex_from_iq_data(exc_json): hoʻihoʻi { 'kūʻai': exc_json['b'], 'kūʻai': exc_json['s'] }

Pono ʻoe i kekahi mau ala hou aʻe: no ka laʻana, get_exchange_diff, e heluhelu ana i ka ʻike kahiko a me ka ʻike hou e pili ana i ke kumukūʻai o nā kālā a hōʻike i ka ʻokoʻa.

def get_exchange_diff(hope, i kēia manawa): hoʻihoʻi { 'sale_diff': float("%.6f" % (float(i kēia manawa ['kūʻai']) - lana (hope ['kūʻai']))), 'buy_diff': lana ("%.6f" % (float(i kēia manawa['kūʻai']) - lana(hope['kūʻai']))) }

ʻO ka mea hope loa, get_edited_signature, hōʻike i ka manawa i hōʻano hou ʻia ka papa.

def get_edited_signature(): hoʻihoʻi 'Hōʻano hou ' + str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + ' (' + TIMEZONE_COMMON_NAME + ')'

ʻO ka hopena, ʻo ka memo hou mai ka bot me ka hoʻololi paʻa e like me kēia:

Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

Ke hoʻololi ka papa, hōʻike ʻia nā ʻokoʻa ma waena o nā waiwai i ka memo ma muli o nā ʻāpana i kuhikuhi ʻia.

Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

KaʻAnuʻu Hana 9: Embedded Mode Implementation

Pono ke ʻano i kūkulu ʻia e hoʻouna koke i ka ʻike mai ka papahana i kekahi kamaʻilio - ʻaʻole pono ʻoe e hoʻohui i kahi bot i ke kamaʻilio ʻana ma ke ʻano he mea komo. Ke komo ka mea hoʻohana Telegram i ka inoa bot me kahi hōʻailona @ i mua ona, pono e ʻike ʻia nā koho hoʻololi ma luna o ka laina komo. Inā ʻoe e kaomi i kekahi o nā mea, e hoʻouna ka bot i kahi leka i ke kamaʻilio me nā hopena a me nā pihi no ka hoʻonui ʻana a me ka hoʻouna ʻana i ka ʻikepili. Aia ka inoa o ka mea hoʻouna i ka huaʻōlelo “via ".

Hāʻawi ʻia ka InlineQuery i query_text ma o ka waihona. Hoʻohana ke code i ka hana answer_line e kiʻi i nā hualoaʻa ma ke ʻano he ʻano ʻikepili a me ka mea inline_query_id. Hoʻohana mākou i get_exchanges i loaʻa i ka bot kekahi mau kālā ma ke noi.

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

Hāʻawi mākou i kahi ʻikepili i get_iq_articles i mea e hoʻihoʻi ai i nā mea mai InlineQueryResultArticle ma o kēia ʻano.

def get_iq_articles(exchanges): hopena = [] no exc i ka hoʻololi: 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='Hoohuli ' + exc['base_ccy'] + ' -> ' + exc['ccy'], thumb_height=1 ) ) hopena hoʻihoʻi

I kēia manawa, inā kākau ʻoe @ a me kahi ākea ma ka laina, e ʻike ʻia nā hopena hulina ma ka pale - nā koho no ka hoʻololi ʻana i ʻekolu mau kālā i loaʻa.

Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

Hiki i nā mea hoʻohana ke kānana i nā hopena ma ke komo ʻana i ke kālā i makemake ʻia.

Ma hope o ke kaomi ʻana i ke kālā i makemake ʻia mai ka papa inoa, loaʻa i ke kamaʻilio ka leka like i loaʻa i nā mea hoʻohana bot. Hiki iā ʻoe ke hoʻohana i ke pihi Hoʻohou. Hōʻike ke kiʻi ma lalo nei i ka memo hou i hoʻouna ʻia ma o ka bot:

Telegram bot ma Python. He alakaʻi holoʻokoʻa no ke kākau ʻana i kahi bot me nā uku hoʻololi mai ka wā kahiko

Panina

I kēia manawa ua ʻike ʻoe pehea e hana ai i kahi bot no Telegram. Hiki iā ʻoe ke hoʻohui i nā mea hana pono i kāu polokalamu: nā pihi no ka hoʻonui ʻana a me ka hoʻouna ʻana i ka hopena i nā mea hoʻohana ʻē aʻe o ka ʻelele a me kahi mode i kūkulu ʻia e hiki ai iā ʻoe ke hoʻohana i nā hana o ka bot ma waho o ke kamaʻilio me ia. Ma muli o kēia ʻōlelo aʻo, hiki iā ʻoe ke hana i kekahi bot maʻalahi me nā hana ʻē aʻe - ʻaʻole wale ka mea e hōʻike i nā kumukūʻai. Mai makaʻu i ka hoʻokolohua me nā hale waihona puke, nā API, a me nā code e hana i kahi kōkua automated e kamaʻilio me nā mea kūʻai aku ma Telegram a hoʻoikaika i ka pilina o nā poʻe hoihoi me ka hui.

1 Comment

  1. Fantástica publicación

Waiho i ka Reply