[教學] C# 利用MSNPsharp 打造MSN機器人 @ 狗夫ㄤ賴~ :: 隨意窩 Xuite日誌
  • bloggerAds
  • Mamigogo
  • BTS Design
  • 我的夢想,萊恩斯
  • My Plurk
  • 相簿秀圖機
    1. 沒有新回應!





  • Powered by Xuite
  • 200905152354[教學] C# 利用MSNPsharp 打造MSN機器人

    最近有個比較火紅的MSN機器人應該是小7的open將吧

    外加研究上需求所以就研究了一下MSN機器人這東西

    話說應該是利用MSN Protocol向MSN Network溝通的

    但是我比較懶~ 所以就找了別人寫好的SDK來用用

    開發上方便很多

    觀念 :

    透過MSNPsharp裡面的connect 向MSN Network伺服器溝通

    利用已經定義好的事件來觸發收到訊息和邀請別人發出訊息

    實做 :

    1. 下載MSNPsharp : http://code.google.com/p/msnp-sharp/

    2. 將下載來的資料夾放到C#專案資料夾下

    3. 對專案按右鍵 --> 加入 --> 現有項目 : 找到MSNPsharp然後加進來

    4. 對參考案右鍵 --> 加入參考 --> 到MSNPahsrp資料夾下的bin把MSNPSharp.dll加入

    5. 記得程式碼加上 : Using MSNPSharp

    前置作業完成之後就可以開始使用MSNPSharp來開發了

    # 登入MSN :

    Messenger messenger = new Messenger();

    messenger.Credentials = new Credentials(email,password, MsnProtocol.MSNP16);

    messenger.Connect();

    messenger.Nameserver.SignedIn += new EventHandler(Nameserver_SignedIn);

    //這個事件一定要加 他是判斷已經跟伺服器連上,觸發之後可以將狀態改成線上

    void Nameserver_SignedIn(object sender, EventArgs e)

    {

    messenger.Owner.Status = PresenceStatus.Online;//改狀態為線上

    }

     # 送訊息給好友

    Conversation conversation = messenger.CreateConversation();

    conversation.Invite(emailAccount, ClientType.PassportMember);

    conversation.Switchboard.ContactJoined += new EventHandler(Switchboard_ContactJoined);//加上對話視窗建立的事件,建立之後就可以傳送訊息給好友

    void Switchboard_ContactJoined(object sender, ContactEventArgs e)

    {

    TextMessage resp = new TextMessage(The Text want to Send);

    conversation.Switchboard.SendTextMessage(resp);//送出訊息

    }

     # 接收好友送來的訊息

     messenger.ConversationCreated += new EventHandler(messenger_ConversationCreated);//先利用這個事件來處發對話視窗開啟的事件

    void messenger_ConversationCreated(object sender, ConversationCreatedEventArgs e)

    {

    e.Conversation.Switchboard.TextMessageReceived += new EventHandler(Switchboard_TextMessageReceived);//利用這個事件來觸發收到訊息的事件

    }

    void Switchboard_TextMessageReceived(object sender, TextMessageEventArgs e)

    {

    string message = e.Message.Text;//收到的訊息

    string sender = e.Sender.Mail;//由誰送來的

    }

     

     # 被別人加入好友的事件

    messenger.ContactService.ReverseAdded += new EventHandler(ContactService_ReverseAdded); //被加入好友的時候觸發

    void ContactService_ReverseAdded(object sender, ContactEventArgs e)

    {

    messenger.Nameserver.ContactService.AddNewContact(e.Contact.Mail.ToString());//把對方eMail加入好友

    }

     

    後續的動作就是收到訊息之後的應用了

    可以做到像小7一樣回你話也可以用來擷取其他伺服器的資訊等等再傳回MSN給你

    其他的就自由發揮了~~ 這邊只介紹基本的操作

    [放假] 師大夜市亂吃~~|日誌首頁|悶 無聊的端午節上一篇[放假] 師大夜市亂吃~~下一篇悶 無聊的端午節
    回應