Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Mae Bots in Telegram yn rhaglenni sy'n helpu i sefydlu cyswllt â'r gynulleidfa neu'n symleiddio gweithredoedd yr oedd yn rhaid eu perfformio â llaw yn flaenorol. Mae'r rhaglenni hyn wedi'u hysgrifennu'n benodol ar gyfer y llwyfan negesydd. Mae bots yn gweithio fel hyn: mae'r defnyddiwr yn anfon gorchymyn trwy'r llinell fewnbwn, ac mae'r system yn ymateb gyda thestun neu neges ryngweithiol. Weithiau mae'r rhaglen hyd yn oed yn dynwared gweithredoedd person go iawn - mae bot o'r fath yn ennyn mwy o ymddiriedaeth ymhlith cwsmeriaid.

Mae yna sawl math o systemau ar gyfer cymorth awtomatig i ddefnyddwyr. Mae rhai bots yn cyfathrebu â chwsmeriaid yn unig, mae eraill yn darparu gwybodaeth yn rheolaidd. Mae'n amhosibl rhannu rhaglenni'n fathau yn glir - mae datblygwyr yn aml yn cyfuno sawl swyddogaeth mewn un bot.

Gallwch chi ysgrifennu bot syml ar gyfer Telegram gydag elfennau rhyngweithiol ar ffurf botymau ar y sgrin mewn 9 cam. Gadewch i ni edrych ar bob un ohonynt yn fanwl ac ateb ychydig o gwestiynau:

  • sut i ddechrau bot;
  • sut i gofrestru bysellfwrdd adeiledig o un neu fwy o fotymau;
  • sut i raglennu'r botymau ar gyfer y swyddogaethau a ddymunir;
  • beth yw modd mewnol a sut i'w osod ar gyfer bot sy'n bodoli eisoes.

Cam 0: cefndir damcaniaethol am API bots Telegram

Y prif offeryn a ddefnyddir i greu bots Telegram yw'r Rhyngwyneb Rhaglennu Cymhwysiad HTML, neu HTML API. Mae'r elfen hon yn derbyn ceisiadau gan ymwelwyr ac yn anfon ymatebion ar ffurf gwybodaeth. Mae dyluniadau parod yn symleiddio'r gwaith ar y rhaglen. I ysgrifennu bot ar gyfer Telegram, mae angen i chi ddefnyddio'r cyfeiriad e-bost hwn: https://api.telegram.org/bot/METHOD_NAME

Er mwyn i'r bot weithio'n iawn, mae angen tocyn hefyd - cyfuniad o nodau sy'n amddiffyn y rhaglen ac yn agor mynediad iddi i ddatblygwyr dibynadwy. Mae pob tocyn yn unigryw. Mae'r llinyn yn cael ei aseinio i'r bot wrth ei greu. Gall dulliau fod yn wahanol: getUpdates, getChat ac eraill. Mae'r dewis o ddull yn dibynnu ar ba algorithm y mae'r datblygwyr yn ei ddisgwyl gan y bot. Enghraifft o docyn:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Mae bots yn defnyddio ceisiadau GET a POST. Yn aml mae'n rhaid ategu paramedrau dull - er enghraifft, pan fydd y dull sendMessage i fod i anfon yr ID sgwrsio a rhywfaint o destun. Gellir pasio paramedrau ar gyfer mireinio dull fel llinyn ymholiad URL gan ddefnyddio application/x-www-form-urlencoded neu drwy application-json. Nid yw'r dulliau hyn yn addas ar gyfer lawrlwytho ffeiliau. Mae angen amgodio UTF-8 hefyd. Trwy anfon cais i'r API, gallwch gael y canlyniad mewn fformat JSON. Cymerwch olwg ar ymateb y rhaglen i adalw gwybodaeth trwy'r dull getME:

EWCH https://api.telegram.org/bot/getMe{ iawn: true, canlyniad: { id: 231757398, first_name: "Cyfradd Cyfnewid Bot", enw defnyddiwr: "exchangetestbot" } }

Ceir y canlyniad os ok yn hafal yn wir. Fel arall, bydd y system yn nodi gwall.

Mae dwy ffordd i gael negeseuon personol mewn bots. Mae'r ddau ddull yn effeithiol, ond yn addas mewn achosion gwahanol. I gael negeseuon, gallwch ysgrifennu cais â llaw gyda'r dull getUpdates - bydd y rhaglen yn dangos yr amrywiaeth data Diweddaru ar y sgrin. Rhaid anfon ceisiadau yn rheolaidd, ar ôl dadansoddi pob arae, mae anfon yn cael ei ailadrodd. Mae Offset yn baramedr sy'n pennu nifer y cofnodion sydd wedi'u hepgor cyn llwytho canlyniad newydd er mwyn osgoi ailymddangosiad gwrthrychau wedi'u gwirio. Bydd manteision y dull getUpdates yn dod i rym os:

  • nid oes unrhyw ffordd i ffurfweddu HTTPS;
  • defnyddir ieithoedd sgriptio cymhleth;
  • mae'r gweinydd bot yn newid o bryd i'w gilydd;
  • mae'r bot yn cael ei lwytho gyda defnyddwyr.

Yr ail ddull y gellir ei ysgrifennu i dderbyn negeseuon defnyddwyr yw setWebhook. Fe'i defnyddir unwaith, nid oes angen anfon ceisiadau newydd yn gyson. Mae'r bachyn gwe yn anfon diweddariadau data i'r URL penodedig. Mae angen tystysgrif SSL ar gyfer y dull hwn. Bydd webhook yn ddefnyddiol yn yr achosion hyn:

  • ieithoedd rhaglennu gwe yn cael eu defnyddio;
  • nid yw'r bot wedi'i orlwytho, nid oes gormod o ddefnyddwyr;
  • nid yw'r gweinydd yn newid, mae'r rhaglen yn aros ar yr un gweinydd am amser hir.

Mewn cyfarwyddiadau pellach, byddwn yn defnyddio getUpdates.

Mae gwasanaeth @BotFather Telegram wedi'i gynllunio i greu bots sgwrsio. Mae gosodiadau sylfaenol hefyd yn cael eu gosod trwy'r system hon - bydd BotFather yn eich helpu i wneud disgrifiad, rhoi llun proffil, ychwanegu offer cymorth. Mae llyfrgelloedd - setiau o geisiadau HTML am bots Telegram - ar gael ar y Rhyngrwyd, mae yna lawer ohonyn nhw. Wrth greu'r rhaglen enghreifftiol, defnyddiwyd pyTelegramBotApi.

Cam 1: Gweithredu Ceisiadau Cyfradd Gyfnewid

Yn gyntaf mae angen i chi ysgrifennu'r cod sy'n perfformio ymholiadau. Byddwn yn ei ddefnyddio wrth ysgrifennu'r API PrivatBank, isod mae dolen iddo: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. Mae angen i chi ddefnyddio'r dulliau hyn yn eich cod:

  • load_exchange - yn dod o hyd i gyfraddau cyfnewid ac yn arddangos gwybodaeth wedi'i hamgodio;
  • get_exchange – yn dangos data am arian cyfred penodol;
  • get_exchanges – yn dangos y rhestr o arian cyfred yn ôl y sampl.

O ganlyniad, mae'r cod yn y ffeil pb.py yn edrych fel hyn:

mewnforio ynghylch ceisiadau mewnforio mewnforio json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): dychwelyd json.loads(requests.get(URL).text) def get_exchange(ccy_key ): ar gyfer exc yn load_exchange(): os ccy_key == exc['ccy']: dychwelyd exc dychwelyd False def get_exchanges(ccy_pattern): canlyniad = [] ccy_pattern = re.escape(ccy_pattern) + '.*' ar gyfer exc yn load_exchange(): os nad yw re.match(ccy_pattern, exc['ccy'], re.IGNORECASE) yn Dim: canlyniad.append(exc) dychwelyd canlyniad

Gall y rhaglen gyhoeddi'r ymateb canlynol i'r ceisiadau penodol:

[ { ccy: "USD", base_ccy: "UAH", prynu:" 25.90000", gwerthu:" 26.25000 " }, { ccy: "EUR", base_ccy: "UAH", prynu:" 29.10000", gwerthu:" 29.85000 " }, { ccy: "RUR", base_ccy: "UAH", prynu:" 0.37800", gwerthu:" 0.41800 " }, { ccy: BTC", base_ccy: "USD", prynu:" 11220.0384", gwerthu: " 12401.0950. XNUMX " } ]

Cam 2: Creu Telegram Bot gyda @BotFather

Gallwch greu rhaglen ar gyfer derbyn negeseuon ac ymateb iddynt gan ddefnyddio gwasanaeth @BotFather. Ewch i'w dudalen Telegram a nodwch y gorchymyn / newbot. Bydd cyfarwyddiadau yn ymddangos yn y sgwrs, ac yn ôl hynny mae angen i chi ysgrifennu enw'r bot yn gyntaf, ac yna ei gyfeiriad. Pan fydd y cyfrif bot yn cael ei greu, bydd neges groeso sy'n cynnwys tocyn yn ymddangos ar y sgrin. Ar gyfer cyfluniad pellach, defnyddiwch y gorchmynion hyn:

  • /disgrifiad o'r set – disgrifiad;
  • /setabouttext – gwybodaeth am y bot newydd;
  • /setuserpic – llun proffil;
  • /setinline – modd mewnol;
  • /setcommands – disgrifiad o orchmynion.

Yn y cam ffurfweddu olaf, rydym yn disgrifio /help a /exchange. Pan fydd yr holl gamau wedi'u cwblhau, mae'n bryd symud ymlaen i godio.

Cam 3: Sefydlu a Lansio'r Bot

Gadewch i ni greu ffeil config.py. Ynddo, mae angen i chi nodi'r cod bot unigryw a'r parth amser y bydd y rhaglen yn dod o hyd i wybodaeth ynddo.

TOKEN = '' # replace gyda tokenTIMEZONE eich bot = 'Ewrop/Kiev' TIMEZONE_COMMON_NAME = ' Kiev'

Nesaf, rydym yn creu ffeil arall gyda mewnforio'r pb.py a ysgrifennwyd yn flaenorol, llyfrgelloedd a chydrannau angenrheidiol eraill. Mae'r llyfrgelloedd coll yn cael eu gosod o'r system rheoli pecynnau (pip).

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

Gadewch i ni ddefnyddio cynnwys pyTelegramBotApi i greu bot. Rydym yn anfon y tocyn a dderbyniwyd gan ddefnyddio'r cod canlynol:

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

Mae'r paramedr none_stop yn sicrhau bod ceisiadau'n cael eu hanfon yn gyson. Ni fydd gwallau dull yn effeithio ar weithrediad y paramedr.

Cam 4: Ysgrifennwch y / cychwyn Command Handler

Os gwneir yr holl gamau blaenorol yn gywir, mae'r bot wedi dechrau gweithio. Mae'r rhaglen yn cynhyrchu ceisiadau yn rheolaidd oherwydd ei bod yn defnyddio'r dull getUpdates. Cyn y llinell gyda'r elfen none_stop, mae angen darn o god arnom sy'n prosesu'r gorchymyn / start:

@bot.message_handler(commands=['cychwyn']) def start_command(message): bot.send_message( message.chat.id, 'Cyfarchion! Gallaf ddangos cyfraddau cyfnewid i chi.n' + 'I gael y cyfraddau cyfnewid pwyswch / exchange.n' + 'I gael help pwyswch / help.' )

RџSʻRё gorchmynion=['cychwyn'] cyfartal i Gwir start_command yw'r enw. Mae cynnwys y neges yn mynd yno. Nesaf, mae angen i chi weithredu'r swyddogaeth anfon_neges mewn perthynas â neges benodol.

Cam 5: Creu / Help Handler Command

Gellir gweithredu'r gorchymyn / help fel botwm. Trwy glicio arno, bydd y defnyddiwr yn cael ei gludo i gyfrif Telegram y datblygwr. Rhowch enw i'r botwm, fel "Gofyn i'r datblygwr". Gosodwch y paramedr reply_markup, sy'n ailgyfeirio'r defnyddiwr i ddolen, ar gyfer y dull anfon_message. Gadewch i ni ysgrifennu yn y cod y paramedr sy'n creu'r bysellfwrdd (InlineKeyboardMarkup). Dim ond un botwm sydd ei angen arnoch (InlineKeyboardButton).

Mae'r cod triniwr gorchymyn terfynol yn edrych fel hyn:

@bot.message_handler(commands=['help']) def help_command(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton( 'Gofyn i'r datblygwr', url='ваша ссылка на на профиль ' ) ) bot.send_message( message.chat.id, '1) I dderbyn rhestr o'r arian sydd ar gael pwyswch /exchange.n' + '2) Cliciwch ar yr arian y mae gennych ddiddordeb ynddo.n' + '3) Chi yn derbyn neges yn cynnwys gwybodaeth am y ffynhonnell a'r arian targed, ' + 'cyfraddau prynu a gwerthu.n' + '4) Cliciwch "Diweddaru" i dderbyn y wybodaeth gyfredol ynglŷn â'r cais. ' + 'Bydd y bot hefyd yn dangos y gwahaniaeth rhwng y cyfraddau cyfnewid blaenorol a chyfredol.n' + '5) Mae'r bot yn cefnogi mewnlin. Teipiwch @ mewn unrhyw sgwrs a llythrennau cyntaf arian cyfred.' , reply_markup = bysellfwrdd )

Gweithred cod yn sgwrs Telegram:

Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Cam 6: Ychwanegu'r Triniwr Gorchymyn / cyfnewid

Mae angen y cam hwn i arddangos botymau gyda symbolau o'r arian sydd ar gael yn y sgwrs. Bydd bysellfwrdd ar y sgrin gydag opsiynau yn eich helpu i osgoi camgymeriadau. Mae PrivatBank yn darparu gwybodaeth am y Rwbl, y ddoler a'r ewro. Mae'r opsiwn InlineKeyboardButton yn gweithio fel hyn:

  1. Mae'r defnyddiwr yn clicio ar y botwm gyda'r dynodiad dymunol.
  2. Mae getUpdates yn derbyn galwad yn ôl (CallbackQuery).
  3. Daw'n hysbys sut i drin gwasgu'r bysellfwrdd - trosglwyddir gwybodaeth am y botwm gwasgu.

/ cod trafodwr cyfnewid:

@bot.message_handler(commands=['exchange']) def exchange_command(message): bysellfwrdd = 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, 'Cliciwch ar yr arian o ddewis:', reply_markup=bysellfwrdd )

Canlyniad y cod yn Telegram:

Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Cam 7: Ysgrifennu triniwr ar gyfer y botymau bysellfwrdd adeiledig

Mae'r pecyn pyTelegramBot Api yn cynnwys y swyddogaeth addurnwr @bot.callback_query_handler. Mae'r gydran hon wedi'i chynllunio i drosi'r alwad yn ôl yn swyddogaeth - mae'r API yn dadlapio ac yn ail-greu'r alwad. Mae wedi'i sillafu fel hyn:

@bot.callback_query_handler(func=galwad lambda: Gwir) def iq_callback(query): data = query.data os data.startswith('get-'): get_ex_callback(query)

Gadewch i ni hefyd ysgrifennu'r dull get_ex_callback:

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

Mae yna ddull defnyddiol arall - ateb_galwad_ymholiad. Mae'n helpu i gael gwared ar y llwyth rhwng pwyso'r botwm ac arddangos y canlyniad ar y sgrin. Gallwch anfon neges i send_exchange_query trwy basio rhywfaint o god arian cyfred a Neges. Gadewch i ni ysgrifennu send_exchange_result:

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

Tra bod y chatbot yn derbyn canlyniad y cais gan y banc API, mae'r ymwelydd yn gweld yr arysgrif "teipio neges". Mae'n edrych fel bod person go iawn yn ateb. I arddangos dangosydd o'r fath ar y sgrin, bydd angen i chi ychwanegu llinellau statws mewnbwn. Nesaf, byddwn yn defnyddio get_exchange - gyda'i help, bydd y rhaglen yn derbyn y dynodiad arian cyfred (rwblau, ewros neu ddoleri). Mae send_message yn defnyddio dulliau ychwanegol: mae serialize_ex yn trosi'r arian cyfred i fformat arall, ac mae get_update_keyboard yn sefydlu bysellau meddal sy'n diweddaru gwybodaeth ac yn anfon data marchnad arian cyfred i sgyrsiau eraill.

Gadewch i ni ysgrifennu'r cod ar gyfer get_update_keyboard. Mae angen crybwyll dau fotwm – mae t ac e yn golygu teip a chyfnewid. Mae angen yr eitem switch_inline_query ar gyfer y botwm Rhannu er mwyn i'r defnyddiwr allu dewis o sawl sgwrs. Bydd yr ymwelydd yn gallu dewis at bwy i anfon y gyfradd gyfnewid gyfredol y ddoler, Rwbl neu ewro.

def get_update_keyboard(ex): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton( 'Diweddariad', callback_data=json.dumps({ 't': 'u'), 'e': { ' b': ex['prynu'], 's': ex['gwerthu'], 'c': ex['ccy'] }}). disodli(' ', '') ), telebot.types.InlineKeyboardButton ('Rhannu', switch_inline_query=ex['ccy']) ) bysellfwrdd dychwelyd

Weithiau mae angen i chi weld faint mae'r gyfradd gyfnewid wedi newid mewn amser byr. Gadewch i ni ysgrifennu dau ddull ar gyfer y botwm Diweddaru fel y gall defnyddwyr weld cyrsiau mewn cymhariaeth.

Mae'r gwahaniaeth rhwng y cyfraddau cyfnewid yn cael ei drosglwyddo i'r cyfresydd trwy'r paramedr diff.

Mae'r dulliau rhagnodedig yn gweithio dim ond ar ôl i'r data gael ei ddiweddaru, ni fyddant yn effeithio ar arddangosfa gyntaf y cwrs.

def serialize_ex(ex_json, diff=Dim): canlyniad = '' +ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'Prynu:' + ex_json['prynu'] os diff: result += '' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'Gwerthu: ' + ex_json['sale'] + ' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' else: result += 'nGwerthu: ' + ex_json['sale'] + 'n' dychwelyd canlyniad def serialize_exchange_diff(diff): result = '' os diff > 0: result = '(' + 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">)' canlyniad dychwelyd

Dychmygwch fod yr ymwelydd eisiau gwybod cyfradd gyfnewid y ddoler. Dyma beth sy'n digwydd os dewiswch USD yn y neges:

Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Cam 8: Gweithredu'r Triniwr Botwm Diweddaru

Gadewch i ni ysgrifennu'r cod ar gyfer trin gweithredoedd gyda'r botwm Diweddaru ac ychwanegu'r rhan iq_callback_method ato. Pan fydd eitemau rhaglen yn dechrau gyda'r paramedr cael, rhaid i chi ysgrifennu get_ex_callback. Mewn sefyllfaoedd eraill, rydym yn dosrannu JSON ac yn ceisio cael yr allwedd t.

@bot.callback_query_handler(func=lambda call: Gwir) def iq_callback(query): data = query.data os data.startswith('get-'): get_ex_callback(query) arall: ceisiwch: os json.loads(data)[ ' t ' ] == ' u ' : edit_message_callback(query) ac eithrio ValueError: pas

Os yw t yn hafal i u, bydd angen i chi ysgrifennu rhaglen ar gyfer y dull edit_message_callback. Gadewch i ni ddadansoddi'r broses hon gam wrth gam:

  1. Lawrlwytho'r wybodaeth ddiweddaraf am gyflwr y farchnad arian cyfred (exchange_now = pb.get_exchange(data['c']).
  1. Ysgrifennu neges newydd trwy gyfresydd gyda diff.
  2. Ychwanegu llofnod (get_edited_signature).

Os nad yw'r neges gychwynnol yn newid, ffoniwch y dull 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() os 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' ) in elif_message. : bot.edit_message_text( text, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' )

Gadewch i ni ysgrifennu'r dull get_ex_from_iq_data i ddosrannu JSON:

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

Bydd angen ychydig mwy o ddulliau arnoch: er enghraifft, get_exchange_diff, sy'n darllen y wybodaeth hen a newydd am gost arian cyfred ac yn dangos y gwahaniaeth.

def get_exchange_diff(diwethaf, nawr): dychwelyd { 'sale_diff': arnofio("%.6f" % (arnofio (nawr ['gwerthiant']) - arnofio(diwethaf['gwerthu']))), 'buy_diff': arnofio ("%.6f" % (arnofio(nawr['prynu']) - arnofio(diwethaf['prynu']))) }

Mae'r un olaf, get_edited_signature, yn dangos yr amser y cafodd y cwrs ei ddiweddaru ddiwethaf.

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

O ganlyniad, mae'r neges wedi'i diweddaru gan y bot gyda chyfradd gyfnewid sefydlog yn edrych fel hyn:

Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Pan fydd y cwrs yn newid, mae'r gwahaniaethau rhwng y gwerthoedd yn cael eu harddangos yn y neges oherwydd y paramedrau rhagnodedig.

Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Cam 9: Gweithredu Modd Planedig

Mae angen y modd adeiledig i anfon gwybodaeth yn gyflym o'r rhaglen i unrhyw sgwrs - nawr nid oes angen i chi ychwanegu bot at y sgwrs fel cyfranogwr. Pan fydd defnyddiwr Telegram yn mynd i mewn i enw bot gydag arwydd @ o'i flaen, dylai opsiynau trosi ymddangos uwchben y llinell fewnbwn. Os cliciwch ar un o'r eitemau, bydd y bot yn anfon neges i'r sgwrs gyda'r canlyniadau a botymau ar gyfer diweddaru ac anfon data. Bydd enw'r anfonwr yn cynnwys y capsiwn “via ".

Mae InlineQuery yn cael ei drosglwyddo i query_text drwy'r llyfrgell. Mae'r cod yn defnyddio'r ffwythiant ateb_llinell i adalw'r canlyniadau chwilio fel amrywiaeth o ddata a'r elfen inline_query_id. Rydym yn defnyddio get_exchanges fel bod y bot yn dod o hyd i sawl arian cyfred ar gais.

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

Rydym yn trosglwyddo amrywiaeth o ddata i get_iq_articles er mwyn dychwelyd gwrthrychau o InlineQueryResultArticle trwy'r dull hwn.

def get_iq_articles(cyfnewidiadau): canlyniad = [] ar gyfer ac eithrio mewn cyfnewidiadau: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], title=exc['ccy'], mewnbwn_message_content=telebot.types.InputTextMessageContent) ) canlyniad dychwelyd

Nawr, os ydych chi'n ysgrifennu @ a bwlch yn y llinell, bydd y canlyniadau chwilio yn ymddangos ar y sgrin - opsiynau ar gyfer trosi i dri arian sydd ar gael.

Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Gall defnyddwyr hidlo'r canlyniadau trwy fynd i mewn i'r arian cyfred dymunol.

Ar ôl clicio ar yr arian cyfred a ddymunir o'r rhestr, mae'r sgwrs yn derbyn yr un neges ag y mae defnyddwyr bot yn ei dderbyn. Gallwch hefyd ddefnyddio'r botwm Diweddaru. Mae'r ddelwedd isod yn dangos y neges wedi'i diweddaru a anfonwyd trwy'r bot:

Telegram bot yn Python. Canllaw cyflawn i ysgrifennu bot gyda chyfraddau cyfnewid o'r dechrau

Casgliad

Nawr rydych chi'n gwybod sut i greu bot ar gyfer Telegram. Gallwch ychwanegu offer defnyddiol i'ch rhaglen: botymau ar gyfer diweddaru ac anfon y canlyniad i ddefnyddwyr eraill y negesydd a modd adeiledig sy'n eich galluogi i ddefnyddio swyddogaethau'r bot y tu allan i'r sgwrs ag ef. Yn seiliedig ar y cyfarwyddyd hwn, gallwch greu unrhyw bot syml gyda swyddogaethau eraill - nid yn unig yr un a fydd yn dangos cyfraddau cyfnewid. Peidiwch â bod ofn arbrofi gyda llyfrgelloedd, APIs, a chod i greu cynorthwyydd awtomataidd a fydd yn sgwrsio â chwsmeriaid ar Telegram ac yn cryfhau cysylltiad pobl â diddordeb â'r cwmni.

sut 1

  1. Cyhoeddiadau ffantastig

Gadael ymateb