跳到主要內容

發表文章

目前顯示的是有「perl」標籤的文章

3分鐘學會使用程式發送msn訊息, Perl篇(四)

< imoo msn機器人測試平台,將於下週三(2009.6.24)取消所有未經申請試用的認證資訊 , 詳見相關資訊 > msnSDK訊息控制開發套件 同時支援MSN/Yahoo即時通 訊息雙向傳遞 perl 的範例我們使用soap 介面來處理,其他語言也可以這樣做,可參考文件(文末提供下載處) wsdl位置:http://59.120.234.84:8082/msnSDK/genwsdl-win32 ps.也請參考 msnSDK的使用流程 ================================ #!/usr/bin/perl use SOAP::Lite; #取得使用api 的權限 sub setspid { my $session_ret=SOAP::Lite->uri('http://59.120.234.84:8082/MSN') ->proxy('http://59.120.234.84:8082/msnSDK/msn_soap-win32') ->GETSPID('apiblogt4','msnsdkt')->result; my ($code,$session)=split("\t",$session_ret); $session=~tr/\r\n //d; return $session; } #註冊聯絡人 sub register { my $sret= setspid(); my $session_ret=SOAP::Lite->uri('http://59.120.234.84:8082/MSN') ->proxy('http://59.120.234.84:8082/msnSDK/msn_soap-win32') ->REGISTER('要加入聯絡人的msn/yahoo帳號',$sret)->result; print $session_ret; } #傳送訊息 sub sendmsg { my $sret= setspid(); my $msg_ret = SOAP::Lite->ur...

msnp15 認證過程(I)

使用別人開發好的msn sdk來開發程式;真的能夠滿足你對技術的慾望嗎?以下為msn protocol v15的認證過程,msnp15大致上延續前一版的協定,但是在認證的部份改了,目前msn server 已支援msnp16,而現階段最新的msn client (msn v8.1)還在使用msnp15,要到msn v9才會開始全面支援msnp16 直接從msn protocol著手的主要理由是~這樣,才能將msn 移植到非win32的平台上,否則;微軟本身也有釋出msn sdk,它的缺點是;只能依附在有安裝msn client 的win32上,就這一點來說;msn 的政策還相當封閉,因為每次protocol升級;認證的部份幾乎都有更動,這也是從protocol著手來應用msn 最大的麻煩,不過從追蹤 撰寫msn protocol,可以學到不少東西可說是額外的收穫,msn protocol在技術上跟xmpp真的很大的落差,msn protocol顯得格外凌亂設計不良,既不結構化也談不上功能上的彈性,看起來像是非資訊背景的工程師做出來的系統,我相信當msn與yahoo在談im整合時一定相互埋怨過對方的protocol設計怎麼如此草率,這恰好凸顯了 xmpp protocol 的優勢... 207.46.110.86:1863 c2s->[client to server] s2c->[server to client] c2s->VER 1 MSNP15 CVR0 s2c->VER 1 MSNP15 c2s->CVR 2 0x0404 winnt 5.2 i386 MSNMSGR 8.1.0178 MSFT luke_shei@hotmail.com s2c->CVR 2 8.1.0178 8.1.0178 8.1.0178 http://msgruser.dlservice.microsoft.com/download/1/C/F/1CF776CC-90D6-4497-B079-402BA9DB8BE4/Install_Messenger.exe http://get.live.com/tc c2s->USR 3 SSO I luke_shei@hotmail.com s2c->GCF 0 6713 s2c-> ...

[微程式-技術研討會] 6月研討會 - 主講人vivian - 樣版系統相關簡介

目前程式與頁面結合的作法 1. 由美工人員先行編制頁面內容, 再行嵌入CGI程式中 2. XML + XSLT 3. 在CGI程式中將load進來的html檔案, 以正規表示法予以置換 採用以上方法的優缺點 1 由美工人員先行編制頁面內容, 再行嵌入CGI程式中 1.1 頁面與程式交雜在一起, 日後不易維護 1.2 程式人員需自行切割已完成的頁面, 再嵌入程式碼 1.3 日後頁面欲增加新功能或顯示欄位, 則需返回美工人員處做異動 1.4 遇相同功能的頁面無法做成模組化, 讓頁面可重複使用 1.5 實例:電腦教室系統、卡務系統 2 XML + XSLT 2.1 頁面與程式可以完全分離, 使得開發人員可各自維護 2.2 可將相同功能的頁面做成模組化, 讓頁面可重複使用 2.3 對XML異動Tag內容時, 無法透過簡易的方式告知頁面維護人員Tag資料內容已異動, 需透過XML Schema才可得知 2.4 實例:清算系統 3 在CGI程式中將load進來的html檔案, 以正規表示法予以置換 3.1 頁面與程式可以完全分離, 使得開發人員可各自維護 3.2 樣版與程式中對於取代用的變數名稱需一致, 才可順利被置換 3.3 異動(新增、修改、刪除)變數名稱, 需另行告知美工維護人員變數異動內容 3.4 較不易把相同功能的頁面做成模組化, 缺少頁面重用的理念 3.5 實例:清算系統報表處理 以上的方式各有優缺點 但我畢竟希望程式與頁面可以完全分離, 版面的設計交給專業的美工人員, 而美工人員只需以html為基準(畢竟美工人員大多使用Dreamweaver或Frontpage之類的來設計版面), 不需讓美工人員去學習程式語言(只需透過雙方已制定的協定文件), 而達到完全分工的效能, 這也就為什麼目前樣版這麼熱門的原因了 為什麼要使用樣版 ?? 1. 外觀的一致性 (Consistency of Appearance) It does...

思考程式的方式--Higher-Order Perl

這段程式碼很有意思,事實上我們常常在寫程式時創造一些可重複使用的架構,但是怎麼做會更靈活? ps. 程式碼哉自Higer-Order Perl 這程式是一個 list 目錄-檔案的 遞迴程式,通常我們寫完了以後,會希望從這個結構擴充,而下面程 式碼中的 $code->($top); 正是可以由外部擴充邏輯的地方(callback) sub dir_walk { my ($top, $code) = @_; my $DIR; $code->($top); if (-d $top) { my $file; unless (opendir $DIR, $top) { warn "Couldn’t open directory $top: $!; skipping.\n"; return; } while ($file = readdir $DIR) { next if $file eq '.' || $file eq '..'; dir_walk("$top/$file", $code); } } } sub print_dir { print $_[0], "\n"; } dir_walk('.', \&print_dir ); 在這裡我們看到,程式原始的架構是list 目錄-檔案 , 但是我們可以傳給function 2個參數 1 起始路徑 2 function , 恩! 這看起來有濃濃的 functional 的味道,不是嗎?