加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
 
Windows Live Agents SDK開發實務
MSN機器人開發(上)
文/圖 黃忠成.責任編輯/洪羿漣

簡略的說,MSN機器人是一個可與你對話的MSN連絡人,只是它不是真人,只是一個會針對你提出的問題做適當回答的程式罷了。拜3G與Wi-Fi覆蓋率之賜,用手機上MSN的人也越來越多了,這為MSN機器人提供了一個快速生長的溫床。

隨著網路的普及化,我們日常的生活也逐漸的改變中,雖然期間曾發生網路泡沫化,但網路確實一步步的在改變我們的生活方式。

以往,先知們曾經說過,網路會大幅改變人們的生活模式,你不再開車上大賣場血拼,也不再上商店購物,以現今狀況來說,這個願景尚未完全實現,但不可否認的,我們正一步步走向這個理想世界中。

拜網路發達之賜,現在多數人多少都有過網路購物的經驗,透過網路購物,可以讓我這種鮮少出門的人輕鬆買到一些日常用品,透過送貨到府的服務,可以讓我這種不會開車的人,在買中大型商品時,減少坐小黃的次數。

網路拍賣還能讓我們這種小家庭買到便宜又大碗的商品。不過,有時我還是會想看看實際商品拿在手中的感覺,這是網路購物所無法涵蓋的部份。

網路的發達,並不單只有購物網站,隨著IM(即時通訊)的流行,人們彼此用電話聯絡的次數也減少了許多。還記得第177期的RUN!PC編輯室札記中,主編描述他是如何由MSN得知朋友過逝的消息,很巧的!我也有類似的經驗,不只曾經在MSN上察覺朋友過世的消息,也曾經收到朋友結婚、生子、買車、生病等等的消息,雖然很少打電話,但IM這種工具,讓多年未碰面、分隔幾萬公里之遙的人緊密的連結在一起,網路正切實的在改變我們的生活。


什麼是MSN機器人
IM工具的盛行,讓許多人開始尋找其上所隱含的商機,在獲利模式準則中,只要有人聚集的地方就有商機可言,想開個飲料店,你得選定一個有人潮的點才能獲利。

以MSN來說,目前全球用戶有數百萬之多,稱得上是一個人潮聚集地了,那其中有何商機呢?本文介紹的MSN機器人就是其中之一。

簡略的說,MSN機器人是一個可與你對話的MSN連絡人,只是它不是真人,只是一個會針對你提出的問題做適當回答的程式罷了。

早期,MSN機器人常被用來當做一個聊天的對象,許多開發者是針對語言學下工夫,不過就今日的科技而言,要做出一個能完全了解日常用語的機器人實在太難了,後端必須要有一個龐大的語言庫及強大的CPU才能辦到。

退而求其次,既然做不出理想的聊天機器人,那麼我們何不做一個能接收特定指令,協助用戶得到某些訊息的機器人呢?例如,我們可以對機器人下達追蹤特定股票的指令,那麼機器人就會透過網路來取得即時的股票訊息,在有異動時主動通知我們。

或許你開始覺得好奇,這樣的應用有何好處?不是用個股票軟體或是自己開個網頁就能達到同樣的目的了嗎?

話雖如此,但是不知你是否也發現,人們會在電腦連上網路後開啟MSN,但不見得會開啟IE?且在捷運站時,並非每個人都能帶著筆電,拜3G與Wi-Fi覆蓋率之賜,用手機上MSN的人也越來越多了,這為MSN機器人提供了一個快速生長的溫床。


如何開發MSN機器人
MSN機器人的開發大致可分為兩種派系,即Open Source與MS。

Open Source流的領導者之一是DotMSN,它是參考部份公開的MSN通訊協定文件,加上自行探索未公開部份打造而成,使用DotMSN可以做出一個MSN Client端,也就是類似Live Messenger的程式,也可以將MSN的功能嵌入既有的程式中,更甚之,你可以使用DotMSN來撰寫一個MSN機器人,自動回應使用者所提出的問句。 MS流則是使用Microsoft所提供的Agent SDK來實作,Agent SDK與DotMSN不同,它是專為MSN機器人所打造的,你無法使用Agent SDK做出一個類似Live Messenger的程式,也不能將其嵌入既有的程式中,你所能做的,就是用它來撰寫一個MSN機器人。

那從功能面上看來,DotMSN似乎比Agent SDK強?是的,就功能面上來說是如此,但別忘了,DotMSN是一個非官方的產品,也就是MSN通訊協定改變時,若它未跟上或是Microsoft選擇未來不再公開通訊協定規格時,那麼你辛苦打造的程式就會面臨無法運作的危機。

另外,DotMSN是以MSN通訊協定為基礎打造,所以受限於MSN連絡人600~1000人上限。相對於此,Agent SDK提供了一種名為Provisioned Agent的服務,只要你向Microsoft申請成為Provisioned Agent,那麼你用Agent SDK所開發的MSN機器人將不再有連絡人上限。
安裝Agent SDK
在開始開發使用Agent SDK之前,你得先準備好電腦環境,目前Agent SDK所要求的電腦環境必須要是Windows XP Professional、Windows 2000/2003,而且要安裝好Visual Studio 2008。完成基礎配置後,可 下載Agent SDK

使用XP Professional的使用者,得再到以下網址下載一個Windows 2003 Admin Pack

安裝完成後,開啟Visual Studio 2008就可在Tools選單中見到圖1的畫面。


圖1:Visual Studio 2008→Tools。


首次安裝Agent SDK時,你必須點選Sign-in to Windows Live來進行MSN的登入動作。在此建議讀者們申請一個全新的Live Messenger帳號,千萬不要使用日常使用的那一個,避免到時發生影響你日常MSN的窘境。

完成登入後,請接著點選圖2中的Request License選項,向Live.com取得一個開發Agent用的授權,沒有這個授權,你的Agent,也就是機器人就無法正常上線使用。


圖2:Request License選項。



第一個MSN機器人
完成以上動作後,我們就可以開始建立第一個MSN機器人了。請點選New Project建立一個Agent Project,如圖3、圖4所示。


圖3:新增專案。



圖4:可支援的語言選項。


圖4中可供選擇此Agent所支援的語言,需注意,此處的Chinese指的是簡體中文,因此我們直接選擇English,並勾選右方的Chat選項,代表要求Agent Project Wizard為我們產生常用的問句及回答機制。

按下Finish按鈕後,會得到一個Agent Project,請在English\Chat資料夾上按右鍵,來新增一個.ddl項目,如圖5,並且在此ddl中鍵入程式1的程式碼。完成後按下F5來執行程式,並於開出的測試視窗中鍵入問句,如圖6。


圖5:新增一個.ddl項目。






圖6:執行程式並於開出的測試視窗中鍵入問句。


至此,你已經完成了一個簡單的Agent,也就是MSN機器人程式。不過,目前這個機器人程式僅能作用於Visual Studio 2008環境中,下一期我們將繼續討論如何將此機器人上線,讓你的朋友也能將它加為連絡人。


參考相關文章:MSN機器人開發(下)

【原文刊載於RUN!PC雜誌:2008年12月號】