如何开发Teams Bot
很多朋友問(wèn)我如何開(kāi)發(fā)一個(gè)成功的Teams Bot,他們說(shuō)Bot Framework SDK看起來(lái)簡(jiǎn)單,但是真要的去開(kāi)發(fā)一款成熟的bot,很多地方還是不知道如何使用。我從最早的bot framework還在beta的時(shí)候開(kāi)始用,后來(lái)framework經(jīng)歷了多次大的改動(dòng),目前版本是v4,我想通過(guò)一系列的文章來(lái)系統(tǒng)的介紹如何使用bot framework來(lái)開(kāi)發(fā)一個(gè)功能齊全的teams bot。
這篇文章我先給大家一個(gè)總體的介紹,讓大家理解Teams,Azure Bot Service,Bot Framework,和我們自己的bot代碼是什么關(guān)系。
在過(guò)去的一二十年的互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的發(fā)展,產(chǎn)生了很多的聊天工具,skype,teams,slack等等,這些聊天工具在聊天方面有一些共同模式。比如一個(gè)用戶(hù)可以參與到多個(gè)對(duì)話(huà)中,每個(gè)對(duì)話(huà)由一系列的消息組成。用戶(hù)和用戶(hù)可以一對(duì)一聊天,也可以多個(gè)用戶(hù)一起群聊。所以微軟看到了一個(gè)機(jī)會(huì):可以抽象出一個(gè)模型,如果基于這個(gè)通用的模型進(jìn)行開(kāi)發(fā)bot,那這個(gè)bot就可以同時(shí)適用于所有的聊天工具。
?
Azure Bot Service就是鏈接各種聊天服務(wù)的一個(gè)服務(wù),它把在不同平臺(tái)上抽象出一個(gè)統(tǒng)一的模型,并且把這個(gè)統(tǒng)一模型傳遞到后端的開(kāi)發(fā)人員開(kāi)發(fā)的bot服務(wù),當(dāng)bot服務(wù)需要發(fā)送一個(gè)消息或者事件的時(shí)候,把這個(gè)信息再傳遞給不同的聊天服務(wù)。
明白了Azure Bot Service后,我們來(lái)看一下Bot Framework SDK,剛才我們說(shuō)了Azure Bot Service把各種聊天服務(wù)的統(tǒng)一模型傳遞到大家開(kāi)發(fā)的bot服務(wù),雖然我們可以完全自己去處理這種統(tǒng)一模型,但是事實(shí)證明,這個(gè)處理會(huì)非常的繁瑣,這個(gè)時(shí)候我們就需要使用Bot Framework SDK。這個(gè)SDK把這個(gè)統(tǒng)一模型進(jìn)一步處理,抽象出了turn等概念,并且做了一整套處理bot的framework(adapter, middleware, state等等)。目標(biāo)是把整個(gè)bot服務(wù)可以標(biāo)準(zhǔn)化,流程化。我之后的文章將針對(duì)整個(gè)bot framework進(jìn)行詳細(xì)的講解。
理解了上面這兩個(gè)概念后,我們來(lái)看一下Teams,Teams app實(shí)際上包含很多方面,bot只是teams app里面的一種,或者說(shuō)是一個(gè)teams app能提供的眾多能力中的一種,當(dāng)然也是最重要的一種能力。teams app出了這種,還可以是一個(gè)tab應(yīng)用,connector等等。
希望上面的說(shuō)明能夠給大家提供一個(gè)teams和azure bot service的大局觀。我后繼文章會(huì)慢慢具體解釋所有的細(xì)節(jié)。我去年自己開(kāi)發(fā)的teams app:LuckyDraw,實(shí)際上并沒(méi)有使用全套的bot framework,只是用了一些activity的模型,在實(shí)際開(kāi)發(fā)中完全自己來(lái)處里各種復(fù)雜的具體細(xì)節(jié),比較繁瑣,導(dǎo)致后期增加功能的時(shí)候維護(hù)成本增大。我今年的目標(biāo)是全面使用bot framework出一版的新LuckyDraw。
最后我想說(shuō)一下我自己對(duì)于Azure Bot Service的看法,雖然Azure Bot service的初衷是統(tǒng)一各類(lèi)聊天平臺(tái),讓開(kāi)發(fā)人員可以一次開(kāi)發(fā),就把bot用于所有平臺(tái)。這個(gè)有點(diǎn)像當(dāng)年.net的初衷(一套代碼,支持各種操作系統(tǒng)),但是.net可是走了多少年才走到這一步。bot service雖然不會(huì)像.net這么復(fù)雜龐大,但是各個(gè)聊天平臺(tái)的差異性不是這么容易統(tǒng)一的。可以看一下?這篇文檔,大家就能知道有多少差異性了,為了把這些差異性盡量統(tǒng)一并同時(shí)支持平臺(tái)特有的一些功能,實(shí)際上bot framework已經(jīng)變得有點(diǎn)臃腫了。
Bot framework路還很長(zhǎng),而且bot的功能發(fā)展也很快,希望它能一步步走踏實(shí)。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的如何开发Teams Bot的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 坚持练字一年是什么样的体验?
- 下一篇: C++-鼠标操作大全