पायथनमधील टेलिग्राम बॉट. सुरवातीपासून विनिमय दरांसह बॉट लिहिण्यासाठी संपूर्ण मार्गदर्शक

टेलीग्राममधील बॉट्स हे असे कार्यक्रम आहेत जे प्रेक्षकांशी संपर्क स्थापित करण्यात मदत करतात किंवा पूर्वी हाताने कराव्या लागणाऱ्या क्रिया सुलभ करतात. हे प्रोग्राम विशेषतः मेसेंजर प्लॅटफॉर्मसाठी लिहिलेले आहेत. बॉट्स अशा प्रकारे कार्य करतात: वापरकर्ता इनपुट लाइनद्वारे कमांड पाठवतो आणि सिस्टम मजकूर किंवा परस्परसंवादी संदेशासह प्रतिसाद देते. कधीकधी कार्यक्रम वास्तविक व्यक्तीच्या कृतींचे अनुकरण देखील करतो - अशा बॉटमुळे ग्राहकांमध्ये अधिक विश्वास निर्माण होतो.

वापरकर्त्यांना स्वयंचलित सहाय्यासाठी अनेक प्रकारच्या प्रणाली आहेत. काही बॉट्स फक्त ग्राहकांशी संवाद साधतात, तर काही नियमितपणे माहिती देतात. प्रोग्राम्सचे प्रकारांमध्ये स्पष्टपणे विभाजन करणे अशक्य आहे - विकासक अनेकदा एका बॉटमध्ये अनेक कार्ये एकत्र करतात.

तुम्ही 9 पायऱ्यांमध्ये ऑन-स्क्रीन बटणांच्या स्वरूपात संवादात्मक घटकांसह टेलिग्रामसाठी एक साधा बॉट लिहू शकता. चला त्या प्रत्येकाकडे तपशीलवार पाहू आणि काही प्रश्नांची उत्तरे देऊ:

  • बॉट कसा सुरू करायचा;
  • एक किंवा अधिक बटणांमधून अंगभूत कीबोर्डची नोंदणी कशी करावी;
  • इच्छित कार्यांसाठी बटणे कशी प्रोग्राम करायची;
  • इनलाइन मोड काय आहे आणि विद्यमान बॉटसाठी तो कसा सेट करायचा.

चरण 0: टेलीग्राम बॉट्स API बद्दल सैद्धांतिक पार्श्वभूमी

टेलीग्राम बॉट्स तयार करण्यासाठी वापरलेले मुख्य साधन HTML ऍप्लिकेशन प्रोग्रामिंग इंटरफेस किंवा HTML API आहे. हा घटक अभ्यागतांच्या विनंत्या स्वीकारतो आणि माहितीच्या स्वरूपात प्रतिसाद पाठवतो. तयार डिझाईन्स प्रोग्रामवरील काम सुलभ करतात. टेलिग्रामसाठी बॉट लिहिण्यासाठी, तुम्हाला हा ईमेल पत्ता वापरण्याची आवश्यकता आहे: https://api.telegram.org/bot/METHOD_NAME

बॉटच्या योग्य कार्यासाठी, एक टोकन देखील आवश्यक आहे - वर्णांचे संयोजन जे प्रोग्रामचे संरक्षण करते आणि विश्वासार्ह विकसकांसाठी प्रवेश उघडते. प्रत्येक टोकन अद्वितीय आहे. निर्मितीवर स्ट्रिंग बॉटला नियुक्त केली जाते. पद्धती भिन्न असू शकतात: getUpdates, getChat आणि इतर. विकासकांना बॉटकडून कोणत्या अल्गोरिदमची अपेक्षा आहे यावर पद्धतीची निवड अवलंबून असते. टोकन उदाहरण:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

बॉट्स GET आणि POST विनंत्या वापरतात. मेथड पॅरामीटर्सना अनेकदा पूरक करावे लागते – उदाहरणार्थ, जेव्हा sendMessage पद्धत चॅट आयडी आणि काही मजकूर पाठवायची असते. पद्धत शुद्धीकरणासाठी पॅरामीटर्स URL क्वेरी स्ट्रिंग म्हणून application/x-www-form-urlencoded किंवा application-json द्वारे पास केले जाऊ शकतात. या पद्धती फायली डाउनलोड करण्यासाठी योग्य नाहीत. UTF-8 एन्कोडिंग देखील आवश्यक आहे. API ला विनंती पाठवून, तुम्ही JSON फॉरमॅटमध्ये निकाल मिळवू शकता. getME पद्धतीद्वारे माहिती पुनर्प्राप्त करण्यासाठी प्रोग्रामच्या प्रतिसादावर एक नजर टाका:

https://api.telegram.org/bot मिळवा/getMe{ ठीक आहे: खरे, परिणाम: { id: 231757398, first_name: "Exchange Rat Bot", वापरकर्तानाव: "exchangetestbot" } }

असल्यास परिणाम प्राप्त होईल ok समतुल्य खरे. अन्यथा, सिस्टम त्रुटी दर्शवेल.

बॉट्समध्ये सानुकूल संदेश मिळविण्याचे दोन मार्ग आहेत. दोन्ही पद्धती प्रभावी आहेत, परंतु वेगवेगळ्या प्रकरणांमध्ये योग्य आहेत. संदेश प्राप्त करण्यासाठी, तुम्ही getUpdates पद्धतीसह मॅन्युअली विनंती लिहू शकता - प्रोग्राम स्क्रीनवर अपडेट डेटा अॅरे प्रदर्शित करेल. विनंत्या नियमितपणे पाठवल्या पाहिजेत, प्रत्येक अॅरेचे विश्लेषण केल्यानंतर, पाठवण्याची पुनरावृत्ती होते. ऑफसेट हे पॅरामीटर आहे जे तपासलेल्या वस्तू पुन्हा दिसणे टाळण्यासाठी नवीन परिणाम लोड करण्यापूर्वी वगळलेल्या रेकॉर्डची संख्या निर्धारित करते. getUpdates पद्धतीचे फायदे लागू होतील जर:

  • HTTPS कॉन्फिगर करण्याचा कोणताही मार्ग नाही;
  • जटिल स्क्रिप्टिंग भाषा वापरल्या जातात;
  • बॉट सर्व्हर वेळोवेळी बदलतो;
  • बॉट वापरकर्त्यांनी भरलेला आहे.

दुसरी पद्धत जी वापरकर्त्याचे संदेश प्राप्त करण्यासाठी लिहिली जाऊ शकते ती सेटवेबहूक आहे. हे एकदा वापरले जाते, सतत नवीन विनंत्या पाठवण्याची गरज नाही. वेबहुक निर्दिष्ट URL वर डेटा अद्यतने पाठवते. या पद्धतीसाठी SSL प्रमाणपत्र आवश्यक आहे. वेबहुक या प्रकरणांमध्ये उपयुक्त ठरेल:

  • वेब प्रोग्रामिंग भाषा वापरल्या जातात;
  • बॉट ओव्हरलोड केलेले नाही, बरेच वापरकर्ते नाहीत;
  • सर्व्हर बदलत नाही, प्रोग्राम बर्याच काळासाठी त्याच सर्व्हरवर राहतो.

पुढील सूचनांमध्ये, आम्ही getUpdates वापरू.

@BotFather टेलिग्राम सेवा चॅट बॉट्स तयार करण्यासाठी डिझाइन केलेली आहे. या प्रणालीद्वारे मूलभूत सेटिंग्ज देखील सेट केल्या जातात - BotFather तुम्हाला वर्णन करण्यात, प्रोफाइल फोटो टाकण्यास, समर्थन साधने जोडण्यात मदत करेल. लायब्ररी - टेलीग्राम बॉट्ससाठी एचटीएमएल विनंत्यांचे संच - इंटरनेटवर उपलब्ध आहेत, त्यापैकी बरेच आहेत. उदाहरण कार्यक्रम तयार करताना, 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 in load_exchange(): if ccy_key == exc['ccy']: exc return 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 सेवा वापरून तुम्ही संदेश प्राप्त करण्यासाठी आणि त्यांना प्रतिसाद देण्यासाठी एक प्रोग्राम तयार करू शकता. त्याच्या टेलीग्राम पृष्ठावर जा आणि /newbot कमांड प्रविष्ट करा. चॅटमध्ये सूचना दिसून येतील, त्यानुसार तुम्हाला प्रथम बॉटचे नाव आणि नंतर त्याचा पत्ता लिहावा लागेल. जेव्हा बॉट खाते तयार केले जाईल, तेव्हा एक टोकन असलेला स्वागत संदेश स्क्रीनवर दिसेल. पुढील कॉन्फिगरेशनसाठी, या आज्ञा वापरा:

  • /सेट वर्णन - वर्णन;
  • /setabouttext - नवीन बॉटबद्दल माहिती;
  • /setuserpic – प्रोफाइल फोटो;
  • /सेटिनलाइन - इनलाइन मोड;
  • /setcommands - आदेशांचे वर्णन.

शेवटच्या कॉन्फिगरेशनच्या टप्प्यावर, आम्ही /help आणि /exchange चे वर्णन करतो. सर्व पायऱ्या पूर्ण झाल्यावर, कोडिंगकडे जाण्याची वेळ आली आहे.

पायरी 3: बॉट सेट करणे आणि लाँच करणे

config.py फाईल बनवू. त्यामध्ये, तुम्हाला युनिक बॉट कोड आणि प्रोग्रामला माहिती मिळेल तो टाइम झोन निर्दिष्ट करणे आवश्यक आहे.

टोकन = '' # तुमच्या बॉटच्या टोकनने बदलाTIMEZONE = 'युरोप/कीव' TIMEZONE_COMMON_NAME = 'कीव'

पुढे, आम्ही पूर्वी लिहिलेले pb.py, लायब्ररी आणि इतर आवश्यक घटक आयात करून दुसरी फाइल तयार करतो. गहाळ लायब्ररी पॅकेज मॅनेजमेंट सिस्टम (pip) वरून स्थापित केल्या आहेत.

टेलीबॉटीमपोर्ट कॉन्फिगरेशन आयात करा pbimport datetime आयात करा 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: /start कमांड हँडलर लिहा

मागील सर्व पायऱ्या योग्यरित्या पूर्ण केल्या असल्यास, बॉटने कार्य करणे सुरू केले आहे. प्रोग्राम नियमितपणे विनंत्या तयार करतो कारण तो 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: /मदत कमांड हँडलर तयार करा

/help कमांड बटण म्हणून कार्यान्वित करता येते. त्यावर क्लिक करून, वापरकर्त्याला विकसकाच्या टेलीग्राम खात्यावर नेले जाईल. बटणाला नाव द्या, जसे की “विकासकाला विचारा”. रिप्लाय_मार्कअप पॅरामीटर सेट करा, जे वापरकर्त्याला send_message पद्धतीसाठी लिंकवर पुनर्निर्देशित करते. कीबोर्ड (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: /exchange कमांड हँडलर जोडणे

चॅटमध्ये उपलब्ध चलनांची चिन्हे असलेली बटणे प्रदर्शित करण्यासाठी ही पायरी आवश्यक आहे. पर्यायांसह ऑन-स्क्रीन कीबोर्ड तुम्हाला चुका टाळण्यास मदत करेल. PrivatBank रूबल, डॉलर आणि युरोवर माहिती प्रदान करते. InlineKeyboardButton पर्याय याप्रमाणे कार्य करतो:

  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 कॉल: 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(संदेश, 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' )

चॅटबॉटला बँकेकडून विनंतीचा निकाल मिळतो 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'] } }).replace(' ',') ), 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'] diff असल्यास: परिणाम += ' ' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'विका: ' + ex_json['sale'] + ' ' + serialize_exchange_diff(diff['sale_diff']) + 'n' else: परिणाम += 'nSell: ' + 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">)' एलिफ डिफ < 0: परिणाम = '(' + 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 पार्स करतो आणि की टी मिळवण्याचा प्रयत्न करतो.

@bot.callback_query_handler(func=lambda call: True) def iq_callback(query): data = query.data if data.startswith('get-'): get_ex_callback(query) else: प्रयत्न करा: if json.loads(data)[ 't'] == 'u': edit_message_callback(query) शिवाय ValueError: पास

t बरोबर u असल्यास, तुम्हाला edit_message_callback पद्धतीसाठी प्रोग्राम लिहावा लागेल. चला ही प्रक्रिया टप्प्याटप्प्याने खंडित करूया:

  1. चलन बाजाराच्या स्थितीबद्दल अद्ययावत माहिती डाउनलोड करत आहे (exchange_now = pb.get_exchange(data['c']).
  1. डिफसह सीरियलायझरद्वारे नवीन संदेश लिहिणे.
  2. स्वाक्षरी जोडत आहे (प्राप्त_संपादित_स्वाक्षरी).

प्रारंभिक संदेश बदलत नसल्यास, 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() जर query.message: bot.edit_message_text( मजकूर, query.message.chat.id, query.message.message_id, reply_markup=get_update_keyboard(exchange_now), parse_mode='id_message' HTML'sline मध्ये. : 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'], 'sale': exc_json['s'] }

तुम्हाला आणखी काही पद्धतींची आवश्यकता असेल: उदाहरणार्थ, get_exchange_diff, जी चलनांच्या किमतीबद्दल जुनी आणि नवीन माहिती वाचते आणि फरक दाखवते.

def get_exchange_diff(लास्ट, आता): रिटर्न { 'sale_diff': float("%.6f" % (float(आता['sale'])) - float(last['sale']))), 'buy_diff': फ्लोट ("%.6f" % (फ्लोट(आता['खरेदी']) - फ्लोट(शेवटचे['खरेदी']))))}

शेवटचा, get_edited_signature, हा अभ्यासक्रम शेवटचा अपडेट करण्यात आलेला वेळ दाखवतो.

def get_edited_signature(): परत 'अद्यतनित केले ' + str(datetime.datetime.now(P_TIMEZONE).strftime('%H:%M:%S')) + ' (' + TIMEZONE_COMMON_NAME + ')'

परिणामी, स्थिर विनिमय दरासह बॉटकडून अपडेट केलेला संदेश यासारखा दिसतो:

पायथनमधील टेलिग्राम बॉट. सुरवातीपासून विनिमय दरांसह बॉट लिहिण्यासाठी संपूर्ण मार्गदर्शक

जेव्हा अभ्यासक्रम बदलतो, तेव्हा विहित पॅरामीटर्समुळे मूल्यांमधील फरक संदेशामध्ये प्रदर्शित केला जातो.

पायथनमधील टेलिग्राम बॉट. सुरवातीपासून विनिमय दरांसह बॉट लिहिण्यासाठी संपूर्ण मार्गदर्शक

पायरी 9: एम्बेडेड मोड अंमलबजावणी

कोणत्याही चॅटवर प्रोग्राममधून माहिती द्रुतपणे पाठवण्यासाठी अंगभूत मोड आवश्यक आहे – आता तुम्हाला सहभागी म्हणून संभाषणात बॉट जोडण्याची आवश्यकता नाही. जेव्हा टेलीग्राम वापरकर्ता बॉटचे नाव त्याच्या समोर @ चिन्हासह प्रविष्ट करतो, तेव्हा रूपांतरण पर्याय इनपुट लाइनच्या वर दिसले पाहिजेत. तुम्ही आयटमपैकी एकावर क्लिक केल्यास, बॉट डेटा अपडेट आणि पाठवण्यासाठी परिणाम आणि बटणांसह संभाषणात संदेश पाठवेल. पाठवणार्‍याच्या नावात “वाया” असा मथळा असेल ".

InlineQuery लायब्ररीद्वारे query_text ला पाठवली जाते. कोड डेटाचा अॅरे आणि inline_query_id घटक म्हणून शोध परिणाम पुनर्प्राप्त करण्यासाठी answer_line फंक्शन वापरतो. आम्ही get_exchanges वापरतो जेणेकरून बॉटला विनंतीवर अनेक चलने सापडतील.

@bot.inline_handler(func=lambda क्वेरी: 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(एक्सचेंज): परिणाम = [] एक्स्चेंजमधील exc साठी: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], title=exc['ccy'], input_message_content=telebot.types.InputageMessageContent ( serialize_ex(exc), parse_mode='HTML' ), reply_markup=get_update_keyboard(exc), description='Convert ' + exc['base_ccy'] + ' -> ' + exc['ccy'], thumb_height=1 ) परिणाम परत करा

आता तुम्ही लिहिलं तर @ आणि ओळीत एक जागा, शोध परिणाम स्क्रीनवर दिसतील - तीन उपलब्ध चलनांमध्ये रूपांतरित करण्याचे पर्याय.

पायथनमधील टेलिग्राम बॉट. सुरवातीपासून विनिमय दरांसह बॉट लिहिण्यासाठी संपूर्ण मार्गदर्शक

वापरकर्ते इच्छित चलन प्रविष्ट करून परिणाम फिल्टर करू शकतात.

सूचीमधून इच्छित चलनावर क्लिक केल्यानंतर, चॅटला समान संदेश प्राप्त होतो जो बॉट वापरकर्त्यांना प्राप्त होतो. तुम्ही अपडेट बटण देखील वापरू शकता. खालील प्रतिमा बॉटद्वारे पाठवलेला अद्ययावत संदेश दर्शवते:

पायथनमधील टेलिग्राम बॉट. सुरवातीपासून विनिमय दरांसह बॉट लिहिण्यासाठी संपूर्ण मार्गदर्शक

निष्कर्ष

आता तुम्हाला टेलीग्रामसाठी बॉट कसा तयार करायचा हे माहित आहे. आपण आपल्या प्रोग्राममध्ये उपयुक्त साधने जोडू शकता: मेसेंजरच्या इतर वापरकर्त्यांना परिणाम अद्यतनित करण्यासाठी आणि पाठविण्यासाठी बटणे आणि एक अंगभूत मोड जो आपल्याला चॅटच्या बाहेर बॉटची कार्ये वापरण्याची परवानगी देतो. या सूचनेच्या आधारे, तुम्ही इतर फंक्शन्ससह कोणताही साधा बॉट तयार करू शकता – केवळ एकच नाही जो विनिमय दर दर्शवेल. एक स्वयंचलित सहाय्यक तयार करण्यासाठी लायब्ररी, API आणि कोडसह प्रयोग करण्यास घाबरू नका जे टेलिग्रामवर ग्राहकांशी चॅट करेल आणि कंपनीशी इच्छुक लोकांचे कनेक्शन मजबूत करेल.

1 टिप्पणी

  1. कल्पनारम्य प्रकाशन

प्रत्युत्तर द्या