以 MSNPsharp v5 實作間單的 MSN robot

有個需求是透過即時訊息,通知伺服器目前的突發狀況。我想到可以用簡訊通知、msn訊息通知、email 通知。其實 email 通知的功能應該很多系統都有,但卻不夠即時。另一方面也沒有預算使用簡訊通知,所以 msn 訊息通知可以算是很適合的方案。

如何使用 MSNPsharp v5 ?

以 MSNPsharp v5 作為解決方案。本來想偷懶使用網路上的介紹,但很多都是 v2 的版本,有些方法已經改變了,因此我將重新以 v5 來介紹。
  1. 到官網下載整個套件。( 載點 )
  2. 引用 MSNPsharp.dll 到專案中。
  3. 建立 Messenger 物件,輸入帳號密碼,開啟連線。
  4. 加入通知對象為好友。(如果人不多可以手動加)
  5. 利用 Messenger 的 ContactList 屬性中的 SendMessage() 方法發送訊息。
  6. 關閉連線。
以下為原始碼

using MSNPSharp;
using MSNPSharp.Core;
namespace webcam_alarm_2
{
  class Program
  {
     /* new a Messenger object*/
     Messenger messenger = new Messenger();
     static void Main(string[] args)
     {
        /* log in*/
        messenger.Credentials = new Credentials("msn@test.com", "password");
        messenger.Connect();
        /* this is must do eventhandler */
        messenger.Nameserver.SignedIn += new EventHandler<EventArgs>(Nameserver_SignedIn);
        /* wait 8 sec for msn */
        System.Threading.Thread.Sleep(8000);
        /* new a TextMessage object */
        TextMessage msg = new TextMessage("測試中!!");                  
        /* send a message to your friend */
        messenger.ContactList["msnfriend@test.com"].SendMessage(msg);
        /* disconnect */
        messenger.Disconnect();
      }

      static void Nameserver_SignedIn(object sender, EventArgs e)
      {
        /* must do : change status to online */
        messenger.Owner.Status = PresenceStatus.Online;
      }
   }
}


參考資料
----
http://code.google.com/p/msnp-sharp/
http://blog.xuite.net/as2964/liveblog/24049101
http://ithelp.ithome.com.tw/question/10054461
http://huan-lin.blogspot.com/2008/11/msn.html
http://blog.csdn.net/virtualdesktop/article/details/2527465

留言

這個網誌中的熱門文章

資安JAVA(八):HTTP強制傳輸安全(HSTS)

以 SharpPcap 實作可收聽封包的 C# 程式

資安JAVA(四):Session Cookie HTTPOnly Flag