பைத்தானில் டெலிகிராம் போட். புதிதாக மாற்று விகிதங்களுடன் ஒரு போட் எழுதுவதற்கான முழுமையான வழிகாட்டி

டெலிகிராமில் உள்ள போட்கள் பார்வையாளர்களுடன் தொடர்பை ஏற்படுத்த அல்லது முன்பு கைமுறையாகச் செய்ய வேண்டிய செயல்களை எளிதாக்க உதவும் நிரல்களாகும். இந்த புரோகிராம்கள் மெசஞ்சர் இயங்குதளத்திற்காக குறிப்பாக எழுதப்பட்டவை. போட்கள் இந்த வழியில் செயல்படுகின்றன: பயனர் உள்ளீட்டு வரி மூலம் ஒரு கட்டளையை அனுப்புகிறார், மேலும் கணினி உரை அல்லது ஊடாடும் செய்தியுடன் பதிலளிக்கிறது. சில நேரங்களில் நிரல் ஒரு உண்மையான நபரின் செயல்களைப் பின்பற்றுகிறது - அத்தகைய போட் வாடிக்கையாளர்களிடையே அதிக நம்பிக்கையைத் தூண்டுகிறது.

பயனர்களுக்கு தானியங்கி உதவிக்கு பல வகையான அமைப்புகள் உள்ளன. சில போட்கள் வாடிக்கையாளர்களுடன் தொடர்பு கொள்கின்றன, மற்றவை தொடர்ந்து தகவல்களை வழங்குகின்றன. நிரல்களை வகைகளாகப் பிரிப்பது சாத்தியமில்லை - டெவலப்பர்கள் பெரும்பாலும் ஒரு போட்டில் பல செயல்பாடுகளை இணைக்கிறார்கள்.

9 படிகளில் ஆன்-ஸ்கிரீன் பொத்தான்கள் வடிவில் ஊடாடும் கூறுகளுடன் டெலிகிராமிற்கு ஒரு எளிய போட் எழுதலாம். அவை ஒவ்வொன்றையும் விரிவாகப் பார்ப்போம் மற்றும் சில கேள்விகளுக்கு பதிலளிப்போம்:

  • ஒரு போட் தொடங்குவது எப்படி;
  • ஒன்று அல்லது அதற்கு மேற்பட்ட பொத்தான்களிலிருந்து உள்ளமைக்கப்பட்ட விசைப்பலகையை எவ்வாறு பதிவு செய்வது;
  • விரும்பிய செயல்பாடுகளுக்கு பொத்தான்களை எவ்வாறு நிரல் செய்வது;
  • இன்லைன் பயன்முறை என்றால் என்ன மற்றும் ஏற்கனவே உள்ள போட்க்கு அதை எவ்வாறு அமைப்பது.

படி 0: Telegram bots API பற்றிய தத்துவார்த்த பின்னணி

டெலிகிராம் போட்களை உருவாக்கப் பயன்படுத்தப்படும் முக்கிய கருவி HTML பயன்பாட்டு நிரலாக்க இடைமுகம் அல்லது HTML API ஆகும். இந்த உறுப்பு பார்வையாளர் கோரிக்கைகளை ஏற்றுக்கொள்கிறது மற்றும் தகவல் வடிவத்தில் பதில்களை அனுப்புகிறது. ஆயத்த வடிவமைப்புகள் நிரலின் வேலையை எளிதாக்குகின்றன. டெலிகிராமிற்கு ஒரு போட் எழுத, நீங்கள் இந்த மின்னஞ்சல் முகவரியைப் பயன்படுத்த வேண்டும்: https://api.telegram.org/bot/METHOD_NAME

போட்டின் சரியான செயல்பாட்டிற்கு, ஒரு டோக்கனும் தேவை - நிரலைப் பாதுகாக்கும் மற்றும் நம்பகமான டெவலப்பர்களுக்கு அணுகலைத் திறக்கும் எழுத்துக்களின் கலவையாகும். ஒவ்வொரு டோக்கனும் தனித்துவமானது. உருவாக்கத்தின் போது சரம் போட்டிற்கு ஒதுக்கப்படுகிறது. முறைகள் வேறுபட்டிருக்கலாம்: getUpdates, getChat மற்றும் பிற. டெவலப்பர்கள் போட்டில் இருந்து என்ன அல்காரிதம் எதிர்பார்க்கிறார்கள் என்பதைப் பொறுத்து முறையின் தேர்வு அமையும். டோக்கன் உதாரணம்:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

போட்கள் GET மற்றும் POST கோரிக்கைகளைப் பயன்படுத்துகின்றன. முறை அளவுருக்கள் பெரும்பாலும் கூடுதலாக இருக்க வேண்டும் - எடுத்துக்காட்டாக, sendMessage முறை அரட்டை ஐடி மற்றும் சில உரைகளை அனுப்ப வேண்டும். முறை சுத்திகரிப்புக்கான அளவுருக்கள் பயன்பாடு/x-www-form-urlencoded அல்லது application-json வழியாக URL வினவல் சரமாக அனுப்பப்படலாம். கோப்புகளைப் பதிவிறக்குவதற்கு இந்த முறைகள் பொருந்தாது. UTF-8 குறியாக்கமும் தேவை. API க்கு கோரிக்கையை அனுப்புவதன் மூலம், JSON வடிவத்தில் முடிவைப் பெறலாம். getME முறை மூலம் தகவலை மீட்டெடுப்பதற்கான நிரலின் பதிலைப் பாருங்கள்:

https://api.telegram.org/bot ஐப் பெறவும்/getMe{ சரி: உண்மை, முடிவு: { ஐடி: 231757398, முதல்_பெயர்: "எக்ஸ்சேஞ்ச் ரேட் பாட்", பயனர் பெயர்: "exchangetestbot" } }

என்றால் முடிவு கிடைக்கும் ok சமம் உண்மை. இல்லையெனில், கணினி பிழையைக் குறிக்கும்.

போட்களில் தனிப்பயன் செய்திகளைப் பெற இரண்டு வழிகள் உள்ளன. இரண்டு முறைகளும் பயனுள்ளவை, ஆனால் வெவ்வேறு சந்தர்ப்பங்களில் பொருத்தமானவை. செய்திகளைப் பெற, getUpdates முறையில் கைமுறையாக கோரிக்கையை எழுதலாம் - நிரல் புதுப்பிப்பு தரவு வரிசையை திரையில் காண்பிக்கும். கோரிக்கைகள் தவறாமல் அனுப்பப்பட வேண்டும், ஒவ்வொரு வரிசையையும் பகுப்பாய்வு செய்த பிறகு, அனுப்புவது மீண்டும் மீண்டும் செய்யப்படுகிறது. ஆஃப்செட் என்பது சரிபார்க்கப்பட்ட பொருள்கள் மீண்டும் தோன்றுவதைத் தவிர்க்க புதிய முடிவை ஏற்றுவதற்கு முன் தவிர்க்கப்பட்ட பதிவுகளின் எண்ணிக்கையைத் தீர்மானிக்கும் அளவுருவாகும். getUpdates முறையின் நன்மைகள் பின்வருவனவற்றில் செயல்படும்:

  • HTTPS ஐ கட்டமைக்க வழி இல்லை;
  • சிக்கலான ஸ்கிரிப்டிங் மொழிகள் பயன்படுத்தப்படுகின்றன;
  • போட் சர்வர் அவ்வப்போது மாறுகிறது;
  • பாட் பயனர்களால் ஏற்றப்பட்டது.

பயனர் செய்திகளைப் பெற எழுதக்கூடிய இரண்டாவது முறை setWebhook ஆகும். இது ஒரு முறை பயன்படுத்தப்படுகிறது, தொடர்ந்து புதிய கோரிக்கைகளை அனுப்ப வேண்டிய அவசியமில்லை. வெப்ஹூக் குறிப்பிட்ட URL க்கு தரவு புதுப்பிப்புகளை அனுப்புகிறது. இந்த முறைக்கு SSL சான்றிதழ் தேவை. பின்வரும் சந்தர்ப்பங்களில் Webhook பயனுள்ளதாக இருக்கும்:

  • வலை நிரலாக்க மொழிகள் பயன்படுத்தப்படுகின்றன;
  • போட் ஓவர்லோட் செய்யப்படவில்லை, அதிகமான பயனர்கள் இல்லை;
  • சேவையகம் மாறாது, நிரல் நீண்ட காலத்திற்கு அதே சேவையகத்தில் இருக்கும்.

மேலும் வழிமுறைகளில், getUpdates ஐப் பயன்படுத்துவோம்.

@BotFather டெலிகிராம் சேவை அரட்டை போட்களை உருவாக்க வடிவமைக்கப்பட்டுள்ளது. இந்த அமைப்பின் மூலம் அடிப்படை அமைப்புகளும் அமைக்கப்பட்டுள்ளன - விளக்கத்தை உருவாக்க, சுயவிவரப் புகைப்படத்தை வைக்க, ஆதரவுக் கருவிகளைச் சேர்க்க 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(): return json.loads(requests.get(URL).text) def get_exchange(ccy_key load_exchange (): for exc in load_exchange(): ccy_key என்றால் == exc['ccy']: return exc return False def get_exchanges(ccy_pattern): result = [] ccy_pattern = re.escape(ccy_pattern) + '.*' for exc in 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 சேவையைப் பயன்படுத்தி செய்திகளைப் பெறுவதற்கும் அவற்றுக்கு பதிலளிப்பதற்கும் நீங்கள் ஒரு நிரலை உருவாக்கலாம். அவரது டெலிகிராம் பக்கத்திற்குச் சென்று / newbot கட்டளையை உள்ளிடவும். அரட்டையில் வழிமுறைகள் தோன்றும், அதன்படி நீங்கள் முதலில் போட்டின் பெயரையும், அதன் முகவரியையும் எழுத வேண்டும். போட் கணக்கு உருவாக்கப்பட்டவுடன், டோக்கனைக் கொண்ட வரவேற்பு செய்தி திரையில் தோன்றும். மேலும் உள்ளமைவுக்கு, இந்த கட்டளைகளைப் பயன்படுத்தவும்:

  • /தொகுப்பு விளக்கம் - விளக்கம்;
  • /setabouttext – புதிய போட் பற்றிய தகவல்;
  • /setuserpic - சுயவிவர புகைப்படம்;
  • / setinline - இன்லைன் முறை;
  • /setcommands - கட்டளைகளின் விளக்கம்.

கடைசி உள்ளமைவு கட்டத்தில், நாங்கள் / உதவி மற்றும் / பரிமாற்றம் பற்றி விவரிக்கிறோம். அனைத்து படிகளும் முடிந்ததும், குறியீட்டு முறைக்கு செல்ல வேண்டிய நேரம் இது.

படி 3: பாட் அமைத்தல் மற்றும் துவக்குதல்

config.py கோப்பை உருவாக்குவோம். அதில், நீங்கள் தனிப்பட்ட போட் குறியீடு மற்றும் நிரல் தகவலைக் கண்டுபிடிக்கும் நேர மண்டலத்தைக் குறிப்பிட வேண்டும்.

டோக்கன் = '' # உங்கள் போட்டின் டோக்கனை மாற்றவும்TIMEZONE = 'ஐரோப்பா/கீவ்' TIMEZONE_COMMON_NAME = 'கியேவ்'

அடுத்து, முன்னர் எழுதப்பட்ட pb.py, நூலகங்கள் மற்றும் பிற தேவையான கூறுகளின் இறக்குமதியுடன் மற்றொரு கோப்பை உருவாக்குகிறோம். விடுபட்ட நூலகங்கள் தொகுப்பு மேலாண்மை அமைப்பிலிருந்து (பிப்) நிறுவப்பட்டுள்ளன.

import telebotimport configimport pbimport datetimeimport pytzimport jsonimport ட்ரேஸ்பேக் P_TIMEZONE = pytz.timezone(config.TIMEZONE) TIMEZONE_COMMON_NAME = config.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, 'வாழ்த்துக்கள்! நான் உங்களுக்கு மாற்று விகிதங்களைக் காட்ட முடியும்.n' + 'பரிமாற்ற விகிதங்களைப் பெற / அழுத்தவும் exchange.n' + 'உதவி பெற /help ஐ அழுத்தவும்.' )

RџСўРё கட்டளைகள்=['தொடங்கு'] உண்மைக்கு சமம் start_command அழைக்கப்படுகிறது. செய்தியின் உள்ளடக்கம் அங்கு செல்கிறது. அடுத்து, நீங்கள் அனுப்பும் செயல்பாட்டை செயல்படுத்த வேண்டும்_செய்தி ஒரு குறிப்பிட்ட செய்தி தொடர்பாக.

படி 5: /உதவி கட்டளை கையாளுபவரை உருவாக்கவும்

/help கட்டளையை ஒரு பொத்தானாக செயல்படுத்தலாம். அதைக் கிளிக் செய்வதன் மூலம், பயனர் டெவலப்பரின் டெலிகிராம் கணக்கிற்கு அழைத்துச் செல்லப்படுவார். பொத்தானுக்கு "டெவலப்பரிடம் கேளுங்கள்" போன்ற பெயரைக் கொடுங்கள். send_message முறைக்கு, பயனரை இணைப்புக்கு திருப்பிவிடும் reply_markup அளவுருவை அமைக்கவும். விசைப்பலகையை உருவாக்கும் அளவுருவை (InlineKeyboardMarkup) குறியீட்டில் எழுதுவோம். உங்களுக்கு ஒரே ஒரு பொத்தான் தேவை (InlineKeyboardButton).

இறுதி கட்டளை கையாளுதல் குறியீடு இதுபோல் தெரிகிறது:

@bot.message_handler(commands=['help']) def help_command(செய்தி): விசைப்பலகை = 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 ரூபிள், டாலர் மற்றும் யூரோ பற்றிய தகவல்களை வழங்குகிறது. InlineKeyboardButton விருப்பம் இப்படிச் செயல்படுகிறது:

  1. பயனர் விரும்பிய பதவியுடன் பொத்தானைக் கிளிக் செய்க.
  2. getUpdates ஒரு அழைப்பைப் பெறுகிறது (CallbackQuery).
  3. விசைப்பலகை அழுத்துவதை எவ்வாறு கையாள்வது என்பது அறியப்படுகிறது - அழுத்தப்பட்ட பொத்தானைப் பற்றிய தகவல் அனுப்பப்படுகிறது.

/ பரிமாற்றம் கையாளுபவர் குறியீடு:

@bot.message_handler(commands=['exchange']) def 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, 'தேர்ந்தெடுக்கப்பட்ட நாணயத்தின் மீது சொடுக்கவும்:', reply_markup=keyboard )

டெலிகிராமில் உள்ள குறியீட்டின் முடிவு:

பைத்தானில் டெலிகிராம் போட். புதிதாக மாற்று விகிதங்களுடன் ஒரு போட் எழுதுவதற்கான முழுமையான வழிகாட்டி

படி 7: உள்ளமைக்கப்பட்ட விசைப்பலகை பொத்தான்களுக்கு ஹேண்ட்லரை எழுதுதல்

pyTelegramBot Api தொகுப்பில் @bot.callback_query_handler decorator செயல்பாடு உள்ளது. இந்த கூறு மீண்டும் அழைப்பை ஒரு செயல்பாடாக மொழிபெயர்க்க வடிவமைக்கப்பட்டுள்ளது - API ஆனது அழைப்பை அவிழ்த்து மீண்டும் உருவாக்குகிறது. இது இவ்வாறு எழுதப்பட்டுள்ளது:

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

get_ex_callback முறையையும் எழுதுவோம்:

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

மற்றொரு பயனுள்ள முறை உள்ளது - answer_callback_query. பொத்தானை அழுத்துவதற்கும் திரையில் முடிவைக் காண்பிப்பதற்கும் இடையில் உள்ள சுமைகளை அகற்ற இது உதவுகிறது. சில நாணயக் குறியீடு மற்றும் செய்தியை அனுப்புவதன் மூலம் send_exchange_query க்கு செய்தியை அனுப்பலாம். 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_ket_update ), parse_mode='HTML' )

வங்கியிடமிருந்து கோரிக்கையின் முடிவை சாட்போட் பெறும் போது ஏபிஐ, பார்வையாளர் "ஒரு செய்தியைத் தட்டச்சு செய்கிறார்" என்ற கல்வெட்டைப் பார்க்கிறார். உண்மையான நபர் பதில் சொல்வது போல் தெரிகிறது. அத்தகைய குறிகாட்டியை திரையில் காட்ட, நீங்கள் உள்ளீட்டு நிலை வரிகளைச் சேர்க்க வேண்டும். அடுத்து, 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( 'Update', callback_data=json.dumps({ 't': 'u', 'e': { ' b': ex['buy'], 's': ex['sale'], 'c': ex['ccy'] } ).replace(' ', '') ), telebot.types.InlineKeyboardButton ('Share', switch_inline_query=ex['ccy']) ) திரும்ப விசைப்பலகை

சில நேரங்களில் நீங்கள் ஒரு குறுகிய காலத்தில் பரிமாற்ற விகிதம் எவ்வளவு மாறிவிட்டது என்பதைப் பார்க்க வேண்டும். புதுப்பிப்பு பொத்தானுக்கு இரண்டு முறைகளை எழுதுவோம், இதனால் பயனர்கள் படிப்புகளை ஒப்பிட்டுப் பார்க்க முடியும்.

மாற்று விகிதங்களுக்கிடையேயான வேறுபாடு டிஃப் அளவுரு வழியாக சீரியலைசருக்கு அனுப்பப்படுகிறது.

பரிந்துரைக்கப்பட்ட முறைகள் தரவு புதுப்பிக்கப்பட்ட பின்னரே செயல்படும், அவை பாடத்தின் முதல் காட்சியை பாதிக்காது.

def serialize_ex(ex_json, diff=இல்லை): முடிவு = '' + ex_json['base_ccy'] + ' -> ' + ex_json['ccy'] + ':nn' + 'வாங்கு: ' + ex_json['buy'] வித்தியாசமாக இருந்தால்: முடிவு += ' ' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'Sell: ' + ex_json['sale'] + ' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' else: result += 'nSell: ' + ex_json['sale'] + 'n' ரிட்டர்ன் ரிசல்ட் def serialize_exchange_diff(diff): result = '' வேறு என்றால் > 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: result = '(' + str( வேறுபாடு)[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 ஐ அலசுவோம் மற்றும் விசை 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(query) தவிர ValueError: pass

t u சமமாக இருந்தால், edit_message_callback முறைக்கு நீங்கள் ஒரு நிரலை எழுத வேண்டும். இந்த செயல்முறையை படிப்படியாக உடைப்போம்:

  1. நாணயச் சந்தையின் நிலை பற்றிய புதுப்பித்த தகவலைப் பதிவிறக்குகிறது (exchange_now = pb.get_exchange(data['c']).
  1. வித்தியாசத்துடன் ஒரு சீரியலைசர் மூலம் புதிய செய்தியை எழுதுதல்.
  2. கையொப்பத்தைச் சேர்த்தல் (get_edited_signature).

ஆரம்ப செய்தி மாறவில்லை என்றால், 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) _now) query.message என்றால் + 'n' + get_edited_signature() : bot.edit_message_text( 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): திரும்ப { 'buy': exc_json['b'], 'sale': exc_json['s'] }

உங்களுக்கு இன்னும் சில முறைகள் தேவைப்படும்: எடுத்துக்காட்டாக, get_exchange_diff, இது நாணயங்களின் விலையைப் பற்றிய பழைய மற்றும் புதிய தகவல்களைப் படித்து வித்தியாசத்தைக் காட்டுகிறது.

def get_exchange_diff(last, now): return { 'sale_diff': float("%.6f" % (float(இப்போது['sale'])) - float(last['sale']))), 'buy_diff': float ("%.6f" % (float(இப்போது['வாங்க']) - float(last['buy']))) }

கடைசியாக, get_edited_signature, பாடநெறி கடைசியாக புதுப்பிக்கப்பட்ட நேரத்தைக் காட்டுகிறது.

def get_edited_signature(): திரும்ப 'புதுப்பிக்கப்பட்டது ' + str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + ' (' + TIMEZONE_COMMON_NAME + ')'

இதன் விளைவாக, நிலையான மாற்று விகிதத்துடன் bot இலிருந்து புதுப்பிக்கப்பட்ட செய்தி இதுபோல் தெரிகிறது:

பைத்தானில் டெலிகிராம் போட். புதிதாக மாற்று விகிதங்களுடன் ஒரு போட் எழுதுவதற்கான முழுமையான வழிகாட்டி

பாடநெறி மாறும்போது, ​​பரிந்துரைக்கப்பட்ட அளவுருக்கள் காரணமாக மதிப்புகளுக்கு இடையிலான வேறுபாடுகள் செய்தியில் காட்டப்படும்.

பைத்தானில் டெலிகிராம் போட். புதிதாக மாற்று விகிதங்களுடன் ஒரு போட் எழுதுவதற்கான முழுமையான வழிகாட்டி

படி 9: உட்பொதிக்கப்பட்ட பயன்முறை செயல்படுத்தல்

நிரலிலிருந்து எந்த அரட்டைக்கும் விரைவாக தகவலை அனுப்ப உள்ளமைக்கப்பட்ட பயன்முறை தேவை - இப்போது நீங்கள் ஒரு பங்கேற்பாளராக உரையாடலில் ஒரு போட் சேர்க்க தேவையில்லை. டெலிகிராம் பயனர் ஒரு போட் பெயரை அதன் முன் @ குறியுடன் உள்ளிடும்போது, ​​உள்ளீட்டு வரிக்கு மேலே மாற்று விருப்பங்கள் தோன்றும். நீங்கள் உருப்படிகளில் ஒன்றைக் கிளிக் செய்தால், தரவுகளைப் புதுப்பிப்பதற்கும் அனுப்புவதற்கும் முடிவுகள் மற்றும் பொத்தான்களுடன் உரையாடலுக்கு போட் ஒரு செய்தியை அனுப்பும். அனுப்புநரின் பெயரில் “வழியாக” என்ற தலைப்பு இருக்கும் ".

InlineQuery நூலகம் வழியாக query_textக்கு அனுப்பப்பட்டது. தரவு வரிசை மற்றும் inline_query_id உறுப்பாக தேடல் முடிவுகளை மீட்டெடுக்க குறியீடு answer_line செயல்பாட்டைப் பயன்படுத்துகிறது. நாங்கள் 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)) )

இந்த முறையின் மூலம் InlineQueryResultArticle இலிருந்து பொருட்களைத் திரும்பப் பெறுவதற்காக, get_iq_articles க்கு தரவுகளின் வரிசையை அனுப்புகிறோம்.

def get_iq_articles(exchanges): விளைவு = [] பரிமாற்றங்களில் exc: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], title=exc['ccy'], input_message_content=telebot.types.InputTextM.InputTextM (serialize_ex(exc), parse_mode='HTML' ), reply_markup=get_update_keyboard(exc), description='Convert ' + exc['base_ccy'] + ' -> ' + exc['ccy'], thumb_height=1 ) ) திரும்ப முடிவு

இப்போது, ​​@ என்று எழுதினால் மற்றும் வரியில் ஒரு இடைவெளி, தேடல் முடிவுகள் திரையில் தோன்றும் - மூன்று கிடைக்கக்கூடிய நாணயங்களாக மாற்றுவதற்கான விருப்பங்கள்.

பைத்தானில் டெலிகிராம் போட். புதிதாக மாற்று விகிதங்களுடன் ஒரு போட் எழுதுவதற்கான முழுமையான வழிகாட்டி

பயனர்கள் விரும்பிய நாணயத்தை உள்ளிடுவதன் மூலம் முடிவுகளை வடிகட்டலாம்.

பட்டியலிலிருந்து விரும்பிய நாணயத்தைக் கிளிக் செய்த பிறகு, போட் பயனர்கள் பெறும் அதே செய்தியை அரட்டைப் பெறுகிறது. நீங்கள் புதுப்பிப்பு பொத்தானையும் பயன்படுத்தலாம். கீழே உள்ள படம் போட் வழியாக அனுப்பப்பட்ட புதுப்பிக்கப்பட்ட செய்தியைக் காட்டுகிறது:

பைத்தானில் டெலிகிராம் போட். புதிதாக மாற்று விகிதங்களுடன் ஒரு போட் எழுதுவதற்கான முழுமையான வழிகாட்டி

தீர்மானம்

டெலிகிராமிற்கு ஒரு போட்டை எவ்வாறு உருவாக்குவது என்பது இப்போது உங்களுக்குத் தெரியும். உங்கள் திட்டத்தில் பயனுள்ள கருவிகளைச் சேர்க்கலாம்: மெசஞ்சரின் பிற பயனர்களுக்கு முடிவைப் புதுப்பிப்பதற்கும் அனுப்புவதற்கும் பொத்தான்கள் மற்றும் அதனுடன் அரட்டைக்கு வெளியே போட் செயல்பாடுகளைப் பயன்படுத்த உங்களை அனுமதிக்கும் உள்ளமைக்கப்பட்ட பயன்முறை. இந்த அறிவுறுத்தலின் அடிப்படையில், மாற்று விகிதங்களைக் காட்டுவது மட்டுமின்றி, பிற செயல்பாடுகளுடன் கூடிய எந்த எளிய போட்டையும் நீங்கள் உருவாக்கலாம். டெலிகிராமில் வாடிக்கையாளர்களுடன் அரட்டையடிக்கும் மற்றும் நிறுவனத்துடன் ஆர்வமுள்ளவர்களின் தொடர்பை வலுப்படுத்தும் தானியங்கு உதவியாளரை உருவாக்க நூலகங்கள், ஏபிஐகள் மற்றும் குறியீட்டைப் பரிசோதிக்க பயப்பட வேண்டாம்.

1 கருத்து

  1. ஃபேன்டாஸ்டிகா வெளியீடு

ஒரு பதில் விடவும்