Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

msn.class.php v1.3a, a simple msnbot
post by tommy @ 29 三月, 2007 11:08

修改之前發送 MSN 的 php calss. 加入一些小功能, 可以做成簡單的 msnbot.

檔案放於: http://www.teatime.com.tw/~tommy/files/msnclass13.7z
或者抓最新的版本: http://www.teatime.com.tw/~tommy/files/msnclass.7z

主要是加入一個 doLoop() 用來接收訊息並檢查 spool 內是否有訊息要送出. 另外寫一個 msnbot.php, 用來常駐執行.

安裝說明:

  • 建立下面的目錄:
mkdir /var/spool/msnbot
mkdir /var/spool/msnbot/log
mkdir /var/spool/msnbot/spool
chmod 777 /var/spool/msnbot/spool
chmod o+t /var/spool/msnbot/spool
  • 把 msnbot.php 與 msn.class.php 放到 /var/spool/msnbot 的目錄下頭, 把 msnbot.php 設成可執行:
chmod +x /var/spool/msnbot/msnbot.php
  • 修改 msnbot.php 的內容, 如果有必要, 可以修改 processMsg() 的內容, 改成你自訂的處理方式.
  • 使用 msnbot.sh 做成啟動的 script, 讓 msnbot.php 程式在開機之後就執行.
  • 如果有需要傳送訊息, 直接在 /var/spool/msnbot/spool 目錄下, 產生一個副檔名為 .msn 的文字檔, 第一行的內容是:
TO: email1,email2

表示要接受訊息的使用者列表. 第二行之後是所要送出的訊息. 然後把檔案的屬性改成 0666. 可以參考 msnsendmsg.php 的做法.

詳細的內容... 請自行參考程式碼吧.  


2007/03/29: 

補充一下, 如果用 MSNP15, 我試過 MSNP13 所用的 SOAP, 會有問題. 而該網站上頭在 MSNP15 的 contacts.msn.com 認證 policy 設定並不太對, 至少我試都會失敗. 我自己抓我用的 WLM 8.1 的記錄, 後來是可以正確的登入, 不過仍然無法取得 contact list. 而 MSNP15 中, 要使用 ADL 針對 contact list 送出指令, 對方才會看到你的上線狀態. 這一點在 MSNP9 中, 可以由  SYN 指令取得 contact list, 且, 只要 CHG 做 NLN 的指令, 對方就會看到這個帳號是 online 了. 因此.... msnbot.php 對於 MSNP15 的處理上頭, 會再產生一個 MSNP9 的 object, 去取得 contact list 後再使用 MSNP15 登入.

另外, 1.3a 修正被斷線後無法再次登入的問題. 檔名沒改, 如果你抓的還是 1.3 版的, 就麻煩再抓一次吧.


2007/03/31:

這個版本有個問題, 是在讀取 TO: 的內容時, 如果有空白, 會連空白都帶入, 一般傳訊並不會有問題, 不過傳 OIM 會有錯誤. 如果你有碰到這個問題... 就在產生那個 .msn 檔案時, 不要在 TO: 後頭使用空白就可以避免.

另外 OIM 用的 ticket 應該一天就會失效, 也會造成無法傳送 OIM. (可能吧, 昨天看到這個, 特地等了一天再試, 結果因為上頭的問題沒測到, 只好今天再等一天看看了) 

Del.icio.us Furl HEMiDEMi Technorati MyShare
commons icon [1] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

您好

劣者下載您提供的最新版
如果嘗試使用 MSNP9 做登入則可以正常登入,並發送訊息

而如果以 MSNP15 做登入,就一直沒辦法成功
開啟偵錯模式
*** Sending SOAP: 後
*** Get Result: 這邊就無法取得正確的 passport ticket

result 中包含
https://msnia.login.live.com/pp450/RST.srf
Authentication Failure

並沒有

commons icon [2] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

並沒有 <wsse:BinarySecurityToken
的相關資訊

劣者使用兩個MSN帳號登入都是這樣的結果

還請幫忙

謝謝

commons icon [3] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

方便的話, 在 new MSN('', 'msn.log') 中的第二個參數指定一個檔名. 執行一次後, 把這個 msn.log 以附件的方式傳到 wu.tommy {at} gmail.com 給我吧.

commons icon [4] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

您需求的檔案已經寄出 謝謝

commons icon [5] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

感謝提供這個程式,我成功的建了一個MSNBot,自己寫了些小功能,可以更新Twitter, ping主機,翻譯英語,我還在研究。
再次感謝分享!!
我的Bot: bot#gday.me 歡迎大家試用。

commons icon [6] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

小弟安裝時出現一個錯誤請大大幫幫我
# sh /var/spool/msnbot/msnbot.sh start
Starting MSN bot: msnbot.
# PHP Fatal error: Call to undefined function glob() in /var/spool/msnbot/msn.class.php on line 1439

小弟安裝的PHP是# /usr/local/apache2/php/bin/php -v
PHP 5.2.5 (cli) (built: Nov 13 2008 21:01:22)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

而glob()函式不是內建函式嗎 為什麼會這樣阿??
請大大幫幫我

commons icon [7] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

抱歉, 你的 php 看起來是你自己編的, 為什麼沒有這個函式可以用, 問你自己比較清楚吧.

commons icon [8] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

http://www.php.net/manual/en/function.glob.php
Note: This function isn't available on some systems (e.g. old Sun OS).
官方的文件是這樣子說的.

commons icon [9] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

請問是否可以指定msnbot去加入朋友的msn帳號到msnbot的聯絡人中呢?

commons icon [10] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

請使用 1.9 的版本, 有個 addContact() 可以使用.
不過你要自己寫程式去呼叫這個函式, 且.... 我不保證一定可以用.

commons icon [11] Re:msnbot 经常掉线 [ 回覆 ]

您好,我最近也在使用这个程序,不过我放置在centOS的虚拟机上时老是掉线,会是什么问题呢?

commons icon [12] Re:msn.class.php v1.3a, a simple msnbot [ 回覆 ]

自己看 log 就知道為什麼會離線了.

迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 97 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS