修改之前發送 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. (可能吧, 昨天看到這個, 特地等了一天再試, 結果因為上頭的問題沒測到, 只好今天再等一天看看了)
您好
劣者下載您提供的最新版
如果嘗試使用 MSNP9 做登入則可以正常登入,並發送訊息
而如果以 MSNP15 做登入,就一直沒辦法成功
開啟偵錯模式
*** Sending SOAP: 後
*** Get Result: 這邊就無法取得正確的 passport ticket
result 中包含
https://msnia.login.live.com/pp450/RST.srf
Authentication Failure
並沒有
並沒有 <wsse:BinarySecurityToken
的相關資訊
劣者使用兩個MSN帳號登入都是這樣的結果
還請幫忙
謝謝
方便的話, 在 new MSN('', 'msn.log') 中的第二個參數指定一個檔名. 執行一次後, 把這個 msn.log 以附件的方式傳到 wu.tommy {at} gmail.com 給我吧.
您需求的檔案已經寄出 謝謝
感謝提供這個程式,我成功的建了一個MSNBot,自己寫了些小功能,可以更新Twitter, ping主機,翻譯英語,我還在研究。
再次感謝分享!!
我的Bot: bot#gday.me 歡迎大家試用。
小弟安裝時出現一個錯誤請大大幫幫我
# 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()函式不是內建函式嗎 為什麼會這樣阿??
請大大幫幫我
抱歉, 你的 php 看起來是你自己編的, 為什麼沒有這個函式可以用, 問你自己比較清楚吧.
http://www.php.net/manual/en/function.glob.php
Note: This function isn't available on some systems (e.g. old Sun OS).
官方的文件是這樣子說的.
請問是否可以指定msnbot去加入朋友的msn帳號到msnbot的聯絡人中呢?
請使用 1.9 的版本, 有個 addContact() 可以使用.
不過你要自己寫程式去呼叫這個函式, 且.... 我不保證一定可以用.
您好,我最近也在使用这个程序,不过我放置在centOS的虚拟机上时老是掉线,会是什么问题呢?
自己看 log 就知道為什麼會離線了.