Creare AddIn per Live Messenger

Stamattina ho trovato sul blog di Fabrizio, un interessante articolo per crere AddIn per Live Messenger. Mi permetto di fare alcune precisazioni che, forse per brevità, Fabrizio ha omesso.

Dopo aver creato un Project “Class Library”, è necessario includere nelle Reference l’ assembly MessengerClient che trovate nella directory C:\Programmi\Windows Live\Messenger\. A questo punto possiamo inserire nelle direttive la using Microsoft.Messenger.

 

Prima di compilare la nostra applicazione, è necessario che il nome dell’ assembly e il nome del combinato namespace-classe, devono coincidere:
se il mio assembli si chiama ADRweb.AutoResponderBot.dll, il namespace di primo livello si dovrà chiamare ADRweb e la classe si dovrà chiamare AutoResponderBot.

A questo punto siamo pronti per compilare ed installare con la procedura illustrata da fabrizio.

Vi posto il codice del primo primo AddIn che sicuramente non sarà l’ ultimo…

using System;
using Microsoft.Messenger;

namespace ADRweb
{
    public class AutoResponderBot : IMessengerAddIn

    {
        private MessengerClient _messenger;

        #region IMessengerAddIn Members

        public void Initialize(MessengerClient messenger)
        {
            _messenger = messenger;

            _messenger.AddInProperties.Creator = "Zaragon";
            _messenger.AddInProperties.Description = "Hello Bot AddIn";
            _messenger.AddInProperties.FriendlyName = "AutoResponderBot";
            _messenger.AddInProperties.Url = new Uri("http://blog.adrweb.net");

            _messenger.IncomingTextMessage += new EventHandler <IncomingTextMessageEventArgs>(MsnIncomingTextMessage);
        }

        //IncomingTextMessage si verifica quando un contatto ci invia un messaggio
        private void MsnIncomingTextMessage(object sender, IncomingTextMessageEventArgs e)
        {
            //se il mio stato è impostato su "Occupato"
            if ((_messenger.LocalUser.Status == UserStatus.Busy))
            {
                _messenger.SendTextMessage("Questo è un messaggio automatico. " +
                                           "Non posso risponderti perchè sono occupato. " +
                                           "Ti contatto appena ho finito.", e.UserFrom);
            }

            //se il mio stato è impostato su "Al telefono"
            if (_messenger.LocalUser.Status == UserStatus.OnThePhone)
            {
                _messenger.SendTextMessage("Questo è un messaggio automatico. " +
                                           "Non posso risponderti perchè sono al telefono. " +
                                           "Ti contatto appena ho finito.", e.UserFrom);
            }

        }

        #endregion
    }
}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • YahooMyWeb

One Response

  1. Fabrizio Lapiello Says:

    complimenti bel post e grazie per aver citato il mio articolo!

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.