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