iT邦幫忙

DAY 4
7

我的學習之路系列 第 4

實作一個簡單的MSN機器人

從今天開始一連四天我人都不在家,今天在屏東,明天之後的三天都在台中,雖然有將筆電帶著跑,但是畢竟不是像使用桌上型電腦和家用網路一般方便,而且我今天才發現我的筆電只有安裝了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


上一篇
Facebook的Chat功能採用XMPP協定
下一篇
實作一個簡單的MSN機器人-2
系列文
我的學習之路14

1 則留言

0
jason860421
iT邦新手 5 級 ‧ 2010-10-16 20:20:19

msn機器人聽來不錯,先幫你推了

想昨天我也是快12:00才生出文章的毆飛

kenny2061 iT邦新手 3 級 ‧ 2010-10-17 00:13:41 檢舉

謝謝你幫我推,這樣看來我好像選MSN機器人來做為這個活動的主題文章比較適合吼?

不過準備MSN機器人跟Silverlight比起來,Silverlight會比較麻煩,一來是Silverlight比較不熟,二來是MSN機器人不需要管畫面的部份。

接下來幾天我還是會繼續寫MSN機器人相關的文章,或許等這個主題結束之後再來決定是不是要再回到Silverlight的部份,其實我是還有其它想寫的東西,像是DotNetNuke的使用和模組開發,這是我近期在研究的東西,但是一開始或許會偏使用和管理比較多,開發的部份所佔份量較少。

我要留言

立即登入留言