Desenvolvimento - Delphi

Delphi: Enviando mensagens instantâneas via consumo de Web Service

Neste artigo iremos acessar via Delphi um web service de envio de mensagens instantâneas. Este web service envia mensagens para ICQ, MSN Messenger, AIM (AOL Instant Messenger) e Yahoo Messenger.

por Gustavo S. Semaan



Introdução

Neste artigo iremos acessar via Delphi um web service de envio de mensagens instantâneas. Este web service envia mensagens para ICQ, MSN Messenger, AIM (AOL Instant Messenger) e Yahoo Messenger.

Desenvolvendo o exemplo

O web service que utilizaremos está disponível no site http://www.bindingpoint.com. Crie um novo projeto e salvaremos os arquivos. Adicionaremos 2 Tedits, 1 Tmemo, 1 TRadioGroup e um Tbutton com propriedades name edtNome, edtPara, mmTexto, rdgrpOpcao e btnEnviar respectivamente. Limparemos as propriedades Text dos edtNome, edtPara e mmTexto e no rdgrpOpcao na propriedade Items digitaremos "ICQ, MSN, AIM, Yahoo" (Cada palavra em uma linha necessariamente nesta ordem).

Importaremos o WSDL deste site. Assim conheceremos os serviços disponíveis pelo web service. Para isto iremos em File / New / Other. Na Guia WebServices selecionaremos a opção WSDL Importer.

Uma tela Wizard será aberta solicitando o endereço do WSDL. Digitaremos http://www.bindingpoint.com/ws/imalert/imalert.asmx?wsdl e clicaremos em Next.

Será exibido o código gerado. Clicaremos em Finish e salvaremos o arquivo gerado com o nome de imalert.pas.

Em seu formulário adicione a unit imalert, utilizando o menu File / Use Unit.

No evento OnClick do btnEnviar colocaremos o seguinte código:

procedure TForm1.btnEnviarClick(Sender: TObject);
var
  vResult: SendResult;
begin
  case rdgrpOpcao.ItemIndex of
    0: GetInstantMessageAlertSoap.SendICQ("", edtNome.Text, edtPara.Text, mmTexto.Text);
    1: GetInstantMessageAlertSoap.SendMSN("", edtNome.Text, edtPara.Text, mmTexto.Text);
    2: GetInstantMessageAlertSoap.SendAIM("", edtNome.Text, edtPara.Text, mmTexto.Text);
    3: GetInstantMessageAlertSoap.SendYahoo("", edtNome.Text, edtPara.Text, mmTexto.Text);
  end;

  case vResult of
    FAILED: ShowMessage("Falha no envio da mensagem.");
    SENT: ShowMessage("Mensagem enviada com sucesso.");
    UNREACHABLE: ShowMessage("Destino não encontrado.");
    UNAUTHORIZED: ShowMessage("Mensagem recusada. Sem autorização.");
  end;
end;

Conclusão

Provavelmente você está se questionando sobre a utilidade de um software que envia, mas não recebe mensagens. Este software seria muito útil, por exemplo, em um sistema de vendas, onde automaticamente o cliente receberia uma mensagem avisando que o produto que estava esperando chegou.

Ferramentas Utilizadas:

  • Borland Delphi 6
  • Web Service disponível em: http://www.bindingpoint.com
Gustavo S. Semaan

Gustavo S. Semaan - Bacharelando em Sistemas de Informação, Técnico em Informática Industrial, é Analista de Sistemas do CAEd / UFJF, desenvolvendo sistema escolar e soluções em avaliações educacionais. Possui experiência em Delphi, vb.NET, PHP e JAVA e utiliza banco de dado SQL Server, Interbase/Firebird e MySQL.