په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

په ټیلیګرام کې بوټونه هغه برنامې دي چې د لیدونکو سره د تماس رامینځته کولو کې مرسته کوي یا هغه عملونه ساده کوي چې دمخه یې په لاسي ډول ترسره شوي. دا پروګرامونه په ځانګړې توګه د میسینجر پلیټ فارم لپاره لیکل شوي. بوټونه پدې ډول کار کوي: کارونکي د ان پټ لاین له لارې کمانډ لیږي ، او سیسټم د متن یا متقابل پیغام سره ځواب ورکوي. ځینې ​​​​وختونه برنامه حتی د ریښتیني شخص عملونه تقلید کوي - دا ډول بوټ د پیرودونکو ترمینځ ډیر باور هڅوي.

د کاروونکو لپاره د اتوماتیک مرستې لپاره ډیری ډوله سیسټمونه شتون لري. ځینې ​​بوټونه یوازې د پیرودونکو سره اړیکه نیسي، نور په منظمه توګه معلومات چمتو کوي. دا ناشونې ده چې برنامه په روښانه ډول په ډولونو وویشئ - پراختیا کونکي اکثرا په یو بوټ کې ډیری دندې سره یوځای کوي.

تاسو کولی شئ په 9 مرحلو کې د سکرین بټونو په بڼه د متقابل عناصرو سره د ټیلیګرام لپاره یو ساده بوټ ولیکئ. راځئ چې هر یو په تفصیل سره وګورو او یو څو پوښتنو ته ځواب ووایو:

  • څنګه یو بوټ پیل کړئ؛
  • د یو یا ډیرو تڼیو څخه جوړ شوی کیبورډ څنګه راجستر کړئ؛
  • د مطلوبو دندو لپاره د بټونو پروګرام کولو څرنګوالی؛
  • انلاین حالت څه شی دی او دا څنګه د موجوده بوټ لپاره تنظیم کړئ.

مرحله 0: د ټیلیګرام بوټس API په اړه نظري شالید

اصلي وسیله چې د ټیلیګرام بوټونو رامینځته کولو لپاره کارول کیږي د HTML غوښتنلیک برنامې انٹرفیس یا HTML API دی. دا عنصر د لیدونکو غوښتنې مني او د معلوماتو په بڼه ځوابونه لیږي. چمتو شوي ډیزاینونه په برنامه کې کار اسانه کوي. د ټیلیګرام لپاره د بوټ لیکلو لپاره ، تاسو اړتیا لرئ دا بریښنالیک وکاروئ: https://api.telegram.org/bot/METHOD_NAME

د بوټ د سم فعالیت لپاره، نښه هم اړینه ده - د کرکټرونو ترکیب چې برنامه ساتي او باوري پراختیا کونکو ته یې لاسرسی خلاصوي. هر نښه ځانګړې ده. تار د جوړولو پر مهال بوټ ته ټاکل شوی. میتودونه مختلف کیدی شي: getUpdates، getChat او نور. د میتود انتخاب پدې پورې اړه لري چې پراختیا کونکي د بوټ څخه کوم الګوریتم تمه لري. نښه بېلګه:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

بوټونه د GET او POST غوښتنې کاروي. د میتود پیرامیټونه اکثرا باید ضمیمه شي - د مثال په توګه ، کله چې د sendMessage میتود باید د چیټ ID او ځینې متن واستوي. د میتود اصالح کولو لپاره پیرامیټرونه د یو آر ایل پوښتنې تار په توګه د application/x-www-form-urlencoded یا د application-json له لارې لیږدول کیدی شي. دا میتودونه د فایلونو ډاونلوډ کولو لپاره مناسب ندي. UTF-8 کوډ کول هم اړین دي. API ته د غوښتنې په لیږلو سره، تاسو کولی شئ پایله د JSON بڼه کې ترلاسه کړئ. د getME میتود له لارې د معلوماتو ترلاسه کولو لپاره د برنامې ځواب ته یو نظر وګورئ:

ترلاسه کړئ https://api.telegram.org/bot/getMe{ښه: ریښتیا، پایله: {id: 231757398، لومړی_نوم: "د تبادلې نرخ بوټ"، کارن نوم: "exchangetestbot" } }

پایله به ترلاسه شي که چیرې ok مساوي رښتيا. که نه نو، سیسټم به یوه تېروتنه په ګوته کړي.

په بوټو کې د دودیز پیغامونو ترلاسه کولو لپاره دوه لارې شتون لري. دواړه میتودونه اغیزمن دي، مګر په مختلفو قضیو کې مناسب دي. د پیغامونو ترلاسه کولو لپاره ، تاسو کولی شئ په لاسي ډول د getUpdates میتود سره غوښتنه ولیکئ - برنامه به په سکرین کې د تازه معلوماتو سرې ښکاره کړي. غوښتنې باید په منظمه توګه واستول شي، د هر صف تحلیل وروسته، لیږل تکرار کیږي. آفسیټ یو پیرامیټر دی چې د نوي پایلې له پورته کولو دمخه د پریښودل شوي ریکارډونو شمیر ټاکي ترڅو د چک شوي شیانو بیا راڅرګندیدو مخه ونیسي. د getUpdates میتود ګټې به په عمل کې راشي که:

  • د HTTPS تنظیم کولو لپاره هیڅ لاره نشته؛
  • پیچلې سکریپټینګ ژبې کارول کیږي؛
  • د بوټ سرور وخت په وخت بدلیږي؛
  • بوټ د کاروونکو سره ډک شوی.

دوهم میتود چې د کارونکي پیغامونو ترلاسه کولو لپاره لیکل کیدی شي setWebhook دی. دا یو ځل کارول کیږي، اړتیا نشته چې په دوامداره توګه نوي غوښتنې واستوي. ویب هک ټاکل شوي URL ته د معلوماتو تازه معلومات لیږي. دا طریقه د SSL سند ته اړتیا لري. Webhook به په دې قضیو کې ګټور وي:

  • د ویب پروګرام کولو ژبې کارول کیږي؛
  • بوټ ډیر نه دی پورته شوی، ډیر کاروونکي شتون نلري؛
  • سرور نه بدلیږي، برنامه د اوږدې مودې لپاره په ورته سرور کې پاتې کیږي.

په نورو لارښوونو کې، موږ به getUpdates وکاروو.

د @BotFather ټیلیګرام خدمت د چیټ بوټونو رامینځته کولو لپاره ډیزاین شوی. لومړني ترتیبات هم د دې سیسټم له لارې تنظیم شوي - بوټ فادر به تاسو سره د توضیحاتو په جوړولو کې مرسته وکړي ، د پروفایل عکس ځای په ځای کړي ، د ملاتړ وسیلې اضافه کړي. کتابتونونه - د ټیلیګرام بوټو لپاره د HTML غوښتنو سیټ - په انټرنیټ کې شتون لري ، ډیری یې شتون لري. کله چې د مثال پروګرام رامینځته کول، pyTelegramBotApi کارول کیده.

1 ګام: د تبادلې نرخ غوښتنې پلي کول

لومړی تاسو اړتیا لرئ هغه کوډ ولیکئ چې پوښتنې ترسره کوي. موږ به د PrivatBank API لیکلو پر مهال وکاروو، لاندې د دې لینک دی: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. تاسو اړتیا لرئ په خپل کوډ کې دا میتودونه وکاروئ:

  • load_exchange - د تبادلې نرخونه لټوي او کوډ شوي معلومات ښیې؛
  • get_exchange - د یو ځانګړي اسعارو په اړه معلومات ښیې؛
  • get_exchanges - د نمونې مطابق د اسعارو لیست ښیې.

د پایلې په توګه، د pb.py فایل کې کوډ داسې ښکاري:

د وارداتو بیا واردولو غوښتنې د json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): بیرته راګرځئ json.loads(requests.get(URL).text) def get_exchange(ccy_key) ): د exc لپاره په load_exchange(): که ccy_key == exc['ccy']: د exc بیرته راګرځي False def get_exchanges(ccy_pattern): پایله = [] ccy_pattern = re.escape(ccy_pattern) + '.*' د exc لپاره load_exchange(): که re.match(ccy_pattern, exc['ccy'], re.IGNORECASE) هیڅ نه وي: result.append(exc) د بیرته راستنیدو پایله

برنامه کولی شي مشخصو غوښتنو ته لاندې ځواب صادر کړي:

[ { ccy:"USD", base_ccy:"UAH", پیرود:"25.90000", پلور:"26.25000" }, { ccy:"EUR", base_ccy:"UAH", پیرود:"29.10000", پلور:"29.85000" " }, { ccy:"RUR", base_ccy:"UAH", پیرود:"0.37800", پلور:"0.41800" }, { ccy:"BTC", base_ccy:"USD", پیرود:"11220.0384", پلور: "12401.0950" } ]

2 ګام: د @BotFather سره د ټیلیګرام بوټ جوړ کړئ

تاسو کولی شئ د @BotFather خدمت په کارولو سره د پیغامونو ترلاسه کولو او ځواب ویلو لپاره یو برنامه جوړه کړئ. د هغه د ټیلیګرام پا pageې ته لاړشئ او د / newbot کمانډ دننه کړئ. لارښوونې به په چیٹ کې څرګند شي ، د کوم له مخې چې تاسو اړتیا لرئ لومړی د بوټ نوم ولیکئ ، او بیا یې پته. کله چې د بوټ حساب رامینځته شي ، نو د ښه راغلاست پیغام به په سکرین کې څرګند شي چې نښه پکې وي. د نورو تشکیلاتو لپاره، دا کمانډونه وکاروئ:

  • /set description – توضیحات؛
  • /setabouttext - د نوي بوټ په اړه معلومات؛
  • /setuserpic – د پروفایل عکس؛
  • /setinline - انلاین حالت؛
  • /setcommands - د امرونو تشریح.

د ترتیب کولو په وروستي مرحله کې، موږ تشریح کوو / مرسته او / تبادله. کله چې ټول مرحلې بشپړې شوې ، نو دا وخت دی چې کوډ کولو ته لاړشئ.

3 ګام: د بوټ تنظیم کول او لانچ کول

راځئ چې د config.py فایل جوړ کړو. پدې کې ، تاسو اړتیا لرئ د ځانګړي بوټ کوډ او د وخت زون مشخص کړئ چیرې چې برنامه به معلومات ومومي.

ټوک = '' # د خپل بوټ د نښه سره بدل کړئTIMEZONE = 'اروپا/کیف' TIMEZONE_COMMON_NAME = 'کیف'

بیا، موږ د مخکینۍ لیکل شوي pb.py، کتابتونونو او نورو اړینو برخو واردولو سره یو بل فایل جوړوو. ورک شوي کتابتونونه د بسته بندۍ مدیریت سیسټم (pip) څخه نصب شوي.

وارد telebotimport configimport pbimport datetime import pytzimport jsonimport traceback P_TIMEZONE = pytz.timezone(config.TIMEZONE) TIMEZONE_COMMON_NAME = تشکیل.TIMEZONE_COMMON_NAME

راځئ چې د بوټ جوړولو لپاره د pyTelegramBotApi مینځپانګه وکاروو. موږ ترلاسه شوي نښه د لاندې کوډ په کارولو سره لیږو:

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

none_stop پیرامیټر ډاډ ورکوي چې غوښتنې په دوامداره توګه لیږل کیږي. د پیرامیټر عملیات به د میتود غلطیو لخوا اغیزمن نشي.

4 ګام: د کمانډ هینډلر / سټارټ ولیکئ

که ټول پخواني مرحلې په سمه توګه ترسره شي، بوټ کار پیل کړی. برنامه په منظم ډول غوښتنې رامینځته کوي ځکه چې دا د getUpdates میتود کاروي. د None_stop عنصر سره د کرښې دمخه، موږ د کوډ یوې برخې ته اړتیا لرو چې د /start کمانډ پروسس کوي:

@bot.message_handler(commands=['start']) def start_command(message): bot.send_message(message.chat.id, 'سلامونه! زه تاسو ته د تبادلې نرخ ښودلی شم' + د تبادلې نرخونو ترلاسه کولو لپاره فشار ورکړئ / exchange.n' + 'د مرستې ترلاسه کولو لپاره /help فشار ورکړئ')

RџSЂRё امر = ['پیل'] د ریښتیا سره مساوي start_command نومیږي. د پیغام منځپانګه هلته ځي. بیا ، تاسو اړتیا لرئ د لیږلو فنکشن پلي کړئ_پیغام د یو ځانګړي پیغام په تړاو.

5 ګام: د کمانډ هینډلر / مرسته جوړ کړئ

د / مرستې کمانډ د تڼۍ په توګه پلي کیدی شي. په دې کلیک کولو سره، کاروونکي به د پراختیا کونکي ټیلیګرام حساب ته لیږدول کیږي. تڼۍ ته یو نوم ورکړئ، لکه "د پراختیا کونکي څخه پوښتنه وکړئ". د ځواب_مارک اپ پیرامیټر تنظیم کړئ، کوم چې کاروونکي یو لینک ته لیږل کیږي، د send_message میتود لپاره. راځئ چې په کوډ کې هغه پیرامیټر ولیکو چې کیبورډ رامینځته کوي (InlineKeyboardMarkup). تاسو یوازې یو تڼۍ ته اړتیا لرئ (InlineKeyboardButton).

د وروستي کمانډ کنټرولر کوډ داسې ښکاري:

@bot.message_handler(commands=['help']) def help_command(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton('د پراختیا کونکي څخه پوښتنه وکړئ'، url='ваша ссылка) профиль' ) ) bot.send_message( message.chat.id, '1) د شته اسعارو لیست ترلاسه کولو لپاره /exchange.n' + '2) فشار ورکړئ په هغه اسعارو کلیک وکړئ چې تاسو یې لیوالتیا لرئ.n' + '3) تاسو به یو پیغام ترلاسه کړي چې د سرچینې او هدف شوي اسعارو په اړه معلومات لري، '+' د پیرود نرخونه او د پلور نرخونه. n' + '4) د غوښتنې په اړه د اوسني معلوماتو ترلاسه کولو لپاره "تازه" کلیک وکړئ. ' + 'بوټ به د پخوانیو او اوسني تبادلې نرخونو ترمنځ توپیر هم وښیې. n' + '5) بوټ د انلاین ملاتړ کوي. ډول @ په هر چیټ او د اسعارو په لومړیو لیکو کې.', reply_markup=keyboard )

په ټیلیګرام چیٹ کې د کوډ عمل:

په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

6 ګام: د / تبادلې کمانډ هینډلر اضافه کول

دا ګام په چیٹ کې د شته اسعارو سمبولونو سره د بټونو ښودلو لپاره اړین دی. د اختیارونو سره د سکرین کیبورډ به تاسو سره د غلطیو څخه مخنیوي کې مرسته وکړي. PrivatBank د روبل، ډالر او یورو په اړه معلومات وړاندې کوي. د انلاین کی بورډ بټن اختیار د دې په څیر کار کوي:

  1. کارونکي د مطلوب نوم سره تڼۍ کلیک کوي.
  2. getUpdates یو کال بیک ترلاسه کوي (CallbackQuery).
  3. دا معلومه شوه چې څنګه د کیبورډ فشار اداره کول - د فشار شوي تڼۍ په اړه معلومات لیږدول کیږي.

د تبادلې اداره کوډ:

@bot.message_handler(commands=['exchange']) def exchange_command(پیغام): 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، 'د انتخاب په اسعارو کلیک وکړئ:', reply_markup=keyboard )

په ټیلیګرام کې د کوډ پایله:

په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

7 ګام: د جوړ شوي کیبورډ بټونو لپاره د سمبالونکي لیکل

د pyTelegramBot Api بسته د @bot.callback_query_handler ډیکوریټر فنکشن لري. دا برخه د دې لپاره ډیزاین شوې چې کال بیک په فنکشن کې وژباړي - API خلاصوي او تلیفون بیا رامینځته کوي. دا په دې ډول لیکل کیږي:

@bot.callback_query_handler(func=lambda call: True) def iq_callback(پوښتنه): data = query.data که data.startswith('get-'): get_ex_callback(پوښتنه)

راځئ چې د get_ex_callback میتود هم ولیکئ:

def get_ex_callback(پوښتنه): bot.answer_callback_query(query.id) send_exchange_result(query.message, query.data[4:])

یو بل ګټور میتود شتون لري - ځواب_کال بیک_پوښتنه. دا د تڼۍ فشارولو او په سکرین کې د پایلې ښودلو ترمنځ د بار لرې کولو کې مرسته کوي. تاسو کولی شئ د ځینې اسعارو کوډ او پیغام په تیریدو سره send_exchange_query ته پیغام واستوئ. راځئ چې ولیکئ send_exchange_result:

def send_exchange_result(پیغام، 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_exdate_key ) parse_mode='HTML' )

پداسې حال کې چې chatbot د بانک څخه د غوښتنې پایله ترلاسه کوي API، لیدونکی د "پیغام ټایپ کول" لیکل ګوري. داسې ښکاري چې یو ریښتینی سړی ځواب ورکوي. په سکرین کې د داسې شاخص ښودلو لپاره، تاسو اړتیا لرئ چې د ننوتلو حالت لاینونه اضافه کړئ. بیا، موږ به get_exchange وکاروو - د دې په مرسته، برنامه به د اسعارو نومول ترلاسه کړي (روبل، یورو یا ډالر). send_message اضافي میتودونه کاروي: serialize_ex اسعارو په بل شکل بدلوي، او get_update_keyboard داسې سافټ کیز جوړوي چې معلومات تازه کوي او د اسعارو بازار ډیټا نورو چیټونو ته لیږي.

راځئ چې د get_update_keyboard لپاره کوډ ولیکئ. دوه تڼۍ باید ذکر شي - t او e د ډول او تبادلې لپاره ولاړ دي. د شریکولو تڼۍ لپاره switch_inline_query توکي اړین دي نو کاروونکي کولی شي له څو چیټونو څخه غوره کړي. لیدونکی به وکولی شي غوره کړي چې چا ته د ډالر، روبل یا یورو د اوسني تبادلې نرخ واستوي.

def get_update_keyboard(ex): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton( 'تازه کول', callback_data=json.dumps({ 't': 'u', 'e': {' b': ex['buy'], 's': ex['sale'], 'c': ex['ccy'] } }). ځای په ځای کول('',') ), telebot.types.InlineKeyboardButton ('شریک'، switch_inline_query=ex['ccy'])) کیبورډ بیرته راګرځي

ځینې ​​​​وختونه تاسو اړتیا لرئ وګورئ چې په لنډ وخت کې د تبادلې نرخ څومره بدل شوی. راځئ چې د اپډیټ تڼۍ لپاره دوه میتودونه ولیکئ ترڅو کاروونکي د پرتله کولو کورسونه وګوري.

د تبادلې نرخونو ترمنځ توپیر د توپیر پیرامیټر له لارې سیریلائزر ته لیږدول کیږي.

وړاندیز شوي میتودونه یوازې د معلوماتو تازه کیدو وروسته کار کوي ، دوی به د کورس په لومړي نندارتون اغیزه ونکړي.

def serialize_ex(ex_json, diff=None): پایله = '' + ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'خرید:' + ex_json['buy'] که توپیر: پایله += '' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'پلورل:' + ex_json['sale'] +' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' else: پایله += 'n' پلورل: '+ ex_json['sale'] + 'n' د بیرته راستنیدو پایله def serialize_exchange_diff(diff): پایله = '' که توپیر > 0: پایله = '(' + 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: پایله = '(' + 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">)' د راستنیدو پایله

تصور وکړئ چې لیدونکي غوښتل د ډالر د تبادلې نرخ پوه شي. دلته څه پیښیږي که تاسو په پیغام کې USD غوره کړئ:

په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

8 ګام: د اپډیټ بټن هینډلر پلي کول

راځئ چې د تازه تڼۍ سره د کړنو اداره کولو لپاره کوډ ولیکئ او د iq_callback_method برخه یې اضافه کړئ. کله چې د برنامې توکي د ترلاسه کولو پیرامیټر سره پیل شي ، نو تاسو باید get_ex_callback ولیکئ. په نورو حالتونو کې، موږ JSON تجزیه کوو او هڅه کوو چې کلیدي ترلاسه کړو.

@bot.callback_query_handler(func=lambda call: True) def iq_callback(پوښتنه): data = query.data که data.startswith('get-'): get_ex_callback(query) else: هڅه وکړئ: که json.loads(data)[ 't'] == 'u': edit_message_callback(پوښتنه) پرته له ValueError: pass

که t تاسو سره مساوي وي ، نو تاسو به اړتیا ولرئ د edit_message_callback میتود لپاره یو برنامه ولیکئ. راځئ چې دا پروسه ګام په ګام مات کړو:

  1. د اسعارو بازار حالت په اړه تازه معلومات ډاونلوډ کړئ (exchange_now = pb.get_exchange(data['c']).
  1. د ډیف سره د سیریلائزر له لارې د نوي پیغام لیکل.
  2. د لاسلیک اضافه کول (get_edited_signature).

که لومړنی پیغام بدل نه شي، د edit_message_text میتود ته زنګ ووهئ.

def edit_message_callback(پوښتنه): 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))، تبادله_now + 'n' + get_edited_signature() که query.message: bot.edit_message_text(متن، query.message.chat.id, query.message.message_id, reply_markup=get_update_keyboard(exchange_now)، parse_mode='if_message' HTML's_line کې. : bot.edit_message_text( متن, inline_message_id=query.inline_message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='HTML' )

راځئ چې د JSON پارس کولو لپاره get_ex_from_iq_data میتود ولیکئ:

def get_ex_from_iq_data(exc_json): بیرته ستنیدنه { 'خرید': exc_json['b']، 'خرڅلاو': exc_json['s'] }

تاسو به یو څو نورو میتودونو ته اړتیا ولرئ: د مثال په توګه، get_exchange_diff، کوم چې د اسعارو د لګښت په اړه زاړه او نوي معلومات لولي او توپیر څرګندوي.

def get_exchange_diff(وروستی، اوس): بیرته راګرځئ { 'sale_diff': float("%.6f" % (float(اوس['sale'])) - float(reast['sale'])))، 'buy_diff': float %

وروستی یو، get_edited_signature، هغه وخت ښیې چې کورس وروستی ځل تازه شوی و.

def get_edited_signature(): بیرته ستنیدل 'تازه شوی ' + str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + ' (' + TIMEZONE_COMMON_NAME +')'

د پایلې په توګه، د بوټ څخه تازه شوی پیغام د مستحکم تبادلې نرخ سره داسې ښکاري:

په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

کله چې کورس بدل شي، د ارزښتونو ترمنځ توپیرونه د ټاکل شوي پیرامیټونو له امله په پیغام کې ښودل کیږي.

په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

9 ګام: د امبیډ شوي حالت پلي کول

جوړ شوي حالت ته اړتیا ده چې ژر تر ژره د برنامه څخه هر چیٹ ته معلومات واستوئ - اوس تاسو اړتیا نلرئ د ګډون کونکي په توګه خبرو اترو ته بوټ اضافه کړئ. کله چې د ټیلیګرام کارونکي د بوټ نوم په مخ کې د @ نښه سره ننوځي، د تبادلې اختیارونه باید د ان پټ لاین څخه پورته څرګند شي. که تاسو په یو توکي کلیک وکړئ، بوټ به د پایلو او بټونو سره د معلوماتو تازه کولو او لیږلو لپاره خبرو اترو ته پیغام واستوي. د لیږونکي نوم به سرلیک ولري "له لارې ".

InlineQuery د کتابتون له لارې query_text ته لیږدول کیږي. کوډ د ډیټا او انلاین_query_id عنصر په توګه د لټون پایلې بیرته ترلاسه کولو لپاره د ځواب_لاین فعالیت کاروي. موږ get_exchanges کاروو ترڅو بوټ د غوښتنې پراساس څو اسعارو ومومي.

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

موږ د دې میتود له لارې د InlineQueryResultArticles څخه د شیانو بیرته راستنیدو لپاره get_iq_articles ته د معلوماتو یو لړ لیږدوو.

def get_iq_articles(تبادلې): نتیجه = [] د تبادلې لپاره exc: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], title=exc['ccy'], input_message_content=telebot.types.InputageesContent ( serialize_ex(exc), parse_mode='HTML' ), reply_markup=get_update_keyboard(exc), description='Convert' + exc['base_ccy'] + ' -> '+ exc['ccy'], thumb_height=1) بیرته راګرځیدل

اوس که تاسو لیکئ @ او په لیکه کې یو ځای، د لټون پایلې به په سکرین کې ښکاره شي - په دریو شته اسعارو بدلولو اختیارونه.

په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

کاروونکي کولی شي د مطلوب اسعارو په داخلولو سره پایلې فلټر کړي.

د لیست څخه په مطلوب اسعارو کلیک کولو وروسته ، چیټ ورته پیغام ترلاسه کوي چې د بوټ کارونکي یې ترلاسه کوي. تاسو کولی شئ د تازه کولو تڼۍ هم وکاروئ. لاندې عکس د بوټ له لارې لیږل شوی تازه پیغام ښیې:

په پایتون کې د ټیلیګرام بوټ. د سکریچ څخه د تبادلې نرخونو سره د بوټ لیکلو بشپړ لارښود

پایله

اوس تاسو پوهیږئ چې څنګه د ټیلیګرام لپاره بوټ جوړ کړئ. تاسو کولی شئ خپل برنامه کې ګټورې وسیلې اضافه کړئ: د میسینجر نورو کاروونکو ته د پایلو تازه کولو او لیږلو لپاره بټونه او یو جوړ شوی حالت چې تاسو ته اجازه درکوي د چټ څخه بهر د بوټ افعال وکاروئ. د دې لارښوونې پراساس، تاسو کولی شئ د نورو دندو سره کوم ساده بوټ جوړ کړئ - نه یوازې هغه چې د تبادلې نرخونه وښيي. د یو اتوماتیک معاون رامینځته کولو لپاره د کتابتونونو ، APIs او کوډونو تجربه کولو څخه مه ویره مه کوئ چې په ټیلیګرام کې د پیرودونکو سره خبرې وکړي او د شرکت سره د علاقه لرونکو خلکو اړیکې پیاوړې کړي.

1 پيغام

  1. Fantástica publicación

یو ځواب ورکړئ ووځي