專利名稱:一種通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù),特別是通過網(wǎng)絡(luò)通訊工具進(jìn)行自動應(yīng)答處理的系統(tǒng)。 尤其包括QQ、 MSN、 Email、短信等聊天工具。
背景技術(shù):
互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)通信技術(shù)也隨之迅猛發(fā)展。不論是Email這種非即時通訊工具, 還是QQ、 MSN這樣的即時通訊工具,甚至短信、彩信,都是人們必不可少的通訊工具,因 此也誕生了許多的通訊機(jī)器人。人們可以使用通訊工具直接與通訊機(jī)器人交流,獲取信息, 查詢天氣等。但是通訊機(jī)器人的開發(fā)和應(yīng)用有較高的門檻,首先不同的通訊工具有不同的通 信協(xié)議,需要使用特定的編程語言才可以操作,而且通信協(xié)議也可能隨時發(fā)生變化,同時應(yīng) 用的時候還必須使用專業(yè)的服務(wù)器,穩(wěn)定的網(wǎng)絡(luò)連接等,這些原因限制了通信機(jī)器人的發(fā)展。 本專利提供了一種通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng),將不同的通訊工具的通信協(xié)議,轉(zhuǎn)換為通用的 HTTP協(xié)議請求。使用任何一種網(wǎng)頁動態(tài)語言(例如ASP、 PHP、 Perl等)均可開發(fā)通訊機(jī) 器人。而且僅需一個動態(tài)網(wǎng)頁空間即可運(yùn)行,不需要專業(yè)的服務(wù)器。
發(fā)明內(nèi)容
本發(fā)明提供一種通訊機(jī)器人的協(xié)議轉(zhuǎn)換系統(tǒng)。開發(fā)者可以方便的使用本系統(tǒng)開發(fā)通訊機(jī) 器人系統(tǒng),將開發(fā)精力放在消息的邏輯處理上,而不需要關(guān)注不同的工具的通訊協(xié)議。
本系統(tǒng)主要包含兩部分
(1) 通訊消息接收器;
通訊消息接收器類似于通訊工具的客戶端,例如QQ軟件,MSN軟件或者Email收發(fā)軟 件。它的主要作用是與通訊服務(wù)器連接,接收來自服務(wù)器的信息,將接收到的消息轉(zhuǎn)交給協(xié) 議轉(zhuǎn)換器;從協(xié)議轉(zhuǎn)換器獲得欲發(fā)送的消息,并向服務(wù)器發(fā)送信息等。
(2) 協(xié)議轉(zhuǎn)換器。
協(xié)議轉(zhuǎn)換器主要作用是將接收到的消息,以特定的格式轉(zhuǎn)化為標(biāo)準(zhǔn)的HTTP協(xié)議請求, 并發(fā)送給對應(yīng)的第三方邏輯處理腳本。然后等待第三方邏輯處理腳本的返回值,將返回值作 為回復(fù)消息,轉(zhuǎn)交給通訊消息接收器,進(jìn)行發(fā)送。
機(jī)器人應(yīng)答的流程如圖1所示,本發(fā)明所提供的協(xié)議轉(zhuǎn)換系統(tǒng),實(shí)現(xiàn)了收發(fā)消息和轉(zhuǎn)換 HTTP協(xié)議的功能,但并不進(jìn)行邏輯處理操作。所有的邏輯處理均交給第三方邏輯處理腳本 操作,本系統(tǒng)相當(dāng)于一個中間件。而實(shí)際的機(jī)器人開發(fā)者則可以將精力專注于邏輯處理,只 需要編寫邏輯處理腳本即可實(shí)現(xiàn)功能。
當(dāng)協(xié)議轉(zhuǎn)換器收到信息,按照圖2所示的參數(shù),根據(jù)HTTP協(xié)議的標(biāo)準(zhǔn),將消息轉(zhuǎn)化成 HTTP請求,并向第三方邏輯腳本發(fā)送該請求。第三方邏輯請求腳本一般情況下應(yīng)當(dāng)是一個
動態(tài)網(wǎng)頁的地址,例如http://www.test.com/bot.cgi。第三方邏輯腳本收到HTTP
請求后,只需要按照動態(tài)網(wǎng)頁的編程標(biāo)準(zhǔn),將參數(shù)解析,并根據(jù)參數(shù)的內(nèi)容,進(jìn)行相應(yīng)的邏 輯處理。然后將邏輯處理的結(jié)果,直接以頁面的方式顯示出來。協(xié)議轉(zhuǎn)換器可以獲取邏輯處 理的結(jié)果,并將結(jié)果通過消息接收器發(fā)送給服務(wù)器。
由于第三方邏輯腳本是向網(wǎng)絡(luò)公開的網(wǎng)址,因此可能存在被入侵的風(fēng)險,因此我們設(shè)置 了加密字串參數(shù)。由協(xié)議轉(zhuǎn)換器發(fā)起的HTTP請求,都將包含此加密字串。而腳本在接收到 請求后,應(yīng)當(dāng)先判斷該加密字串是否正確,如果字串不正確,應(yīng)當(dāng)拒絕請求。
圖1機(jī)器人應(yīng)答流程圖
圖2協(xié)議轉(zhuǎn)換器傳遞參數(shù)列表
具體實(shí)施例方式
以創(chuàng)建某MSN聊天機(jī)器人為例,該機(jī)器人實(shí)現(xiàn)簡單的聊天功能。假設(shè)MSN機(jī)器人帳號為 msnbot@hotmail.com,聊天者的帳號為people@hotmail.com,邏輯處理腳本地址為
http://www.test.com/bot.cgi,力口密字串為12321。
當(dāng)機(jī)器人帳號收到消息"hello"后,應(yīng)當(dāng)構(gòu)造以下HTTP請求。
action=message&usei:=people@hotniail. com&message=hello&type=MSN&us ei:name=msnbot@hotmail. com&key=12321
然后將此請求發(fā)送到http: 〃www. test. com/bot. cgi。根據(jù)HTTP協(xié)議標(biāo)準(zhǔn),需要
對請求中的特殊字符進(jìn)行轉(zhuǎn)義,因此一個完整的請求應(yīng)當(dāng)是這樣。
http://www test.com/bot cgi action=message&user=people%40hotmail .com£message=hello&type=MSN&use3:name=msnbot%40hotmail. cont&key=1232
對應(yīng)的bot.cgi腳本在收到請求后,根據(jù)參數(shù)進(jìn)行邏輯判斷,然后做出回應(yīng)結(jié)果。腳本 的內(nèi)容應(yīng)當(dāng)是類似下面的程序(以Perl語言為例)
#!/usr/bin/perl use CGI
my $cgi = new CGI,'
print $cgi—>header ()
my $key = $cgi->paa:am( 、key')
if ($key ne 、12321') {print 、、error"/exit/}
my $message = $cgi—>param( 、message')
iay $usei: = $cgi—>param( 、user'》
if ($message = /hello|hi|hey/){print "hello!nice to meet you!$user〃/}
elsif ($message =~ /bye/){print "good bye! See you later"/} else{pz:izit 、、I don't know what you say"/}
exit,*
對于開發(fā)者來說,僅僅需要完成bot.cgi這個腳本的內(nèi)容,以短短十幾行的代碼即可創(chuàng) 建一個通訊機(jī)器人。而且這個機(jī)器人還可以同時應(yīng)用于MSN、 QQ、短信、或者Email,極大的 降低了機(jī)器人開發(fā)的難度。
權(quán)利要求
1.一種通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng),其特征在于,包含通訊消息接收器,通訊消息接收器負(fù)責(zé) 連接所支持協(xié)議的通訊服務(wù)器,并接收消息和發(fā)送消息,但不對消息進(jìn)行邏輯處理。
2. 如權(quán)利1所述的通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng),其特征在于,通信消息接收器支持Email和網(wǎng) 頁留言形式的非即時消息協(xié)議。
3. 如權(quán)利1所述的通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng),其特征在于,通信消息接收器支持QQ、 MSN、 Jabber、雅虎通、AIM、淘寶旺旺和Skype的即時消息協(xié)議。
4. 如權(quán)利1所述的通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng),其特征在于,通信消息接收器支持短信、彩信, 語音電話的協(xié)議。
5. 如權(quán)利1所述的通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng),其特征在于,還包括協(xié)議轉(zhuǎn)換器,其作用是將 接收到的消息按照指定的格式轉(zhuǎn)換為標(biāo)準(zhǔn)HTTP協(xié)議請求,并將該請求發(fā)送給指定的邏 輯處理腳本,但該轉(zhuǎn)換器本身不對消息進(jìn)行邏輯處理。
6. 如權(quán)利1所述的通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng),其特征在于,機(jī)器人的邏輯處理均由獨(dú)立于本 系統(tǒng)的第三方邏輯處理腳本處理,該邏輯處理腳本應(yīng)當(dāng)是一個動態(tài)網(wǎng)頁的網(wǎng)址。
全文摘要
本發(fā)明描述了一種通訊機(jī)器人協(xié)議轉(zhuǎn)換系統(tǒng)。本系統(tǒng)將不同的通訊工具的協(xié)議轉(zhuǎn)換為通用的HTTP協(xié)議請求,開發(fā)者只需開發(fā)一個動態(tài)網(wǎng)頁,接受HTTP請求,并根據(jù)參數(shù)進(jìn)行邏輯處理,即可實(shí)現(xiàn)通訊機(jī)器人的功能。極大地降低了開發(fā)通訊機(jī)器人的難度。當(dāng)本系統(tǒng)收到信息的時候,會構(gòu)造一條標(biāo)準(zhǔn)的HTTP請求,并將此請求發(fā)送給第三方的邏輯處理腳本,腳本也以HTTP的形式返回結(jié)果,然后本系統(tǒng)將結(jié)果回復(fù)給服務(wù)器。開發(fā)者只需使用ASP、PHP或其他Web編程語言,編寫一個動態(tài)網(wǎng)頁即可創(chuàng)造通訊機(jī)器人。開發(fā)者只需關(guān)注消息的邏輯處理,而不需要關(guān)心不同通訊工具之間的協(xié)議差異。
文檔編號H04L12/16GK101364971SQ200710044789
公開日2009年2月11日 申請日期2007年8月10日 優(yōu)先權(quán)日2007年8月10日
發(fā)明者陳正偉 申請人:陳正偉