Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

phpmsnclass v1.9
post by tommy @ 23 十月, 2008 23:24

更新 phpmsnclass 版本為 1.9.

異動記錄:

  • 修正 MSNP9 只有在除錯模式才能登入的問題. (r22, 2007/11/14)
  • 修正 PHP notice 訊息: undefined offset of $aMSNUsers in 'XFR' of doLoop(). (r23, 2007/12/21)
  • 修正 MSNP15 密碼使用特殊字元的編碼問題. (r23, 2007/12/21)
  • 修正密碼長度問題, 密碼只允許最長 16 個字元. (r23, 2007/12/21)
  • 修正 PHP notice 訊息: preg_match(): Unknown modifier ']' in getOIM_maildata(). (r24, 2007/12/26)
  • 修正變數名打錯的問題: $precess_file. (r25, 2008/01/01)
  • 修正 Google Code Issue 11: Undefined property: $oim_send_soap on line 2872. (r26, 2008/01/09)
  • 在 msnbot.php 中新增定時通知的功能. (r27, 2008/03/04)
  • 新增 addContact() 函式, 主動詢問使用者是否允許加入他的聯絡清單中. (r29, 2008/03/11)
  • 修正 sendOIM() 中, 可能同時產生 LockKeyChallenge 與 RequiredAuthPolicy 錯誤的問題. (r30, 2008/10/23)

檔案請到 Google Code 抓取.

Del.icio.us Furl HEMiDEMi Technorati MyShare
commons icon [1] Re:phpmsnclass v1.9 [ 回覆 ]

Tommy大您好,首先感謝您的msnbot!!

小弟使用msnbot一年餘,非常穩定,今天2009/01/12
不知為何突然不能上線,我試過用小綠人可以上線,
用msnbot則沒有顯示上線,我試著敲一些字他,然後看backup裡面的資料,他有產生回覆的.msn檔案,但就是不會上線,望您百忙之中回覆小弟的問題,以下是我查看debug以及其他log的資訊,再次感謝您,打擾了...

1.debug.log裡出現一個Internal Server Error
不知會不會是msn server的問題

HTTP/1.1 500 Internal Server Error
Date: Mon, 12 Jan 2009 05:32:59 GMT
Server: Microsoft-IIS/6.0
P3P:CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-Powered-By: ASP.NET
X-MSNSERVER: BAYABCHWBB141
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 2139

2.起始的msnlog,到了ingnore empty OIM之後就沒了

startup ***
try to connect to MSN network
connected, wait for command
ingnore MSG for: Content-Type: text/x-msmsgsprofile; charset=UTF-8
ingnore empty OIM

commons icon [2] Re:phpmsnclass v1.9 [ 回覆 ]

看起來是沒辦法取得 contact list, 由於 MSNP15 裡頭, 會依照取得的 contact list 送出 ADL 指令, 如果不在裡頭, 別人會認為不在線上. (實際上 bot 是在 online 運作沒錯)

我剛試著把 bot 離線再跑, 會有相同的錯誤.

也許是 MS 的 server 又改了吧, 不過看上頭顯示的錯誤是沒辦法處理 ticket token 的部份, 也有可能是他們的 server 目前有問題.

先改用 MSNP9 的方式跑吧. 或者看看是不是過一陣子就好了. (我等一下試看看用 oSpy 看 WLM client 是否收到相同的結果吧)

commons icon [3] Re:phpmsnclass v1.9 [ 回覆 ]

感謝您!我還以為是我的帳號被封了呢?

麻煩您了,我在密切觀察一段時間,並且先改用msn9的協定,感恩~

commons icon [4] Re:phpmsnclass v1.9 [ 回覆 ]

看來是MS的問題,今天又正常了,謝謝您!!

commons icon [5] Re:phpmsnclass v1.9 [ 回覆 ]

Hi Tommy, Thanks very much for your msnclass, I create a msnbot with it, and the bot works fine, except one thing, it can not keep in online state. If i send message after 20 or 30 minutes to it, msn messenger will say the bot it offline.
I work on this problem for a whole day, but still the reason is uncleared. Would you please give me some hint?
Thanks in advance!

commons icon [6] Re:phpmsnclass v1.9 [ 回覆 ]

enable the debug log, then check the log.
sometime, the server will ask the client to quit then re-login again.

commons icon [7] Re:phpmsnclass v1.9 [ 回覆 ]

Yes, after tracing logs, i found there is a bug in my processMsg logic.
Thanks for your advice.

commons icon [8] Re:phpmsnclass v1.9 [ 回覆 ]

你好呀...
希望你可以幫到我呀...
我已跟你的網頁做..
可以還有以下的error
Starting MSN bot: msnbot./msnbot.sh: 33: /var/spool/msnbot/msnbot.php: not found

/var/spool/msnbot/msnbot.php 是有這個file 的.
為何還有error?

commons icon [9] Re:phpmsnclass v1.9 [ 回覆 ]

也許是屬性不對, 沒有執行的權限吧. 或者你的系統沒有 php 的 CLI 程式吧.

commons icon [10] Re:phpmsnclass v1.9 [ 回覆 ]

很感謝大大提供這樣的class, 另外我想要請問同一台電腦能否用程式跑 不同的 msn 帳號呢?
port還是都用 1863 嗎?
另外目前這class 有會議功能嘛?
請大大給與解答... 小女子感激不盡

commons icon [11] Re:phpmsnclass v1.9 [ 回覆 ]

它不 listen port, 可以同一台跑很多個. 那個 1863 是 server 用的.
不支援會議功能.

commons icon [12] Re:phpmsnclass v1.9 [ 回覆 ]

回報給大大知道 ~
用MSNP15 的協定時. 會發生部份通訊錄會顯示離線.
而MSNP9 的協定時. 若是我把機器人帳號刪除後再加入, 便不會自動加入了. 機器人卻總是永久離線.
但我看log 檔, 還是有我刪除的那個帳號.
不知道這部份該如何把帳號在加入機器人呢?

commons icon [13] Re:phpmsnclass v1.9 [ 回覆 ]

我目前測1.97 版本 雖然 msn.class.php 中寫的是1.8

我目前發現有個問題 就是正常使用下 幾秒中發一次訊息給msnbot, 會出現

下列訊息無法傳送給所有收訊者:
1

不知道是否有人有這樣的問題呢?

commons icon [14] Re:phpmsnclass v1.9 [ 回覆 ]

如果你的除錯模式有打開或有 log 可以查, 請看看 msnbot 有沒有收到這個訊息, 或有什麼不正常的 log 吧.

畢竟幾秒中發一個訊息給 msnbot, 那表示是用別的 client 發的, 問題可能在你用的 client, 也可能在 MS 的 server 上頭. 也許 msnbot 連收都沒收到. (所以... 應該還是要有 log 才能分析吧)

我自己試是不會有這情形.

commons icon [15] Re:phpmsnclass v1.9 [ 回覆 ]

謝謝你這樣快的回應

我是用msn messenger 送出資料的, 我請朋友裝起來測也會發生一樣的問題

發生上面訊息後. log 中沒有收到, debug 中也沒有收到 封包抓php.exe 也沒收到.

不知道您有沒有 msnbot 的開放帳號 可以讓我連看看呢?

commons icon [16] Re:phpmsnclass v1.9 [ 回覆 ]

http://www.teatime.com.tw/msn/
用這兒的這一個吧.

log 沒有的話, 就不清楚了, 畢竟接收訊息這部份由 server 那邊送 request 來才會處理.

commons icon [17] Re:phpmsnclass v1.9 [ 回覆 ]

以上忽略

結果 好像也是一樣 我大約等到 msnbot 有回應後 就送出下一個

MSN BOT at TeaTime 說:
message from [email protected] (network: WLM/MSN):
1
小xx! 說:
1
MSN BOT at TeaTime 說:
message from [email protected] (network: WLM/MSN):
1
小xx! 說:
1
MSN BOT at TeaTime 說:
message from [email protected] (network: WLM/MSN):
1
小xx! 說:
1
下列訊息無法傳送給所有收訊者:
1
小xx! 說:
1
下列訊息無法傳送給所有收訊者:
1
小xx! 說:
1
下列訊息無法傳送給所有收訊者:
1

commons icon [18] Re:phpmsnclass v1.9 [ 回覆 ]

我剛剛照你的方式試了一下, 送到第 73 筆會出現, 不過第 74 筆又正常.
我看一下我的 log, 在第 72 筆與第 74 筆之間, 並沒有收到 RNG 的指令. 也就是第 73 筆的訊息, 並沒有由 server 送出給 bot...

猜測也許是 server 那邊的 throttle control 擋掉了吧.

commons icon [19] Re:phpmsnclass v1.9 [ 回覆 ]

是喔 我跟我朋友都是 msn 2009 版本的..

都遇到這樣的問題 我是大約測10次就會遇到 一直無法傳送的問題

也是 server 沒有傳封包過來.. 就是沒有 RNG

但 我在想 會不會是msn server 的保護 可是我測別的機器人 有一個機器人 傳送訊息前會先傳送 xxxbot 正在輸入訊息 , 另外一個沒有.. 但都不會遇到這個問題.

Tommy 謝謝了 真感謝你提供這樣的免費程式給大家用, 如果有解決方案的話 再請您po上來, 我會常來看看.

commons icon [20] Re:phpmsnclass v1.9 [ 回覆 ]

你好,想請教個問題。
本來我使用這個機器人蠻穩定的,但這兩天執行後,卻無法送出訊息,改成MSNP9就可以發訊息了。查半天也不知原因,不知您有遇過嗎?

commons icon [21] Re:phpmsnclass v1.9 [ 回覆 ]

是的. 用 msnp15 在登入之後 server 就沒有後續的動作了. 猜測是 server 那邊有改了什麼吧.

commons icon [22] Re:phpmsnclass v1.9 [ 回覆 ]

請到 Google Code 的 phpmsnclass project 抓 SVN 的 r38 版本, 可以解決這幾天的在 MSNP15 無法使用的問題.

commons icon [23] Re:phpmsnclass v1.9 [ 回覆 ]

是抓這一個可以解決無法登入的問題嗎
phpmsnclass_1.9.7z msn.class.php v1.9 Featured msn php Oct 2008 24.4 KB 2635

commons icon [24] Re:phpmsnclass v1.9 [ 回覆 ]

請到 http://code.google.com/p/phpmsnclass/source/checkout 這兒用 svn 抓 r38 或之後的版本.

commons icon [25] Re:phpmsnclass v1.9 [ 回覆 ]

# ./msnbot.sh start
Starting MSN bot: msnbot.

#cat debug.log
Can't connect to server: Can't connect to messenger.hotmail.com:1863, error => 110, Connection timed out
07/30/09 20:27:58 [9379] *** wait for 30 seconds
-------------------------
why ? the firewall is closed.
>nslookup messenger.hotmail.com

Non-authoritative answer:
messenger.hotmail.com canonical name = messenger.hotmail.geo.msnmessenger.msn.com.akadns.net.
messenger.hotmail.geo.msnmessenger.msn.com.akadns.net canonical name = messenger.hotmail.msnmessenger.msn.com.akadns.net.
Name: messenger.hotmail.msnmessenger.msn.com.akadns.net
Address: 65.54.239.80

commons icon [26] Re:phpmsnclass v1.9 [ 回覆 ]

usually, it's firewall or network issue.
you can try to telnet 65.54.239.80 1863
it will get same error.

Sometimes, it's caused by MS change the server's ip address, and the DNS still not changed.

commons icon [27] Re:phpmsnclass v1.9 [ 回覆 ]

yes “usually, it's firewall or network issue." thanks!!!
-----------------
but,now!

07/30/09 23:35:56 [9316] *** try to connect to MSN network
07/30/09 23:36:05 [9316] *** connected, wait for command
07/30/09 23:36:06 [9316] *** ingnore MSG for: Content-Type: text/x-msmsgsprofile; charset=UTF-8
07/30/09 23:36:08 [9316] *** try to send message from /var/spool/msnbot/spool/msn_7774_62ab31c684770aa88cbcade6a94c7867.msn
07/30/09 23:36:08 [9316] *** TO: *********@hotmail.com
07/30/09 23:36:08 [9316] *** MSG: this
07/30/09 23:36:08 [9316] !!! logout
07/30/09 23:36:08 [9316] *** wait for 30 seconds
-----------------
why ?

commons icon [28] Re:phpmsnclass v1.9 [ 回覆 ]

try to upgrade it the r38 or after from http://code.google.com/p/phpmsnclass/source/browse/#svn/trunk/phpmsnclass

commons icon [29] Re:phpmsnclass v1.9 [ 回覆 ]

after upgrade “msn.class.php r42 and msnbot.php r40”
測試msn成功,現在我想問我目前是用的msn 9還是msn 15? 如果我想用msn15來離線發送消息,我該如何設置?具體修改那些文件?

commons icon [30] Re:phpmsnclass v1.9 [ 回覆 ]

你可以在 new MSN 的第一個參數指定 MSNP9 或 MSNP15, 如果沒指定, 系統會自行判斷是否支援 MSNP15, 如果不支援就用 MSNP9.

MSNP15 必須要有 php 的下列 module: curl pcre mhash mcrypt bcmath
可以執行 php -m 看看你的系統目前有的模組.

commons icon [31] Re:phpmsnclass v1.9 [ 回覆 ]

php -m 你說得模組我都有。那他應該是用的msnp15吧!

剛剛測試了一下,離線發送。 OK!
還有一個問題,現在的msn對一次發送消息內容字數有限制。請問你寫的msn機器人是否自動對內容進行字數分段發送?需要我自己設置?還是程序自動判斷?

commons icon [32] Re:phpmsnclass v1.9 [ 回覆 ]

某個版本後會自行分段.

commons icon [33] 連線問題 [ 回覆 ]

Tommy你好
我裝了以後可以很正常的使用
但是bot會三不五時的重新連線
不知道可能是甚饃原因造成的?

thx

commons icon [34] Re:phpmsnclass v1.9 [ 回覆 ]

有些是 server 要求重新登入, 有些是發送太頻繁...
實際原因要看 log 就知道.

commons icon [35] Re:phpmsnclass v1.9 [ 回覆 ]

不好意思,剛剛我發現原因
因為我下./msnbot restart後
舊的程序還在,所以新的就會被踢掉

另一個問題是如何關掉debug的log?
我找了msn.class.php和msnbot.php
但不知道要怎麼關掉,因為log還蠻大的

謝謝

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

迴響

  

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