Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Bots a cikin Telegram shirye-shirye ne waɗanda ke taimakawa wajen kafa hulɗa tare da masu sauraro ko sauƙaƙe ayyukan da a baya dole ne a yi su da hannu. An rubuta waɗannan shirye-shiryen musamman don dandalin manzo. Bots suna aiki ta wannan hanya: mai amfani yana aika umarni ta hanyar layin shigarwa, kuma tsarin yana amsawa da saƙon rubutu ko mu'amala. Wani lokaci shirin har ma yana kwaikwayon ayyukan mutum na ainihi - irin wannan bot yana ƙarfafa amincewa tsakanin abokan ciniki.

Akwai nau'ikan tsari da yawa don taimako ta atomatik ga masu amfani. Wasu bots kawai suna sadarwa tare da abokan ciniki, wasu suna ba da bayanai akai-akai. Ba shi yiwuwa a fili raba shirye-shirye zuwa nau'ikan - masu haɓakawa sukan haɗa ayyuka da yawa a cikin bot ɗaya.

Kuna iya rubuta bot mai sauƙi don Telegram tare da abubuwa masu ma'amala a cikin nau'in maɓallan allo a cikin matakai 9. Bari mu dubi kowannensu dalla-dalla, mu amsa ‘yan tambayoyi:

  • yadda ake fara bot;
  • yadda ake yin rajistar ginanniyar madannai daga maɓalli ɗaya ko fiye;
  • yadda ake tsara maɓallan don ayyukan da ake so;
  • menene yanayin layi da yadda ake saita shi don bot ɗin da ke akwai.

Mataki 0: Bayanin ka'idar game da Telegram bots API

Babban kayan aikin da ake amfani da shi don ƙirƙirar bots na Telegram shine HTML Application Programming Interface, ko HTML API. Wannan kashi yana karɓar buƙatun baƙi kuma yana aika martani ta hanyar bayanai. Shirye-shiryen da aka shirya suna sauƙaƙe aikin akan shirin. Don rubuta bot don Telegram, kuna buƙatar amfani da wannan adireshin imel: https://api.telegram.org/bot/METHOD_NAME

Don daidaitaccen aiki na bot, ana kuma buƙatar alamar - haɗin haruffa waɗanda ke kare shirin kuma suna buɗe damar yin amfani da shi ga amintattun masu haɓakawa. Kowane alama na musamman ne. Ana sanya kirtani zuwa bot akan halitta. Hanyoyin na iya zama daban-daban: getUpdates, getChat da sauransu. Zaɓin hanyar ya dogara da abin da algorithm masu haɓaka ke tsammanin daga bot. Misalin alama:

123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

Bots suna amfani da buƙatun GET da POST. Sau da yawa dole ne a ƙara sigogin hanyar - misali, lokacin da hanyar aika saƙo ya kamata a aika id ɗin taɗi da wasu rubutu. Za'a iya wuce ma'auni don gyaran hanyar azaman hanyar tambayar URL ta amfani da aikace-aikacen/x-www-form-urlencoded ko ta aikace-aikacen-json. Waɗannan hanyoyin ba su dace da zazzage fayiloli ba. UTF-8 kuma ana buƙata. Ta hanyar aika buƙatu zuwa API, zaku iya samun sakamakon a cikin tsarin JSON. Dubi martanin shirin na maido da bayanai ta hanyar getME:

SAMU https://api.telegram.org/bot/getMe{ ok: gaskiya, sakamako: {id: 231757398, first_name: "Exchange Rate Bot", sunan mai amfani: "exchangetestbot"}}

Za a samu sakamakon idan ok daidai gaskiya. In ba haka ba, tsarin zai nuna kuskure.

Akwai hanyoyi guda biyu don samun saƙonnin al'ada a cikin bots. Duk hanyoyin biyu suna da tasiri, amma sun dace a lokuta daban-daban. Don samun saƙonni, za ku iya rubuta buƙatu da hannu tare da hanyar samunUpdates - shirin zai nuna tsarin sabunta bayanai akan allon. Dole ne a aika da buƙatun akai-akai, bayan nazarin kowace tsararru, ana maimaita aikawa. Offset siga ce da ke ƙayyade adadin bayanan da aka tsallake kafin loda sabon sakamakon don guje wa bayyanar abubuwan da aka bincika. Amfanin hanyar getUpdates za su shigo cikin wasa idan:

  • babu wata hanya ta daidaita HTTPS;
  • ana amfani da hadaddun harsunan rubutun rubutu;
  • uwar garken bot yana canzawa lokaci zuwa lokaci;
  • an ɗora bot ɗin tare da masu amfani.

Hanya na biyu da za a iya rubutawa don karɓar saƙonnin mai amfani shine saitinWebhook. Ana amfani da shi sau ɗaya, babu buƙatar aika sabbin buƙatun koyaushe. Gidan yanar gizon yana aika sabuntawar bayanai zuwa ƙayyadadden URL. Wannan hanyar tana buƙatar takardar shaidar SSL. Webhook zai zama da amfani a cikin waɗannan lokuta:

  • ana amfani da harsunan shirye-shiryen yanar gizo;
  • bot ba a yi masa yawa ba, babu masu amfani da yawa;
  • uwar garken ba ya canzawa, shirin ya kasance a kan uwar garken guda na dogon lokaci.

A cikin ƙarin umarni, za mu yi amfani da getUpdates.

An tsara sabis ɗin @BotFather Telegram don ƙirƙirar bots na taɗi. Hakanan an saita saitunan asali ta wannan tsarin - BotFather zai taimaka maka yin kwatance, sanya hoton bayanin martaba, ƙara kayan aikin tallafi. Dakunan karatu - saitin buƙatun HTML don Bots na Telegram - ana samun su akan Intanet, akwai su da yawa. Lokacin ƙirƙirar shirin misali, an yi amfani da pyTelegramBotApi.

Mataki 1: Aiwatar da Buƙatun Kuɗi

Da farko kuna buƙatar rubuta lambar da ke yin tambayoyi. Za mu yi amfani da lokacin rubuta PrivatBank API, a ƙasa akwai hanyar haɗi zuwa gare ta: https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5. Kuna buƙatar amfani da waɗannan hanyoyin a cikin lambar ku:

  • load_exchange - yana nemo farashin musayar kuma yana nuna bayanan da aka ɓoye;
  • get_exchange - yana nuna bayanai game da takamaiman kudin waje;
  • get_exchanges - yana nuna lissafin kuɗi bisa ga samfurin.

Sakamakon haka, lambar a cikin fayil ɗin pb.py yayi kama da haka:

buƙatun shigo da sake shigo da shigo da json URL = 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5' def load_exchange(): mayar json.loads(requests.get(URL).text) def get_exchange(ccy_key) ): don exc in load_exchange (): idan ccy_key == exc ['ccy']: mayar da exc dawo Karya def get_exchanges(ccy_pattern): sakamako = [] ccy_pattern = re.escape(ccy_pattern) + '.*' don exc in load_exchange(): idan re.match (ccy_pattern, exc ['ccy'], re.IGNORECASE) ba Babu: result.append(exc) sakamakon dawowa

Shirin na iya bayar da amsa mai zuwa ga takamaiman buƙatun:

[{ccy:"USD", base_ccy:"UAH", saya:"25.90000", siyarwa:"26.25000"}, {ccy:"EUR", base_ccy:"UAH", saya:"29.10000", sale:"29.85000 " }, {ccy:"RUR", base_ccy:"UAH", saya:"0.37800", sale:"0.41800"}, {ccy:"BTC",base_ccy:"USD", saya:"11220.0384", sale: "12401.0950"}]

Mataki 2: Ƙirƙiri Bot na Telegram tare da @BotFather

Kuna iya ƙirƙirar shirin don karɓar saƙonni da amsa su ta amfani da sabis na @BotFather. Jeka shafin sa na Telegram kuma shigar da umarnin /newbot. Umarni zai bayyana a cikin hira, bisa ga abin da kake buƙatar rubuta sunan bot da farko, sannan adireshinsa. Lokacin da aka ƙirƙiri asusun bot, saƙon maraba mai ɗauke da alama zai bayyana akan allon. Don ƙarin tsari, yi amfani da waɗannan umarni:

  • / setdescription - bayanin;
  • / setabouttext - bayani game da sabon bot;
  • /setuserpic - hoton bayanin martaba;
  • /setinline - yanayin layi;
  • /setcommands - bayanin umarni.

A mataki na ƙarshe na daidaitawa, muna bayyana /taimako da / musanya. Lokacin da duk matakan sun cika, lokaci yayi da za a ci gaba zuwa coding.

Mataki 3: Saita da ƙaddamar da Bot

Bari mu ƙirƙiri fayil ɗin config.py. A ciki, kuna buƙatar ƙayyade takamaiman lambar bot da yankin lokaci wanda shirin zai sami bayanai.

TOKEN ='' # maye gurbin da alamar bot TIMEZONE = 'Turai/Kiev' TIMEZONE_COMMON_NAME = 'Kiev'

Bayan haka, muna ƙirƙirar wani fayil tare da shigo da pb.py da aka rubuta a baya, ɗakunan karatu da sauran abubuwan da suka dace. An shigar da ɗakunan karatu da suka ɓace daga tsarin sarrafa kunshin (pip).

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

Bari mu yi amfani da abun ciki na pyTelegramBotApi don ƙirƙirar bot. Muna aika alamar da aka karɓa ta amfani da lambar mai zuwa:

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

Ma'aunin none_stop yana tabbatar da cewa ana aika buƙatun koyaushe. Kuskuren hanya ba zai tasiri aikin siga ba.

Mataki na 4: Rubuta/fara Mai sarrafa umarni

Idan duk matakan da suka gabata an yi daidai, bot ya fara aiki. Shirin yana samar da buƙatun akai-akai saboda yana amfani da hanyar samunUpdates. Kafin layin da babu_stop kashi, muna buƙatar wani yanki na lamba wanda ke aiwatar da umarnin farawa:

@bot.message_handler(umarni = ['farawa']) def start_command(saƙo): bot.send_message( saƙon.chat.id, 'Gaisuwa! Zan iya nuna muku farashin musanya.n' + 'Don samun kuɗin musanya danna / Exchange.n' + 'Don samun taimako danna /help.')

RAYUWA umarni=['farawa'] daidai da Gaskiya ana kiran start_umarn. Abinda ke cikin sakon yana zuwa can. Na gaba, kuna buƙatar aiwatar da aikin aikawa_sako dangane da wani sako na musamman.

Mataki na 5: Ƙirƙiri /help Command Handler

Ana iya aiwatar da umurnin /taimakon azaman maɓalli. Ta danna shi, za a kai mai amfani zuwa asusun Telegram na mai haɓakawa. Ba wa maɓallin suna, kamar "Tambayi mai haɓakawa". Saita ma'aunin reply_markup, wanda ke tura mai amfani zuwa hanyar haɗi, don hanyar send_message. Bari mu rubuta a cikin lambar sigar da ke ƙirƙirar madannai (InlineKeyboardMarkup). Kuna buƙatar maɓalli ɗaya kawai (Button Keyboard Inline).

Lambar mai sarrafa umarni ta ƙarshe tana kama da haka:

@bot.message_handler(umarni = ['taimako']) def help_command(saƙo): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add( telebot.types.InlineKeyboardButton('Tambayi mai haɓakawa', url='ваша ссылка на профиль' ) ) bot.send_message( message.chat.id, '1) Don karɓar jerin kuɗin da ake da su danna /exchange.n' + '2) Danna kan kuɗin da kuke sha'awar.n' + '3) Kuna zai karɓi saƙo mai ɗauke da bayanai game da tushen da kuɗin da aka yi niyya, '+' siyan farashin da farashin siyarwa.n' + '4) Danna "Sabuntawa" don karɓar bayanin na yanzu game da buƙatar. ' Rubuta @ a cikin kowace hira da haruffan farko na kuɗi.', reply_markup=allon madannai)

Ayyukan Code a cikin Taɗi na Telegram:

Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Mataki 6: Ƙara /exchange Handler Command

Ana buƙatar wannan matakin don nuna maɓallai tare da alamun da ke akwai a cikin taɗi. Maɓallin allon allo tare da zaɓuɓɓuka zai taimake ka ka guje wa kuskure. PrivatBank yana ba da bayanai akan ruble, dala da Yuro. Zaɓin InlineKeyboardButton yana aiki kamar haka:

  1. Mai amfani yana danna maɓallin tare da sunan da ake so.
  2. getUpdates yana karɓar sake kira (CallbackQuery).
  3. Ya zama sananne yadda za a rike latsa maballin - ana watsa bayanai game da maɓallin da aka danna.

/ code mai sarrafa musanya:

@bot.message_handler (umarni = ['musanyawa']) hana musayar umarni (saƙo): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.row( telebot.types.InlineKeyboardButton('USD', callback_data='samu-USD') ) keyboard.row( telebot.types.InlineKeyboardButton('EUR', callback_data='samu-EUR'), telebot.types.InlineKeyboardButton('RUR', callback_data='samu-RUR') ) bot.send_message( message.chat. .id, 'Danna kan kudin zabi:', reply_markup=allon madannai)

Sakamakon code a cikin Telegram:

Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Mataki 7: Rubuta mai sarrafa maɓallan madannai da aka gina a ciki

Kunshin pyTelegramBot Api ya ƙunshi aikin gyara kayan adon @bot.callback_query_handler. An ƙera wannan ɓangaren don fassara kira zuwa aiki - API ya buɗe kuma ya sake ƙirƙirar kira. An rubuta shi kamar haka:

@bot.callback_query_handler (func= kiran lambda: Gaskiya) def iq_callback(tambaya): data = query.data idan data.startswith ('samu-'): get_ex_callback(tambaya)

Mu kuma rubuta hanyar samun_ex_callback:

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

Akwai wata hanya mai amfani - answer_callback_query. Yana taimakawa wajen cire kaya tsakanin latsa maɓallin da kuma nuna sakamakon akan allon. Kuna iya aika saƙo zuwa send_exchange_query ta hanyar wuce wasu lambar kuɗi da Saƙo. Bari mu rubuta send_exchange_result:

def send_exchange_result (saƙo, ex_code): bot.send_chat_action (message.chat.id, 'bugawa') ex = pb.get_exchange(ex_code) bot.send_message( message.chat.id, serialize_ex(misali), reply_markup=samu_update_keyboard(misali. ), parse_mode = 'HTML' )

Yayin da chatbot ke karbar sakamakon bukatar daga bankin API, baƙo yana ganin rubutun "buga saƙo". Da alama mutum na gaske yana amsawa. Don nuna irin wannan alamar akan allon, kuna buƙatar ƙara layukan shigarwa. Na gaba, za mu yi amfani da get_exchange - tare da taimakonsa, shirin zai karbi sunan kudin (rubles, Yuro ko daloli). send_message yana amfani da ƙarin hanyoyin: serialize_ex yana canza kuɗin zuwa wani tsari, kuma get_update_keyboard yana saita softkeys waɗanda ke sabunta bayanai da aika bayanan kasuwar kuɗi zuwa wasu taɗi.

Bari mu rubuta lambar don get_update_keyboard. Ana buƙatar maɓallai biyu da za a ambata - t da e suna tsayawa don nau'in da musayar. Ana buƙatar abun switch_inline_query don maɓallin Share don mai amfani ya zaɓi daga taɗi da yawa. Baƙo zai iya zaɓar wa wanda zai aika canjin dala, ruble ko Yuro na yanzu.

def get_update_keyboard(misali): maballin = telebot.types.InlineKeyboardMarkup() madannai.row( telebot.types.InlineKeyboardButton('Sabunta', callback_data=json.dumps({'t':'u','e': {' b': ex['sayi'], 's': ex['sale'], 'c': ex['ccy']}}).mamaye('',')), telebot.types.InlineKeyboardButton ('Share', switch_inline_query=ex['ccy']) ) dawo da madannai

Wani lokaci kana buƙatar ganin nawa farashin canji ya canza a cikin ɗan gajeren lokaci. Bari mu rubuta hanyoyi biyu don maɓallin Sabuntawa don masu amfani su iya ganin kwasa-kwasan kwatancen.

Bambanci tsakanin farashin musanya ana wuce shi zuwa serializer ta hanyar siga daban-daban.

Hanyoyin da aka tsara suna aiki ne kawai bayan an sabunta bayanan, ba za su shafi farkon nunin karatun ba.

def serialize_ex (ex_json, diff=Babu): sakamako = ''+ ex_json['base_ccy'] +' ->' + ex_json['ccy'] +':nn' + 'Saya:' + ex_json ['sayi'] idan bambanta: sakamako += '' + serialize_exchange_diff(diff['buy_diff']) + 'n' + 'Saya:' + ex_json['sale'] +' ' + serialize_exchange_diff (diff ['sale_diff']) + 'n' sauran: sakamako + = 'nSell:' + ex_json ['sale'] + 'n' sakamakon dawo da def serialize_exchange_diff (diff): sakamako = '' idan bambanta > 0: sakamako = '(' + 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: sakamako ='(' + 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">)' sakamakon dawowar

Ka yi tunanin cewa baƙon yana son sanin canjin dala. Ga abin da zai faru idan kun zaɓi USD a cikin saƙon:

Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Mataki 8: Aiwatar da Mai sarrafa Maɓallin Sabuntawa

Bari mu rubuta lambar don gudanar da ayyuka tare da maɓallin Sabuntawa kuma mu ƙara ɓangaren iq_callback_method zuwa gare ta. Lokacin da abubuwan shirin suka fara da ma'aunin samun, dole ne ku rubuta get_ex_callback. A wasu yanayi, muna nazarin JSON kuma muna ƙoƙarin samun maɓallin t.

@bot.callback_query_handler (func = kiran lambda: Gaskiya) def iq_callback (tambaya): data = query.data idan data.startswith ('samun-'): samun_ex_callback(tambaya) wani: gwada: idan json.loads (data)[ 't'] == 'u': edit_message_callback(tambaya) ban da Kuskuren Ƙimar: wuce

Idan t daidai ku, kuna buƙatar rubuta shirin don hanyar edit_message_callback. Bari mu rushe wannan tsari mataki-mataki:

  1. Zazzage bayanan zamani game da yanayin kasuwar kuɗi (exchange_now = pb.get_exchange(bayanai['c']).
  1. Rubuta sabon saƙo ta hanyar serializer tare da bambanta.
  2. Ƙara sa hannu (samun_edited_signature).

Idan saƙon farko bai canza ba, kira hanyar edit_message_text.

def edit_message_callback (tambaya): data = json.loads (query.data) ['e'] exchange_now = pb.get_exchange (bayanai ['c']) rubutu = serialize_ex (exchange_now, get_exchange_diff ( samu_ex_from_iq_data (bayanai), musayar_now) ) + 'n' + samun_edited_signature () idan tambaya.message: bot.edit_message_text(rubutu, query.message.chat.id, query.message.message_id, reply_markup=samu_update_keyboard(exchange_now), parse_mode='HTML' )_elifmesageinline_idline. : bot.edit_message_text

Bari mu rubuta hanyar get_ex_from_iq_data don tantance JSON:

def get_ex_from_iq_data(exc_json): dawowa {'saya': exc_json['b'], 'sale': exc_json['s']}

Kuna buƙatar wasu ƙarin hanyoyin: misali, get_exchange_diff, wanda ke karanta tsofaffi da sababbin bayanai game da farashin agogo kuma yana nuna bambanci.

def get_exchange_diff (na ƙarshe, yanzu): dawo {'sale_diff': taso kan ruwa ("%6f"% (tasowa ruwa (yanzu ['sale']])) - taso kan ruwa (na ƙarshe ['sale']))), 'buy_diff': taso kan ruwa ("%6f" % (taso kan ruwa (yanzu ['sayi'])) - taso kan ruwa (na ƙarshe['sayi']))))}

Na ƙarshe, get_edited_signature, yana nuna lokacin da aka sabunta kwas ɗin.

def get_edited_signature(): dawo'An sabunta' + str (datetime.datetime.yanzu(P_TIMEZONE).strftime('%H:%M:%S')) + '('+ TIMEZONE_COMMON_NAME +')'

Sakamakon haka, saƙon da aka sabunta daga bot tare da tsayayyen ƙimar musayar yayi kama da haka:

Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Lokacin da kwas ɗin ya canza, ana nuna bambance-bambance tsakanin ƙimar a cikin saƙon saboda sigogin da aka tsara.

Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Mataki na 9: Cigaban Yanayin Aiwatar

Ana buƙatar yanayin ginannen don aika bayanai da sauri daga shirin zuwa kowane hira - yanzu ba kwa buƙatar ƙara bot a cikin tattaunawar azaman ɗan takara. Lokacin da mai amfani da Telegram ya shigar da sunan bot tare da alamar @ a gabansa, zaɓuɓɓukan juyawa yakamata su bayyana sama da layin shigarwa. Idan ka danna ɗaya daga cikin abubuwan, bot ɗin zai aika da saƙo zuwa tattaunawar tare da sakamako da maɓallan don sabuntawa da aika bayanai. Sunan mai aikawa zai ƙunshi taken “ta ".

InlineQuery an wuce zuwa query_text ta ɗakin karatu. Lambar tana amfani da aikin answer_line don dawo da sakamakon binciken azaman tsararrun bayanai da simintin inline_query_id. Muna amfani da get_exchanges domin bot ɗin ya sami kuɗi da yawa akan buƙata.

@bot.inline_handler

Muna ba da ɗimbin bayanai don samun_iq_articles don dawo da abubuwa daga InlineQueryResultArticle ta wannan hanyar.

def get_iq_articles(musanya): sakamako = [] don exc a cikin musanya: result.append( telebot.types.InlineQueryResultArticle( id=exc['ccy'], take=exc['ccy'], input_message_content=telebot.types.InputTextMessageContent ( serialize_ex (exc), parse_mode = 'HTML' ), reply_markup = samu_update_keyboard (exc), bayanin = 'Maida' + exc['base_ccy'] + ' -> ' + exc ['ccy'], thumb_height = 1 ) ) mayar da sakamakon

Yanzu, idan kun rubuta @ da sarari a cikin layi, sakamakon binciken zai bayyana akan allon - zaɓuɓɓuka don canzawa zuwa agogo uku da aka samu.

Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Masu amfani za su iya tace sakamakon ta shigar da kuɗin da ake so.

Bayan danna kan kuɗin da ake so daga jerin, taɗi yana karɓar saƙo ɗaya wanda masu amfani da bot ke karɓa. Hakanan zaka iya amfani da maɓallin ɗaukakawa. Hoton da ke ƙasa yana nuna sabunta saƙon da aka aika ta bot:

Telegram bot a cikin Python. Cikakken jagora don rubuta bot tare da farashin musanya daga karce

Kammalawa

Yanzu kun san yadda ake ƙirƙirar bot don Telegram. Kuna iya ƙara kayan aiki masu amfani zuwa shirin ku: maɓalli don sabuntawa da aika sakamakon zuwa sauran masu amfani da manzo da yanayin da aka gina wanda ke ba ku damar amfani da ayyukan bot a waje da hira tare da shi. Dangane da wannan umarnin, zaku iya ƙirƙirar kowane bot mai sauƙi tare da wasu ayyuka - ba kawai wanda zai nuna ƙimar musanya ba. Kada ku ji tsoro don gwaji tare da ɗakunan karatu, APIs, da lambar don ƙirƙirar mataimaki mai sarrafa kansa wanda zai yi magana da abokan ciniki akan Telegram kuma ya ƙarfafa haɗin gwiwar masu sha'awar kamfanin.

1 Comment

  1. Fantastica publicación

Leave a Reply