sexta-feira, 22 de outubro de 2010

Live Alerts

Nesse exemplo a idéia é mostrar um pouco sobre o Live Alerts. Para criar grupos e enviar mensagens, seguindo a seguinte ordem:
1.       Como obter uma conta do Live Alerts;
2.       Criação de grupos;
3.       Envio de Alerts para grupos;
4.       Visualização de todos os grupos existentes.

1.  Para utilização do Live Alerts é preciso enviar um email para alertsdk@microsoft.com  com as seguintes informações:
-Site Name;
-Lista de Endereços IP parceiro para o Desenvolvimento e Produção de máquinas (Live Alerts usa Filtragem de IP para implementações SDK);
-Linguagem;
Os dados da sua conta será enviado no seu email, pela microsoft.
No site http://msdn.microsoft.com/en-us/library/bb259769.aspx , podemos obter mais informação de como conseguir sua conta do Live Alerts.

2.Para começar vamos criar um projeto web Application e fazer referencia a 2 web services, sendo eles:

Método para criar grupos:

public int CreateGroup(string groupName, string groupDescription)
{

    Subscription.AlertsWebServicesService liveAlerts = new
Subscription.AlertsWebServicesService();

    Subscription.RecServicesRequestResponse response;

    response = liveAlerts.AddGroup(CreateHeader(), CreateIdentification(),
      groupName, groupDescription);

    return response.response.statusCode;   
}

Nesse método usamos o webService Subscription para criar o grupo (AddGroup), que retorna um objeto do tipo RecServicesRequestResponse, sendo a propriedade statusCode a mais importante, ou seja, quando a criação do grupo consegue ser realizada com sucesso o statusCode é setado como 0. (No  link a seguir é possivel ver todos os codigos e suas respectivas mensagens de erro: http://msdn.microsoft.com/en-us/library/bb259727.aspx ) .

Método CreateHeader:
private Subscription.RecServicesHeader CreateHeader()
{
Subscription.RecServicesHeader header = new Subscription.RecServicesHeader();

    header.messageID = string.Format("{0}.{1}.{2}", DateTime.Now.ToString("yyyy-MM-dd"),
        Guid.NewGuid().ToString().Replace("-", string.Empty),
        alertsPIN.ToString());

    header.version = "1.0";

    header.timestamp = String.Format("{0}T{1}", DateTime.Now.ToString("yyyy-MM-dd"),
      DateTime.Now.ToString("HH:mm:sszzz"));

    return header;
}

Método CreateIdentification:
private Subscription.RecServicesIdentification CreateIdentification()
{
    Subscription.RecServicesIdentification id = new Subscription.RecServicesIdentification();
    id.PINID = 123456;
    id.PW = “passaword123”;

    return id;
}

Os dois métodos acima são usados em quase todos os métodos que mostraremos nesse artigo.
Esses métodos servem para criar dois objetos:
- RecServicesIdentification : identifica a conta do Alerts onde você informa o número do PIN e senha que foi enviada.
- RecServicesHeader: serve para criar um cabeçalho.

Pronto! Nesse momento você já conseguiu criar um grupo para o Alerts, sendo possivel ver o resultado no site de Administração do Alerts, o qual a Microsoft enviará o endereço junto com seu PIN e senha.

3.Esse método demonstra como fazer o envio de mensagens para o grupo criado:
public int SendGroupMessage(string from, string groupName, string content,
    string emailMessage, string messengerMessage, string actionUrl)
{
    Message.MessageWebServicesService messageService = new
Message.MessageWebServicesService();

    Message.RecServicesContact contact = new Message.RecServicesContact();
    contact.transport = transportType;
    contact.from = from;

    Message.RecServicesGroupMessage msg = new Message.RecServicesGroupMessage();
    msg.groupName = groupName;
    msg.content = content;
    msg.fromContacts = new Message.RecServicesContact[] { contact };
    msg.messengerMessage = messengerMessage;
     msg.emailMessage = emailMessage;
    msg.actionURL = actionUrl;

    Message.RecServicesRequestResponse response;
    response = messageService.GroupDeliver(CreateMessageHeader(),
        CreateMessageIdentification(),msg);

    return response.response.statusCode;
}

Note que esse método informa ao Live Alerts,  o grupo e a mensagem que queremos enviar.  Do mesmo modo que o CreateGroup ele retorna o statusCode, caso obtenha sucesso retornará o codigo 0.

Abaixo Segue os metodos para criar o Cabeçalho e a identificação para o Alerts, mas nesse caso em relação ao webservice Message.

private Message.RecServicesHeader CreateMessageHeader()
{
    Message.RecServicesHeader header = new Message.RecServicesHeader();

    header.messageID = string.Format("{0}.{1}.{2}",
        DateTime.Now.ToString("yyyy-MM-dd"),
        Guid.NewGuid().ToString().Replace("-", string.Empty),
        alertsPIN.ToString());

    header.version = "1.0";

    header.timestamp = String.Format("{0}T{1}", DateTime.Now.ToString("yyyy-MM-dd"),
        DateTime.Now.ToString("HH:mm:sszzz"));

    return header;
}

private Message.RecServicesIdentification CreateMessageIdentification()
{
    Message.RecServicesIdentification id = new Message.RecServicesIdentification();
    id.PINID = 123456;
    id.PW = “passaword123”;

    return id;
}


4.Como recuperar todos os grupos:
public string[] FindAllGroups()
{
Subscription.AlertsWebServicesService liveAlerts = new
Subscription.AlertsWebServicesService();
   
    Subscription.RecGroupsRequestResponse response;
    response = liveAlerts.FindAllGroups(CreateHeader(), CreateIdentification());

    return response.subscriptionGroups;
}

Precisamos apenas chamar o método FindAllGroups que o mesmo retornará um array com todos os grupos que você tem em seu alerts.


Com esses passos é possível trabalhar com o envio de mensagens através do alerts.

Nenhum comentário:

Postar um comentário