Tungkol sa aking bot para sa Telegram, na maaaring magpakita ng data mula sa Google Analytics. At pagkatapos ay inihayag ng Microsoft ang paglulunsad ng mga bot sa Skype - oras na upang malaman kung paano ito gumagana. Sa ilalim ng hiwa - isang maliit na paglalarawan posibleng mga problema. Sino ang hindi makapaghintay na makita ang resulta, narito na - MetricsBot.

Bot Framework vs. Skype Bot API

Upang magsimula sa, ito ay nagkakahalaga ng pag-unawa na mayroong isang Bot Framework, na nagpapahintulot sa iyo na lumikha ng mga bot para sa maraming mga mensahero, kasama. at para sa Skype, ngunit mayroong Skype Bot API, na nagpapahintulot sa iyo na lumikha ng mga bot partikular para sa Skype. Ang bawat isa ay may sariling dokumentasyon, sariling bot catalog (?) at sarili nitong pagpaparehistro ng bot. Tila halata na ang mga ito ay iba't ibang mga bagay, ngunit gumugol ako ng maraming oras sa pagsubok na alamin ang Bot Framework "isang dokumentasyon at pagrehistro ng bot dito, noong inaasahan kong gumagawa ako ng bot nang walang balangkas. Dagdag pa, kami ay partikular na magsasalita tungkol sa Skype Bot API, Bot Framework hindi natin ito kailangan, hindi rin natin kailangang magrehistro ng kahit ano doon. Mayroong Skype SDK para sa Node.js at para sa. Hindi ko rin sila ginamit, dahil Sinulat ko ang bot sa Python.

kapaki-pakinabang na mga link

Upang magsimula, isang maliit na hanay ng mga kapaki-pakinabang na link (lahat ng mga link ay para sa wikang Ingles):

  • Ang iyong mga application (dito kailangan mong gumawa ng bagong application at makuha ang app id at sikreto ng kliyente)
  • Pamamahala sa iyong mga bot (dito kailangan mong lumikha ng bagong bot, na tinutukoy ang app id na natanggap nang mas maaga)

Sa prinsipyo, mula sa dokumentasyon ay malinaw kung paano gumagana ang bot at kung paano ito nakikipag-ugnayan sa Skype, kaya hindi ko ilalarawan ang bahaging ito - magsasalita ako tungkol sa mga paghihirap.

Awtorisasyon

Ito pala ang pinakamahirap na bahagi para sa akin. Sinasabi ng dokumentasyon na para sa awtorisasyon, kailangan mong kumuha ng token, at pagkatapos ay gamitin ito sa header ng HTTP sa bawat kahilingan:

Awtorisasyon: Tagadala ng oauth2-token

Gayunpaman, sa ilang kadahilanan, nakalimutan ng dokumentasyon na ipahiwatig kung aling saklaw ang dapat gamitin upang makuha ang token. Ang tamang sagot (matatagpuan sa Node.js SDK code) ay https://graph.microsoft.com/.default .
Ngunit dito magsisimula ang pinaka-kagiliw-giliw na bagay - kung lumikha ka ng isang URL para sa kumpirmasyon ng gumagamit (= ang may-ari ng bot), pagkatapos ay tumanggap auth_code, at pagkatapos ay subukang palitan ang code na ito para sa access token, pagkatapos ay lalabas ang problema sa pinakaunang hakbang - kapag binubuksan ang nilikhang URL, nanunumpa ang Microsoft sa maling saklaw. Ang tamang saklaw, sa pamamagitan ng paraan, ay wala sa listahan ng mga posibleng opsyon sa dokumentasyon ng Microsoft. Sinubukan kong tukuyin ang isa pang saklaw - openid offline_access https://graph.microsoft.com/user.read , sa kasong ito nakakuha ako ng isang token, ngunit hindi ako maaaring makipag-ugnayan sa Skype dito.
Ang solusyon ay naging hindi inaasahan - upang makakuha ng access_token, kinakailangan na magpadala ng regular na kahilingan sa POST:

curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: application/x-www-form-urlencoded" -d "client_id= &client_secret= &grant_type=client_credentials&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" "https://login.microsoftonline.com/common/oauth2/v2.0/token"

Nagbabalik bilang tugon access_token at expires_in(walang kahit ano refresh_token). Hindi pa ako nakakita ng ganitong OAuth.

Nagpapadala ng mga mensahe

Ang pagpapadala ng mga mensahe ay medyo simple -

POST /v2/conversations/8:alice/activities HTTP/1.1
Host: apis.skype.com
Awtorisasyon: Tagadala ng oauth2-token
{
"mensahe": ("content" : "Hi! (wave)")
}

Ipinapadala ang mga kahilingan sa apis.skype.com. Nakalimutan ng dokumentasyon na ipahiwatig na ang mga kahilingan ay dapat pumunta sa pamamagitan ng http s.
Maaari kang gumamit ng mga html tag sa teksto. Alin ang eksaktong - ay hindi pa rin alam (walang listahan sa dokumentasyon).
May mga kawili-wili at hindi inilarawang mga paghihigpit sa ipinadalang teksto. Halimbawa, hindi magagamit ang mga character sa text & , < at > . Hindi makapagpadala ng karakter & lumilikha ng problema kapag nagpapasa ng mga sanggunian. Ang isa pang problema sa mga pagsusumite ng link ay ang awtomatikong nabuong mga thumbnail para sa bawat link. Sa aking MetricsBot, mayroong tatlong link sa text ng imbitasyon, gumagawa ang Skype ng tatlong preview. Hindi mo pa ito ma-off.

Pag-publish ng bot

Pagkatapos gawin ang bot, maaari mong subukang i-publish ito (bago iyon, ang bilang ng mga gumagamit ng bot ay limitado - 100 tao lamang ang maaaring gumamit nito). Kung gaano katagal ang proseso ng pag-publish ay hindi malinaw, wala ito sa dokumentasyon. Ang aking bot ay hindi pa nai-publish. Sa opisyal na forum, ang aking tanong sa paksang ito ay nalampasan (bagaman ang aking iba pang mga katanungan ay sinasagot ng mga empleyado ng Microsoft).
Pakitandaan na upang mai-publish ang bot, dapat mong i-disable ang paggamit ng bot sa mga panggrupong chat.

Kung hindi, ang paglikha ng isang bot para sa Skype ay medyo simple.

Kasunod ng ilang iba pang mga mensahero at serbisyong panlipunan, nagpasya din ang Skype na "i-legal" ang mga bot. At sa pagtatapos ng Marso 2016, inihayag ng mga developer ang tampok na ito sa kanilang aplikasyon. Ano ang nilayon nito Skype bot, bakit, sa katunayan, maaari itong maging kapaki-pakinabang sa pinakakaraniwang user at paano ka makakapagdagdag ng ilang uri ng bot sa iyong sarili?

Mga bot sa virtual na espasyo

Sa katunayan, ang mga bot ay hindi isang imbensyon ng modernong virtual space. Ang bot ay programa sa kompyuter, na idinisenyo sa lahat ng posibleng paraan upang "magpanggap" bilang isang ordinaryong tao sa Web. At ang mga unang bot, kakaiba, ay lumitaw ... sa mga laro sa Kompyuter. Ito ay sa pagbuo ng mga tagabaril sa network - tulad ng DOOM, Quake at iba pa - na nagsimulang magsulat ang mga gumagamit ng tinatawag na mga bot - mga robot ng software na maaaring bumuo ng isang kumpanya sa mga labanan sa network. Pagkatapos ng lahat, hindi lahat ng mga manlalaro ay may access sa isang network ng computer, ngunit gusto pa rin nilang maglaro ...

Ngayon, ang mga bot ay parehong kaaya-aya at hindi kanais-nais na mga karagdagan sa halos anumang bagay social network o messenger.

Noong una, naiinis lang sila sa kanilang katangahan. Sa paglipas ng panahon, gayunpaman, napagtanto ng mga programmer na ang mga bot ay maaari ding ilagay sa kapaki-pakinabang na serbisyo sa sangkatauhan. At ngayon ang isang malaking bilang ng mga bot ay nakasulat sa order at sa isang bayad na batayan. Halimbawa, para sagutin ang mga tanong ng customer, mag-isyu ng certificate sa mga keyword sa messenger...

Paghirang ng mga bot sa Skype

Maaaring gayahin ng Skype software robot ang pag-uugali ng isang buhay na tao sa Web. Mula sa anunsyo, lumitaw ang iba't ibang mga bot ng Skype. Ang ilan ay nagbibigay-aliw lamang sa gumagamit sa pamamagitan ng paglalaro ng iba't ibang mga laro kasama niya, ang iba ay maaaring maghanap kapaki-pakinabang na impormasyon sa Web, ang iba ay maaari ding makipag-usap ...

Sa isang salita, ang pagpipilian ay talagang mahusay. gayunpaman, karamihan ng Ang mga bot ay nasa Ingles pa rin, ang ilan ay magagamit lamang sa United States. Gayunpaman, ang mga paghihigpit ay lumiliit at lumiliit.

Upang matiyak na ligtas ang bot, kailangan mong tingnan ang profile nito bago ito idagdag. Dapat itong maglaman ng pariralang "Skype Certified". Bilang karagdagan, ang avatar ng bot ay palaging heksagonal, habang ang lahat ng iba pang mga gumagamit ay mayroon itong bilog. Bilang karagdagan, sa tabi ng avatar ng aprubadong bot, mayroong isang "tik" sa isang kulay-abo na background.

Paano mo maidaragdag ang isa o isa pang bot sa iyong sarili? Ang lahat ay medyo simple. Para dito:

  1. Kailangan mong i-download ang Skype sa iyong device;
  2. Ang mga susunod na hakbang ay nakasalalay sa kung aling operating system ang Skype ay tumatakbo. Halimbawa, sa Android mayroong isang espesyal na item sa menu "Mga contact". Yan ang tawag dun - "Mga bot". Sa iOS, ang icon ng Bots ay nasa tab "Kamakailan". Ang desktop na bersyon ng Skype Windows ay may espesyal na icon sa side toolbar. Sa bersyon ng browser ng Skype, kailangan mong pumili "Pangkalahatang-ideya ng Bot";
  3. Susunod, i-click lamang "Magdagdag ng bot" o "Magsimula".

Ang listahan ng mga sertipikado at naaprubahang bot ay makikita sa pahina ng proyekto: https://support.skype.com/en/faq/FA34655/dostupnye-boty-skype.

Kung pagod o kahina-hinala ang bot, maaari itong i-block o tanggalin. Ginagawa ito sa parehong paraan tulad ng sa kaso ng mga pinaka-karaniwang contact sa Skype.

Ito ay nananatiling idagdag na ang mga bot ay magagamit lamang sa mga pinakabagong bersyon ng paglabas ng Skype. Kaya makatuwirang i-update ang programa mula sa mga opisyal na mapagkukunan.

Ang pag-alam sa mga bot ng Skype - kung ano ito, maaari mong makabuluhang palawakin ang iyong kakayahang gamitin ang multilateral na programang ito para sa komunikasyon at mga tawag.

Patawarin mo ako, ngunit nagsasalita na naman ako tungkol sa mga bot. Naiintindihan ko na ang field ng impormasyon ay naka-pack sa kapasidad, ngunit narito ang talagang kapaki-pakinabang na impormasyon 100%! Sinubukan namin ang lahat ng chat kahapon, ito ay isang extravaganza

Sa kabuuan, sinasabi ko sa iyo. Mayroong mga bot kung saan kailangan mong magbukas ng isang hiwalay na dialog box at magtanong sa kanya ng isang katanungan o pumili ng isang utos na dapat niyang isagawa. Ang mga bot na ito ay tinatawag na chatbots. At may mga bot na hindi na kailangang idagdag sa listahan ng contact, at hindi mo na kailangang makipag-usap sa kanila, banggitin lamang ito sa mensahe at ito ay gaganap ng kanyang function. Kaya, sinubukan namin ang tatlong ganoong mga bot - para sa paghahanap ng imahe, para sa paghahanap ng gif at para sa paghahanap ng video. Higit pa tungkol sa bawat isa sa kanila:

Ang @bing ay isang bot na naghahanap ng mga larawan kapag hiniling. Kung ilalagay mo ang @bing sa field ng input ng mensahe, makikita mo ang inskripsyon na "search images" sa tabi nito, iyon ay, "search for images." Ang kailangan mo lang gawin ay isulat ang paghahanap na salita o parirala doon mismo sa input field. Pagkatapos, depende sa bilis ng Internet, maghintay hanggang i-load ng bot ang mga larawan kapag hiniling at piliin ang isa na ipapadala bilang mensahe sa chat o dialogue. Subukan mo!

Gumagana ang @gif sa parehong paraan tulad ng bing, naghahanap lang ito ng mga gif

Ang @imdb ay naghahanap ng mga pelikula, nagpapadala kapag hiniling ng isang paglalarawan ng pelikula na may isang larawan, isang link sa trailer at isang link upang tingnan ang "legal" na bersyon (iyon ay, hindi isang root tracker sa lahat). Napaka-kapaki-pakinabang kapag may nagtanong ng "ano ang makikita?" at bibigyan mo siya hindi lamang ng isang pangalan, kundi pati na rin ng isang paglalarawan at isang trailer na may poster sa isang mensahe)

Ang pagsubok sa mga helper bot na ito ay nagpaisip sa akin kung ano pang mga bot ang nawawala sa atin? Ang mga lalaki ay gumawa ng matapang na pagpapalagay na magiging mahusay na magkaroon ng isang bot na nagpapadala ng mga push notification para sa mga keyword. Itinakda ko ang bot na banggitin ang aking pangalan o kumpanya sa chat, at ni-mute ang lahat ng chat, nakakatanggap lang ng mga notification kapag tinatalakay nila kung ano ang mahalaga sa iyo.

Idaragdag ko sa aking sarili na talagang gusto ko ang parehong bot bilang @bing, para lamang mag-isyu ng link mula sa Yandex kapag hiniling. At pagkatapos ay kailangan mong pumunta sa browser, kopyahin ang link at i-paste ito sa mensahe. Madalas kaming nagkakamali kapag isinusulat namin ang mga pangalan ng mga site sa pamamagitan ng kamay, kung hindi, magkakaroon ng Google bot o Yandex bot at mahahanap nito ang mga kinakailangang site para sa amin sa parehong paraan tulad ng paghahanap ng mga larawan at gif. Alam ko na mayroon, ngunit ngayon ay nagsasalita ako tungkol sa mga helper bot.

Mayroon ding mga kahilingan para sa mga bot na nagtatago ng ilang partikular na mensahe at isang wiki bot na gagana tulad ng paghahanap ng larawan, para lamang sa mga artikulo sa Wikipedia.

Kung may kakayahan kang bumuo ng mga helper bot, sumulat ka sa akin kung paano mo gagawin ang isa sa mga hinihintay namin, at magsusulat ako ng pagsusuri dito, at magkakaroon ka ng kaluwalhatian, karangalan at walang hanggang kabutihan.

Tungkol sa pagpapatakbo ng mga bot sa Skype - oras na para matutunan kung paano ito gumagana. Sa ilalim ng hiwa - isang maliit na paglalarawan ng mga posibleng problema. Sino ang hindi makapaghintay na makita ang resulta, narito na - MetricsBot.

Bot Framework vs. Skype Bot API

Upang magsimula sa, ito ay nagkakahalaga ng pag-unawa na mayroong isang Bot Framework, na nagpapahintulot sa iyo na lumikha ng mga bot para sa maraming mga mensahero, kasama. at para sa Skype, ngunit mayroong Skype Bot API, na nagpapahintulot sa iyo na lumikha ng mga bot partikular para sa Skype. Ang bawat isa ay may sariling dokumentasyon, sariling bot catalog (?) at sarili nitong pagpaparehistro ng bot. Tila halata na ang mga ito ay iba't ibang mga bagay, ngunit gumugol ako ng maraming oras sa pagsubok na alamin ang Bot Framework "isang dokumentasyon at pagrehistro ng bot dito, noong inaasahan kong gumagawa ako ng bot nang walang balangkas. Dagdag pa, kami ay partikular na magsasalita tungkol sa Skype Bot API, Bot Framework hindi natin ito kailangan, hindi rin natin kailangang magrehistro ng kahit ano doon. Mayroong Skype SDK para sa Node.js at para sa. Hindi ko rin sila ginamit, dahil Sinulat ko ang bot sa Python.

kapaki-pakinabang na mga link

Upang magsimula, isang maliit na hanay ng mga kapaki-pakinabang na link (lahat ng mga link ay nasa Ingles):
  • Ang iyong mga application (dito kailangan mong gumawa ng bagong application at makuha ang app id at sikreto ng kliyente)
  • Pamamahala sa iyong mga bot (dito kailangan mong lumikha ng bagong bot, na tinutukoy ang app id na natanggap nang mas maaga)
Sa prinsipyo, mula sa dokumentasyon ay malinaw kung paano gumagana ang bot at kung paano ito nakikipag-ugnayan sa Skype, kaya hindi ko ilalarawan ang bahaging ito - magsasalita ako tungkol sa mga paghihirap.

Awtorisasyon

Ito pala ang pinakamahirap na bahagi para sa akin. Sinasabi ng dokumentasyon na para sa awtorisasyon, kailangan mong kumuha ng token, at pagkatapos ay gamitin ito sa header ng HTTP sa bawat kahilingan:

Awtorisasyon: Tagadala ng oauth2-token

Gayunpaman, sa ilang kadahilanan, nakalimutan ng dokumentasyon na ipahiwatig kung aling saklaw ang dapat gamitin upang makuha ang token. Ang tamang sagot (matatagpuan sa Node.js SDK code) ay https://graph.microsoft.com/.default .
Ngunit dito magsisimula ang pinaka-kagiliw-giliw na bagay - kung lumikha ka ng isang URL para sa kumpirmasyon ng gumagamit (= ang may-ari ng bot), pagkatapos ay tumanggap auth_code, at pagkatapos ay subukang palitan ang code na ito para sa access token, pagkatapos ay lalabas ang problema sa pinakaunang hakbang - kapag binubuksan ang nilikhang URL, nanunumpa ang Microsoft sa maling saklaw. Ang tamang saklaw, sa pamamagitan ng paraan, ay wala sa listahan ng mga posibleng opsyon sa dokumentasyon ng Microsoft. Sinubukan kong tukuyin ang isa pang saklaw - openid offline_access https://graph.microsoft.com/user.read , sa kasong ito nakakuha ako ng isang token, ngunit hindi ako maaaring makipag-ugnayan sa Skype dito.
Ang solusyon ay naging hindi inaasahan - upang makakuha ng access_token, kinakailangan na magpadala ng regular na kahilingan sa POST:

Curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: application/x-www-form-urlencoded" -d "client_id= &client_secret= &grant_type=client_credentials&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" "https://login.microsoftonline.com/common/oauth2/v2.0/token"

Nagbabalik bilang tugon access_token at expires_in(walang kahit ano refresh_token). Hindi pa ako nakakita ng ganitong OAuth.

Nagpapadala ng mga mensahe

Ang pagpapadala ng mga mensahe ay medyo simple -

POST /v2/conversations/8:alice/activities HTTP/1.1
Host: apis.skype.com
Awtorisasyon: Tagadala ng oauth2-token
{
"mensahe": ("content" : "Hi! (wave)")
}

Ipinapadala ang mga kahilingan sa apis.skype.com. Nakalimutan ng dokumentasyon na ipahiwatig na ang mga kahilingan ay dapat pumunta sa pamamagitan ng http s.
Maaari kang gumamit ng mga html tag sa teksto. Alin ang eksaktong - ay hindi pa rin alam (walang listahan sa dokumentasyon).
May mga kawili-wili at hindi inilarawang mga paghihigpit sa ipinadalang teksto. Halimbawa, hindi magagamit ang mga character sa text & , < at > . Hindi makapagpadala ng karakter & lumilikha ng problema kapag nagpapasa ng mga sanggunian. Ang isa pang problema sa mga pagsusumite ng link ay ang awtomatikong nabuong mga thumbnail para sa bawat link. Sa aking MetricsBot, mayroong tatlong link sa text ng imbitasyon, gumagawa ang Skype ng tatlong preview. Hindi mo pa ito ma-off.

Pag-publish ng bot

Pagkatapos gawin ang bot, maaari mong subukang i-publish ito (bago iyon, ang bilang ng mga gumagamit ng bot ay limitado - 100 tao lamang ang maaaring gumamit nito). Kung gaano katagal ang proseso ng pag-publish ay hindi malinaw, wala ito sa dokumentasyon. Ang aking bot ay hindi pa nai-publish. Sa opisyal na forum, ang aking tanong sa paksang ito ay nalampasan (bagaman ang aking iba pang mga katanungan ay sinasagot ng mga empleyado ng Microsoft).
Pakitandaan na upang mai-publish ang bot, dapat mong i-disable ang paggamit ng bot sa mga panggrupong chat.

Kung hindi, ang paglikha ng isang bot para sa Skype ay medyo simple.

Matagal ko nang gustong subukang magsulat ng ilang simpleng bot upang maunawaan ang prosesong ito. Ngayon ay nasa bakasyon ako at mayroon akong sapat na libreng oras upang magsimulang magsulat para sa aking sariling kasiyahan sa direksyon na ito ...

Nagpasya akong magsimula sa isang simpleng bot na maaari lamang gumana sa text. Ang bot ay nasa kamakailang inihayag na bot framework ng Microsoft (Microsoft Bot Framework). Nagustuhan ko ito dahil, ayon sa teorya, ang isang ipinatupad na bot ay maaaring gumana para sa Skype at Telegram at para sa web, at marami pang pagpipilian. Upang hindi magsulat ng isang ganap na walang silbi na application, gagawa ako ng isang developer assistant bot na maaaring magsagawa ng mga aksyon tulad ng:

  • Pag-convert ng string sa uppercase
  • Pag-convert ng string sa lowercase
  • Pagkuha ng bagong Gabay
  • Pag-convert ng isang numero mula sa anumang sistema ng numero sa alinman
  • I-convert ang Base64 string sa plain text
  • Plain Text sa Base64 String
  • Kumuha ng petsa mula sa string sa UNIX na format
  • I-convert ang petsa sa UNIX format
  • Bumuo ng password ng ibinigay na haba

Para sa mga ganoong aksyon, kadalasang nagsusulat ako ng mga snippet na madaling gamitin kung kinakailangan. Gumagamit ako ng LINQPad upang ayusin at patakbuhin ang mga ito. Ngunit kung minsan ay may magagawa ako hindi sa aking computer o kahit na mula sa aking smartphone, kung saan maaaring maging kapaki-pakinabang ang aking bot. Kung mayroon kang anumang iba pang mga ideya tungkol sa kung anong pag-andar ang maaaring idagdag sa bot na ito, sumulat sa akin, ipapatupad ko ang mga ito nang may kasiyahan ...

Makakatanggap ang bot ng string sa input. Paghihiwalayin namin ang command at ang mga parameter nito na may mga puwang. Ang utos mismo ay magiging hanggang sa unang puwang, o ang buong linya kung walang mga puwang.

Hindi ko ilalarawan ang proseso ng pagproseso ng mga utos at kung paano ito isinasagawa, dahil ang lahat ay napakasimple doon, at ilalathala ko ang lahat ng nakasulat na code sa GitHub.

Lumipat tayo sa isang bagay na mas kawili-wili, ibig sabihin, ang paglikha ng bot mismo. Kailangan mo ng Visual Studio 2015 upang gumana, inirerekumenda ko ang pag-install ng magagamit na mga update. Gumamit tayo ng isang handa na template para sa paglikha ng mga bot na "Bot Application template", Maaari mo itong i-download mula sa link na ito aka.ms/bf-bc-vstemplate

Ang resultang zip archive ay dapat makopya sa direktoryo " %USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#» Pagkatapos nito, makakagawa na tayo ng bagong bot mula sa template na ito.

Kaagad pagkatapos ng paglikha, ang proyekto ay may sumusunod na istraktura

Maaari naming patakbuhin ito at suriin kung ano ang alam na nito. Para sa pagsubok, mayroong isang hiwalay na application na " Bot Framework Emulator", Masasabi mo ito mula dito http://download.botframework.com/botconnector/tools/emulator/publish.htm

Simulan natin ang aming application at ang emulator.

Bilang default, maibabalik ng bot ang haba ng natanggap na mensahe, ang pagpapaandar na ito ay ipinatupad sa MessagesController :


Ngayon ay idaragdag ko ang naunang inilarawan na pag-andar sa bot. Para magawa ito, magdaragdag ako ng bagong proyektong “DeveloperToolsPack” na magiging Class Library at magdaragdag din ng proyekto para sa mga Unit test.

Ang klase ng DeveloperTools ay ang sumusunod:

Pampublikong klase DeveloperTools ( pribadong Diksyunaryo _mga kasangkapan; pampublikong DeveloperTools() ( AddTool(new ToUpper()); AddTool(new ToLower()); AddTool(new NewGuid()); AddTool(new ConvertTo()); AddTool(new FromBase64()); AddTool(new ToBase64( )); AddTool(new FromUnixTime()); AddTool(new ToUnixTime()); AddTool(new Password()); ) private void AddTool(ITool tool) (kung (_tools == null) ( _tools = bagong Dictionary (); ) if (!_tools.ContainsKey(tool.CommandName.ToLower())) ( _tools.Add(tool.CommandName.ToLower(), tool); ) ) public string Run(string str) ( if (!System.String. IsNullOrEmpty(str)) ( str = str.Trim(); var indexOfSpace = str.IndexOf(" ", StringComparison.Ordinal); string command; var commandText = ""; if (indexOfSpace != -1) ( command = str .Substring(0, indexOfSpace).ToLower(); commandText = str.Substring(indexOfSpace+1, str.Length - indexOfSpace-1); ) else ( command = str.ToLower(); ) kung (_tools.ContainsKey(command(command) )) ( return _tools.Run(commandText); ) else ( if (command == "help") ( var returnString = new StringBuilder(); foreach (var tool sa _tools) ( returnString.Append(tool.Value.Description + "\n\r"); ) return returnString.ToString(); ) return $"Command \"**(command)**\" not found. Tingnan ang \"**help**\" command."; ) ) ibalik ang "Mangyaring magpasok ng isang string"; ) )

Sa bot mismo, sa "MessagesController", papalitan namin ang pagproseso ng natanggap na mensahe ng

Var developerTools = bagong DeveloperToolsPack.DeveloperTools(); return message.CreateReplyMessage(developerTools.Run(message.Text));

Maaari mong patakbuhin at subukan ang bot na ito.


Kung gumagana ang lahat ayon sa nararapat, maaari kang direktang pumunta sa publikasyon. Gumawa tayo ng regular na web application sa Azure, maaari kang gumamit ng libreng plano, dahil may sapat na kapangyarihan para sa pagsubok.

Ngayon mag-right-click sa proyekto at piliin ang I-publish

Ngayon ay kailangan mong piliin ang "Microsoft Azure Web Apps"


At hanapin ang dating nilikhang application doon. Pagkatapos nito, maaari mong i-click ang " I-publish"At mai-publish ang application.

Walang alinlangan, ang mga bot ay isang napaka-promising na direksyon. Ang platform mula sa Microsoft ay napaka-maginhawa at nagbibigay-daan sa iyo upang maisama sa iba pang mga serbisyo, na walang alinlangan na isang malaking plus. Ang mga nilikha na bot, siyempre, ay hindi limitado sa pagproseso ng teksto, maaari silang magsagawa ng mas kumplikadong mga pag-andar. Sa artikulong ito, ipinakita ko kung paano ka makakagawa ng isang simple, ngunit sa parehong oras kapaki-pakinabang na bot para sa Skype at i-publish ito. Ang nilikha na bot, bukod sa iba pang mga bagay, ay maaaring gumana sa maraming iba pang mga platform, tulad ng Telegram, Facebook Messenger, GroupMe, Slack.

Maligayang programming.

P.S. Binago ang bot code sa ilalim bagong bersyon balangkas ng bot