作者 主題: 使用 PHP 發送 MSN 訊息  (閱讀 164865 次)

0 會員 與 1 訪客 正在閱讀本文。

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
使用 PHP 發送 MSN 訊息
« 回覆 #30 於: 2007-03-30 12:26 »
twu2 你真是神!~
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4027
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
使用 PHP 發送 MSN 訊息
« 回覆 #31 於: 2007-03-30 12:32 »
離題諂媚話之三:twn2 你害某些人失業了...

之前引以為傲技術在最近輪番討論後,都已經不是商業機密了

從 sockets, pcntl 到現在 MSN protocol 的實作,還有什麼是 php 做不到的呢?
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

梁楓

  • 俺是博士!
  • *****
  • 文章數: 6220
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #32 於: 2007-03-30 13:36 »

讓我把到妹
wahahaha

--

精神不穩定,來亂的 = =

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
使用 PHP 發送 MSN 訊息
« 回覆 #33 於: 2007-03-30 13:37 »
引述: "梁楓"

讓我把到妹
wahahaha

--

精神不穩定,來亂的 = =


沒圖沒真相,交出來...
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

梁楓

  • 俺是博士!
  • *****
  • 文章數: 6220
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #34 於: 2007-03-30 13:38 »
我列舉的是PHP 辦不到的事 ~><~~

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
使用 PHP 發送 MSN 訊息
« 回覆 #35 於: 2007-03-30 13:41 »
引述: "梁楓"
我列舉的是PHP 辦不到的事 ~><~~


那我想不只 php 辦不到....
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #36 於: 2007-03-30 22:12 »
不知道有沒有人用 1.3 版的 msnbot.php 持續跑了一天以上的 (應該說是, 用 MSNP15, 且上次做登入這個動作已經超過一天的) ? 如果有的話, 可以麻煩測試一下, 送一封 OIM (離線訊息) 試看看嗎? 看一下結果會不會成功?

發現 login 取得的 ticket 超過一天應該就會失效吧. 不確定發送 OIM 是否仍然正常. (也許應該在失效之後, 再試著重新登入, 抓取新的 ticket 吧.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #37 於: 2007-03-31 22:17 »
1.3 版有個問題, 是在讀取 TO: 的內容時, 如果有空白, 會連空白都帶入, 一般傳訊並不會有問題, 不過傳 OIM 會有錯誤. 如果你有碰到這個問題... 就在產生那個 .msn 檔案時, 不要在 TO: 後頭使用空白就可以避免.

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

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #38 於: 2007-04-02 09:48 »
轉自: http://blog.teatime.com.tw/1/post/220

修改之前發送 MSN 的 php calss. 修正一些 bug, 並加上與 Yahoo 即時通互傳的功能.

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

異動說明:

    * 更改逾時的偵測方式, 只針對每兩個指令之間的時間來計算.
    * 對於 curl 的運作, 只有在除錯模式下才顯示 header 的內容.
    * 如果在登入 login.live.com 時, 收到 redirect 的 URL 時, 試著使用指定的 URL 再登入一次.
    * 修正在處理 .msn 檔時, 對於 TO: 的空白處理造成離線訊息無法使用的問題.
    * 修正在處理離線訊息時, 因為執行超過一天, ticket 失效, 無法傳送的問題.
    * 直接使用 MSNP15 取得聯絡人名單, 不必再透過 MSNP9 了.
    * 處理 ADD/REM (MSNP9) ADL/RML (MSNP15) 的指令, 可以自動接受別人加入名單, 並也把對方加入本身的名單中.
    * 支援 WLM 8.1 與 Yahoo 8.1 之間互相傳訊的功能 (含離線訊息).
    * 如果無法正確即時傳送訊息, 會利用離線訊息再送一次.
    * 可以讀取離線訊息, 並且回覆.
    * 處理過後的 .msn 檔案, 可以選擇不刪除而移到 backup 的目錄中.

除了 bug 的修正之後, 主要是利用 oSpy, 取得一些在 WLM 8.1 使用的 MSNP15 相關的一些 SOAP 運作方式, 所以, 目前我們可以直接利用 MSNP15 來取得聯絡人的名單, 也可以正確的新增或刪除聯絡人 (程式目前沒處理刪除的部份), 對於離線訊息的讀取, 也可以正常的運作. 另外, 也加上對於 WLM/Yahoo 之間互相傳訊的功能.

在 msnbot.php 上頭, 可以自訂函式來處理別人加入名單與移除名單的事件. 也移除利用 MSNP9 取得名單的功能. 另外把設定移到 config.php 中. 還有... 如果你有自訂處理訊息的功能, 如果傳回空字串, 就表示不用回傳訊息. 如果聯絡人中也有 bot 之後的程式, 記得排除在外, 免得 bot 之間一直互相回覆訊息. (當然, 如果你有利用這個功能來執行伺服器上的一些指令, 記得要過濾傳訊者, 注意一下安全的問題)

對了, 在 MSN 的定義中, 1 是屬於 MSN/WLM 的網路訊息. 32 是 Yahoo 即時通. 所以在收訊者的 email 上頭, 我在最後加上 @n 的東西, 來區別是屬於那一種的帳號. 如果沒有這個多出來的 @n 就表示是屬於 MSN 的帳號, 如果是 @1 也是表示屬於 MSN 的帳號. 而 @32 就表示屬於 Yahoo 即時通的帳號.

梁楓

  • 俺是博士!
  • *****
  • 文章數: 6220
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #39 於: 2007-04-02 10:13 »
twu2 你真的是好樣的!

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #40 於: 2007-04-02 16:51 »
Bug: alias 上頭不能用空白, 會被 NS 中斷連線.
解決方法:
1. 就不要用空白吧.
2. 在 PRP 指令前, 加上一行 $alias = rawurlencode($alias);, 處理一下不允許的字元吧.
代碼: [選擇]
                  // NS: >>> PRP {id} MFN name
                    if ($alias == '') $alias = $user;
                    $alias = rawurlencode($alias);
                    $this->writeln("PRP $this->id MFN $alias");

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #41 於: 2007-04-06 19:15 »
轉自: http://blog.teatime.com.tw/1/post/227

修改之前發送 MSN 的 php calss. 修正一些 bug.

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

異動說明:

    * 更改傳輸時的逾時設定,  由 10 秒改成 2 秒. 可以加速處理的速度. 如果你有因為這個更改而無法順利使用時,  可以更改 msn.class.php 中的 $stream_timeout 變數值.
    * Alias 有空白時會有問題. 在送出 PRP 指令前, 必須對 alias 編碼.
    * 修正 sendMessage() 無法傳送到 yahoo 的問題.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #42 於: 2007-04-06 22:06 »
在 Google Code 開一個 project: phpmsnclass, 以後程式碼會丟到上頭去, 檔案請直接去那邊下載就可以了.
http://code.google.com/p/phpmsnclass/

pank

  • 懷疑的國中生
  • **
  • 文章數: 84
    • 檢視個人資料
    • http://pank.org
使用 PHP 發送 MSN 訊息
« 回覆 #43 於: 2007-04-07 00:23 »
用 PHP4 在 processMsg 部分好像有問題, 不會自動回應, PHP5 則正常,
試過 msnclass 1.4, 1.5 都是一樣狀況
PHP4, PHP5 是用以下參數編的
./configure --with-mysql --with-apxs2=/usr/local/apache/bin/apxs \
 --with-config-file-path=/usr/local/etc  --libexecdir=/usr/local/apache/libexec \
 --enable-module=so --enable-sockets --enable-pcntl --enable-mbstring \
 --with-iconv --with-gd --with-curl \
 --with-zlib --with-jpeg-dir --with-ttf --with-gettext \
 --enable-bcmath --with-mcrypt --with-mhash
ttp://pank.org

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #44 於: 2007-04-07 08:51 »
剛剛試了一下, 請把 msnbot.php 中, 後頭那些 function, 全部都搬到前面去放.
在 PHP4 中, 把 function 寫在使用之後, 會無法呼叫. 不過在 PHP5 中並不會. (真是奇怪, 我記得順序是沒有差別的啊!)

pank

  • 懷疑的國中生
  • **
  • 文章數: 84
    • 檢視個人資料
    • http://pank.org
使用 PHP 發送 MSN 訊息
« 回覆 #45 於: 2007-04-07 19:09 »
的確把 function 調到前面就 OK 了, 真怪
ttp://pank.org

k1951223

  • 懷疑的國中生
  • **
  • 文章數: 58
    • 檢視個人資料
匯整安裝資訊及問題
« 回覆 #46 於: 2007-05-17 13:46 »
感謝各位學長的開發及分享和測試
下列是我整理之前的文章,所寫的安裝程序,以方便初學者使用

感謝 twu2 學長的開發和公佈給大家使用

  在 Google Code 開一個 project: phpmsnclass, 以後程式碼會丟到上頭去, 檔案請直拉去那邊下載就可以了.
http://code.google.com/p/phpmsnclass/



感謝 paulso 學長發表環境安裝所需的套件資料

實在是太棒了, 我使用 sample.php 來試
要使用 MSNP15 就要先裝 mhash, mcrypt, 我是用 CentOS 4.4 的

引言回覆:


Site:
http://phprpms.sourceforge.net/mhash
http://phprpms.sourceforge.net/mcrypt
http://rpmfind.net/linux/rpm2html/search.php?query=libmcrypt.so.4

wget http://jaist.dl.sourceforge.net/sourceforge/phprpms/mhash-0.9.2-1.i386.rpm
wget http://jaist.dl.sourceforge.net/sourceforge/phprpms/php-mhash-4.3.9-3.2.1.i386.rpm

rpm -ivh *.rpm

wget ftp://rpmfind.net/linux/PLD/dists/ac/ready/i386/libmcrypt-2.5.7-6.i386.rpm
wget http://nchc.dl.sourceforge.net/sourceforge/phprpms/php-mcrypt-4.3.9-3.2.1.i386.rpm

rpm -ivh libmcrypt-2.5.7-6.i386.rpm
rpm -ivh php-mcrypt-4.3.9-3.2.1.i386.rpm


也可以利用 yum -y install mhash php-mhash
及 yum -y install libmcrypt php-mcrypt 來安裝所需要的套件



問:如何在 linux 下安裝 7-zip
答: 請在 http://www.7-zip.org/download.html 下載 7-Zip 的 linux 版本

問: 如何 在linux下使用 7-Zip 壓縮(含分割)解壓縮
答:
Linux:
語法
         7z [adeltux] [-] [SWITCH] <ARCHIVE_NAME> <ARGUMENTS>...

範例1
         #7z a file dir
範例1解說
         將dir這個目錄壓縮成file.7z,a代表壓縮的意思
範例2
         #7z a -v25m file dir
範例2解說
         將dir這個目錄壓縮成file.7z.001 file.7z.002.....,每個檔案為25M
                             
[FAQ]
怎麼解壓縮7z.001 7z.002...的檔案?
只要解壓縮7z.001就可以了,不用每個檔案都解開來

在Linux平台底下我該怎麼解壓縮7z的檔案?
先安裝一份p7zip,然後執行7z x file.7z解壓縮你要的檔案

在Windows平台底下我該怎麼解壓縮7z的檔案?
安裝7-Zip,或者其它任何支持7z的壓縮軟件,比如:WinRAR

參考來源:
http://www.7-zip.org/zh-cn/7z.html
http://zh.wikipedia.org/wiki/7z



感謝 twu2 學長寫的安裝說明

安裝說明:

* 建立下面的目錄:
代碼:
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


* 把 config.php , msnbot.php , msnbot.sh 與 msn.class.php 放到 /var/spool/msnbot 的目錄下頭, 把 msnbot.sh 設成可執行:
代碼:
chmod +x /var/spool/msnbot/msnbot.sh


* 修改 msnbot.php 的內容, 如果有必要, 可以修改 processMsg() 的內容, 改成你自訂的處理方式.
* 使用 msnbot.sh 做成啟動的 script, 讓 msnbot.php 程式在開機之後就執行.
* 如果有需要傳送訊息, 直接在 /var/spool/msnbot/spool 目錄下, 產生一個副檔名為 .msn 的文字檔, 第一行的內容是:
代碼:
TO: email1,email2


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

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

本文同步發表於: http://blog.teatime.com.tw/1/post/218


問: 如何設定發送msn的帳號
答:
設定發送程式使用的 MSN 帳號及密碼,請編輯 confg.php 設定帳號/密碼/顯示名稱等資訊,
再配合 WEB2MSN 及 WGET 指令,就可以只要一台電腦安裝,所有的機器都可以發MSN的訊息通知
利用 /var/spool/msnbot/msnbot.sh start 指令啟動 msbbot 程式監控 /var/spool/msnbot/spool 目錄



感謝 pank 學長發佈的 Web2Msn 配合使用更方便
用這個程式做了一個 WEB2MSN http://pank.org/msn/
Source http://pank.org/msn/web2msn.tgz
建議再加一個功能, 當 user 新加入 MSN bot 為連絡人時,
MSN bot 應該會收到一個確認的訊息, 若能自動回應, 就很讚了



感謝 twu2 解決在 php4 下使用的問題 , 在 php4 執行須要作下列修改
剛剛試了一下, 請把 msnbot.php 中, 後頭那些 function, 全部都搬到前面去放.
在 PHP4 中, 把 function 寫在使用之後, 會無法呼叫. 不過在 PHP5 中並不會. (真是奇怪, 我記得順序是沒有差別的啊!)



當完成上列的安裝程序後,就可以利用 網頁 或者 wget 指令 在任何一台機器,
發送訊息通知,到指定的 MSN 帳號了



另外請問 pank 學長你的網頁 http://pank.org/msn/ 上有可以查詢英文和中文的翻譯,
可否提供一下要如何安裝及設定



還有請問一下 abelyang 學長,你秀的操作結果,可以提供部份的指令使用,
是否方便提供要如何安裝及設定

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #47 於: 2007-05-17 14:01 »
引用

還有請問一下 abelyang 學長,你秀的操作結果,可以提供部份的指令使用,
是否方便提供要如何安裝及設定

我用的不是 twu2 兄的方式,我的是 perl 版本

command 的送法並不難, twu2 兄講的那個網站都要提到
至於像 system call 這種只要自己多加工並不難
去 call ping , df ..再把結果當成 msg 等傳回來而以

pank

  • 懷疑的國中生
  • **
  • 文章數: 84
    • 檢視個人資料
    • http://pank.org
使用 PHP 發送 MSN 訊息
« 回覆 #48 於: 2007-05-17 22:41 »
查字典功能是用 pyDict 的字典檔, 在 processMsg 內加條件, 看到是 q 開頭的, 就去呼叫查字典的 script
代碼: [選擇]
   switch (strtolower(substr($msg,0,1))) {
        case 'q':
            exec("/usr/local/bin/pydict.sh ".substr($msg,2), $arr);
            $n=count($arr);
            if ($n>20) $n=20;
            $return_msg="Query result:\r\n";
            for ($i=0;$i<$n;$i++) $return_msg.=$arr[$i]."\r\n";
            return $return_msg;
            break;
        case 'h':
            return "http://pank.org/msn/\r\nq word for English<->Chinese translation";
            break;
        default:
           return "Hello! I'm Pank's MSN bot. http://pank.org/msn/";
    }

pydict.sh 很簡單, 只用到 grep 而已
代碼: [選擇]
#!/bin/bash
if [ -z $1 ] ; then
    echo "`basename $0` {word}"
else
    cd /usr/local/share/pydict
    if echo ${1:0:1} | grep -iq [a-z] ; then
        grep -i ^$1= ${1:0:1}.lib
    else
        grep -ih $1 *.lib
    fi
fi
ttp://pank.org

k1951223

  • 懷疑的國中生
  • **
  • 文章數: 58
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #49 於: 2007-05-21 16:53 »
感謝 abelyang 學長的回覆

非常感謝 pank 學長的分享

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #50 於: 2007-06-07 16:26 »
更新 phpmsnclass 版本為 1.6.

異動記錄:

    * 修正登入時被 redirect 但 http 的傳回值仍為 200 時, 會無法登入的問題.
    * 支援 clientid, 允許接受動畫快遞等訊息. 但不回覆.
    * 若 $use_ping 為非 0 數字時, 會每隔 $use_ping 的秒數, 送出 PNG 指令.
    * 讓 msnbot.php 與 msn.class.php 在 windows 下運作. (在 php 5.2.3 測試)
    * 在收到 RML 指令時, 會把該資料於聯絡人清單中移除.

檔案請到 Google Code 抓取.

梁楓

  • 俺是博士!
  • *****
  • 文章數: 6220
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #51 於: 2007-06-07 16:28 »

快要可以做出完整的Web MSN 了
twu2真是好樣的

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #52 於: 2007-06-07 16:34 »
webmsn 需要的是大量的 javascript (AJAX) 技巧, 這個 class 只能做後端的處理.
兩個的方向有些不同.

需要用 webmsn 的, 可以考慮用 qmsn 來改.

kang812

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #53 於: 2007-06-15 15:12 »
謝謝 twu2 無私的分享!
有給個問題回報一下...

1. 在  debug log 中,會有名單中某些聯絡人會持續送 UBX 封包過來
2. 如果聯絡人對 bot 使用上傳檔案或非文字訊息的動作,function 內雖有用 ignore 的方式 reject , 但是看 debug.log , 其實對方還是有持續送 RNG 的封包過來, 經過測試,必須那位聯絡人登出才會停止發送 RNG (就算 bot 登出在登入,對方只要不登出,照樣送)

以上兩個問題回報一下!(這兩個問題對 bot 執行是不會有任何影響的囉)

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #54 於: 2007-06-15 15:32 »
1. UBX 是用來傳送傳送個人訊息與目前播放的歌曲, 所以只要有人更改個人訊息, 或更換所聽的音樂, 就會送這個訊息過來.
2. 請抓 Google Code 上頭 SVN 的版本, 或等 1.7 版發表 (也許這幾天吧, 因為改了這個也快一星期了, 再來應該也沒什麼好改的). 因為那些動作會送 p2p 的訊息, 如果沒有正確回應, 伺服器就會一直送過來.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #55 於: 2007-06-17 16:20 »
更新 phpmsnclass 版本為 1.7.

異動記錄:

    * clientid 預設改為 0x7000800C, 可以在 MSN() 的第四個參數傳入.
    * 判斷並忽略 text/x-mms-animemoticon 訊息.
    * 判斷並忽略 application/x-ms-ink 訊息.
    * 處理 application/x-msnmsgrp2p 訊息, 在必須回應的時候回覆, 否則忽視.
    * 如果在 SB 中不處理該訊息, 則不寫入逾時的記錄.

檔案請到 Google Code 抓取.

湯姆貓

  • 活潑的大學生
  • ***
  • 文章數: 475
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #56 於: 2007-10-31 13:11 »
感謝twu2的無私.....

1.請問一下在iptables上需要開放那些port才能傳訊息,
因為小弟目前可以使用sample.php傳訊息,
但必須先將iptables停掉.

2.在實作msnbot時,一直無法成功.
[root@www msnbot]# ./msnbot.sh start
Starting MSN bot: msnbotExtension '/var/spool/msnbot/msnbot.php' not present.

有人遇過相同的問題嗎??

湯姆貓

  • 活潑的大學生
  • ***
  • 文章數: 475
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #57 於: 2007-10-31 13:45 »
第一個問題解決了~~~把1863Port打開就行了.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5373
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
使用 PHP 發送 MSN 訊息
« 回覆 #58 於: 2007-10-31 13:59 »
1. TCP 80,443,1863 (基本是這三個吧, 如果沒記錯)
2. 我那幾個 .php 沒有 Extension 這個字, 應該是你的 shell 的錯誤訊息? 你的 msnbot.php 是放在 /var/spool/msnbot/ 下頭嗎? 且是可以執行的嗎?

湯姆貓

  • 活潑的大學生
  • ***
  • 文章數: 475
    • 檢視個人資料
使用 PHP 發送 MSN 訊息
« 回覆 #59 於: 2007-10-31 14:13 »
[root@www msnbot]# pwd
/var/spool/msnbot
[root@www msnbot]# ls -al
總計 196
drwxr-xr-x  5 root root   4096 10月 31 14:10 .
drwxr-xr-x 15 root root   4096 10月 31 12:19 ..
drwxr-xr-x  2 root root   4096 10月 31 12:19 backup
-rw-r--r--  1 root root   2470  6月 16 13:20 changelog.txt
-rw-r--r--  1 root root    600 10月 31 13:59 config.php
drwxr-xr-x  2 root root   4096 10月 31 14:09 log
-rwxr-xr-x  1 root root   6947 10月 31 14:10 msnbot.php
-rwxr-xr-x  1 root root    444  4月  6  2007 msnbot.sh
-rw-r--r--  1 root root 139021  6月 16 13:18 msn.class.php
-rw-r--r--  1 root root   1029 10月 31 12:58 msnsendmsg.php
-rw-r--r--  1 root root   1086 10月 31 13:43 sample.php
drwxrwxrwt  2 root root   4096 10月 31 12:19 spool
-rw-r--r--  1 root root    101  4月  6  2007 test.msn
[root@www msnbot]# ./msnbot.php
Extension './msnbot.php' not present.
[root@www msnbot]# php -f msnbot.php
[root@www msnbot]#

原本用php -f msnbot.php時會出現Call to undefined function pcntl_fork();
後來重編php加上--enable-pcntl後就都沒出現錯誤訊息了.