從今天開始一連四天我人都不在家,今天在屏東,明天之後的三天都在台中,雖然有將筆電帶著跑,但是畢竟不是像使用桌上型電腦和家用網路一般方便,而且我今天才發現我的筆電只有安裝了VS2010,但是沒有安裝使用Silverlight4開發需要的相關檔案,因此這幾天的主題將會暫時離開Silverlight。
今天要分享的是最近研究的一個需求,那就是實作一個簡單的MSN機器人,內容真的非常簡單,因為最主要只有登入、發送訊息的功能需求而已,話不多說,就讓我們繼續往下吧。
1.我們必須下載「MSNPSharp」這個套件API,下載了最新的版本檔案解壓縮之後會有「MSNPSharp.dll」和「MSNPSharp.XmlSerializers.dll」,將它們參考引用到開發的專案(以下以WebSite專案為例)。
2.加入新項目Global.asax,在Application_Start裡面加入下列程式碼:
Dim msgr As MSNPSharp.Messenger
If Application("MSNRobot") Is Nothing Then
msgr = New MSNPSharp.Messenger
Application("MSNRobot") = msgr
Else
msgr = Application("MSNRobot")
End If
msgr.Credentials = New Credentials("帳號", "密碼")
AddHandler msgr.Nameserver.SignedIn, AddressOf SignedIn
If Not msgr.Connected Then msgr.Connect()
3.在Global.asax中加入SignedIn、SendMsg函式。
Private Sub SignedIn(ByVal sender As Object, ByVal e As EventArgs)
Dim msgr As MSNPSharp.Messenger = sender
msgr.ContactList.Owner.Status = PresenceStatus.Online
Me.SendMsg("聯絡人帳號", "test")
End Sub
Public Sub SendMsg(ByVal account As String, ByVal msg As String)
Dim msgr As MSNPSharp.Messenger = Application("MSNRobot")
Dim contact As Contact = Msgr.ContactList.GetContact(account)
Dim txtMsg As New TextMessage(msg)
Dim conversation As Conversation = Msgr.CreateConversation
If contact Is Nothing Then Exit Sub
conversation.Invite(contact)
conversation.SendTextMessage(txtMsg)
End Sub
在這篇的內容中其實只是單純的想要測試看看是否可以利用程式的方式登入MSN,並且僅僅簡單的在登入之後傳送一個測試的訊息,所以沒有特別將程式碼獨立在新的類別檔案中,下一篇將進一步將它們寫在獨立的類別檔,這樣子就可以同時有不同的機器人帳號一起執行囉!
實作簡單的MSN機器人系列文章:
實作一個簡單的MSN機器人
實作一個簡單的MSN機器人-2
實作一個簡單的MSN機器人-3
實作一個簡單的MSN機器人-4
實作一個簡單的MSN機器人-5
msn機器人聽來不錯,先幫你推了
想昨天我也是快12:00才生出文章的
謝謝你幫我推,這樣看來我好像選MSN機器人來做為這個活動的主題文章比較適合吼?
不過準備MSN機器人跟Silverlight比起來,Silverlight會比較麻煩,一來是Silverlight比較不熟,二來是MSN機器人不需要管畫面的部份。
接下來幾天我還是會繼續寫MSN機器人相關的文章,或許等這個主題結束之後再來決定是不是要再回到Silverlight的部份,其實我是還有其它想寫的東西,像是DotNetNuke的使用和模組開發,這是我近期在研究的東西,但是一開始或許會偏使用和管理比較多,開發的部份所佔份量較少。