VB .NET - Enviando SMS usando o serviço LocaSMS
Neste artigo vou mostrar como enviar SMS em uma aplicação VB .NET usando o serviço da LocaSMS. |
Neste artigo eu vou usar o serviço da LocaSMS, uma empresa brasileira, para enviar SMS.
Para poder usar o serviço da LocaSMS vamos criar uma conta gratuita de avaliação neste link: http://locasms.com.br/#criarconta
Voce vai receber a sua senha de acesso na sua conta de email e terá um crédito de 30 SMS para testar o serviço.
Você pode fazer o login usando seu usuario e a sua senha e verificar os créditos disponíveis :
Documentação da API e Demos
Para acessar a documentação acesse o link : http://locasms.com.br/downloads-loca-sms/
No nosso exemplo vamos enviar SMS usando a integração por WebService e para isso vamos usar o seguinte endereço: http://54.173.24.177/painel/ServiceSms.asmx
Abaixo temos os métodos disponíveis no web service. No nosso exemplo vamos usar o método SendSMS:
Com a sua conta configurada e a documentação consultada vamos testar o serviço no VB .NET.
Nessa abordagem temos apenas que adicionar uma referência de serviço(add service reference) no nosso projeto apontando para a URL: http://54.173.24.177/painel/ServiceSms.asmx
Vamos utilizar o projeto criado na segunda parte do artigo.
Recursos Usados:
Enviando SMS com o serviço da LocalSMS
Abra o projeto criado no artigo anterior.
A seguir vamos incluir a referência ao serviço SOAP em nosso projeto. Vamos usar o serviço descrito neste link: http://54.173.24.177/painel/ServiceSms.asmx
Clique com o botão direito do mouse sobre o nome do projeto e a seguir clique em Add Service Reference;
A seguir informe o endereço : http://54.173.24.177/painel/ServiceSms.asmx na janela Add Service Reference e clique no botão OK;
Pronto ! já podemos usar o serviço no projeto.
Criando a classe para enviar SMS usando o serviço LocaSMS
Vamos criar uma nova classe em nosso projeto na pasta Service chamada EnviaSMSLocaSMS que vai implementar a interface IEnviaSMS conforme o código abaixo:
Public Class EnviaSMSLocaSMS
Implements IEnviaSMS
Public Sub EnviaSMS(telefone As Long, mensagem As String) Implements IEnviaSMS.EnviaSMS
Try
Dim usuario As String = "seu_usuario"
Dim senha As String = "sua_senha"
Dim campanha As String = "ENVIOSMS_LOCASMS"
Using LocaSMS = New LocaSMS.ServiceSMSSoapClient()
Dim resultado = LocaSMS.SendSMS(usuario, senha,
New LocaSMS.rSMS() With
{
.Destinations = {
New LocaSMS.Destination() With {.Number = telefone}},
.Msg = mensagem,
.Subject = campanha,
.WarningBeginningTransmission = False,
.Preso = False
})
End Using
Catch
Throw
End Try
End Sub
End Class
|
Observe que eu preciso informar o nome do usuário, a senha e o nome da campanha. E note que não precisei alterar nenhum código para enviar SMS apenas crie uma nova classe. Estamos assim aderente ao princípio Open-Closed.
Agora vamos alterar a nossa interface pois agora temos dois modos distintos de enviar SMS. Vamos incluir dois controles radiobutton no formulário para identificar cada um dos serviços conforme mostra a figura a seguir:
rdbViaNett
rdbLocaSMS
Agora vamos alterar o código do formulário e fazer alguns ajustes.
1- Vamos alterar o código do evento Click do botão de comando - Enviar SMS - conforme abaixo:
Private Sub btnEnviarSMS_Click(sender As Object, e As EventArgs) Handles btnEnviarSMS.Click
Dim fone As Long = 0
Dim msg As String = ""
If Not ValidaTelefone(txtTelefone.Text) Then
MessageBox.Show("Número de telefone inválido. Use o formato 55XX999999999. Ex: 5511987651122 ")
txtTelefone.Text = ""
txtTelefone.Focus()
Return
Else
fone = Convert.ToInt64(txtTelefone.Text.Replace("+", String.Empty))
End If
If String.IsNullOrEmpty(txtMensagem.Text) Then
MessageBox.Show("Informe a mensagem a ser enviada ")
txtMensagem.Focus()
Return
Else
msg = txtMensagem.Text
End If
If rdbViaNett.Checked Then
EnviaMensagemSMSViaNett(fone, msg)
ElseIf rdbLocaSMS.Checked Then
EnviaMensagemSMSLocaSMS(fone, msg)
End If
End Sub
|
No código, agora verificamos qual a opção informada para envio de SMS e definimos duas rotinas:
Cada rotina vai enviar o SMS usando a classe Comunicacao(). Vamos ao código de cada uma delas:
1 - EnviaMensagemSMSViaNett(fone, msg)
Private Sub EnviaMensagemSMSViaNett(fone As String, msg As String)
Try
Dim comunica As Comunicacao
comunica = New Comunicacao(New EnviaSMSViaNett)
comunica.EnviaMensagemSMS(fone, msg)
MessageBox.Show("Mensagem enviada para : " & txtTelefone.Text)
Catch ex As Exception
MessageBox.Show("Erro : " & ex.Message)
End Try
End Sub
|
2- EnviaMensagemSMSLocaSMS(fone, msg)
Private Sub EnviaMensagemSMSLocaSMS(fone As String, msg As String)
Try
Dim comunica As Comunicacao
comunica = New Comunicacao(New EnviaSMSLocaSMS)
comunica.EnviaMensagemSMS(fone, msg)
MessageBox.Show("Mensagem enviada para : " & txtTelefone.Text)
Catch ex As Exception
MessageBox.Show("Erro : " & ex.Message)
End Try
End Sub
|
Agora executando o projeto e testando o serviço de envio de SMS da LocaSMS temos o formulário abaixo onde informamos o fone, a mensagem e marcamos a opção LocaSMS:
Clicando no botão Enviar SMS eu obtive o seguinte resultado no meu celular:
Recebi dois SMS, a mensagem enviada e um aviso informando do início da campanha:
E assim temos em nosso projeto VB .NET agora duas opções para enviar SMS, uma usando uma empresa internacional (ViaNett) e outra usando uma empresa local (LocaSMS).
Pegue o projeto completo aqui : Vbnet_EnviaSMS2.zip
Disse-lhe Jesus: Eu sou o caminho, e a
verdade e a vida; ninguém vem ao Pai, senão por mim.
João 14:6
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no Visual Studio ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET ?
|
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET