Como receber SMS em C#
Este artigo fornece informações sobre como receber SMS em C# com o Ozeki SMS gateway. Continue lendo para saber mais sobre este procedimento!
Por que você quer receber SMS em C#?Existem várias razões para receber SMS em C#. Você pode querer coletar dados de sensores ou usuários móveis, pode criar serviços de SMS que enviam uma resposta com informações ou pode simplesmente pedir aos seus usuários que confirmem que receberam um SMS.
Pré-requisitos- Ozeki SMS Gateway instalado
- Microsoft Visual Studio
- Exemplo de recebimento de SMS em C# (OzekiConsole.zip)
- Baixe o exemplo de recebimento de SMS em C#
- Abra a solução no Visual Studio
- Conecte-se ao Ozeki SMS Gateway
- Receba um SMS simulado em C#
- Conecte-se à rede móvel
- Receba um SMS em C# que foi enviado de um celular
- Verifique os logs no SMS gateway
- Verifique o relatório de entrega no seu celular
O exemplo de código C# abaixo descreve os passos mais importantes para criar um serviço de recebimento de SMS. O Ozeki C# SMS API é gratuito. Você pode modificar a biblioteca da API, os exemplos que vêm com ela e pode usá-la em seu projeto e redistribuí-la livremente ou seus derivados. O exemplo a seguir mostra como se inscrever no evento OnMessageReceived em C# e como lidar com esse evento. O exemplo imprime a mensagem SMS recebida no console.
class Program { static OzxClient Client; static void Main(string[] args) { Client = new OzxClient(); Client.AutoReconnect = true; Client.OnMessageReceived += Client_OnMessageReceived; Client.Connect("127.0.0.1",9580,"testuser","testpass"); } static void Client_OnMessageReceived(object sender, OzxArgs<IOzxMessage> e) { Console.WriteLine("Mensagem recebida: " + e.Item.ToString()); } }
O parâmetro e.Item é uma mensagem OzxMessage completa. Isso significa que você tem todos os detalhes das mensagens SMS no seu evento C# SMS API. Esses detalhes incluem o ID do remetente do SMS, o número de telefone para onde o SMS foi enviado, o texto do SMS e os carimbos de data e hora correspondentes.
Uma das maiores vantagens de usar o Ozeki C# SMS API é que você recebe mensagens SMS instantaneamente. Assim que elas chegam ao SMS gateway, são encaminhadas para o seu cliente C# SMS através do link TCP/IP estabelecido. Isso significa que você não experimentará atrasos.
Se o seu cliente C# SMS API não estiver conectado ao SMS gateway quando o SMS for recebido, o SMS é armazenado na pasta de entrada do SMS gateway. Isso significa que suas mensagens recebidas não serão perdidas, mesmo que o software de SMS que você escreveu usando o C# SMS API esteja offline. Isso se deve ao fato de que o Ozeki SMS Gateway é na verdade um servidor SMS.
Passo 1 - Baixe a biblioteca Ozeki C# SMSNavegue até https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip e baixe o arquivo zip com seu navegador. O arquivo zip será salvo no seu diretório de Downloads (Figura 2). Você pode abrir o download diretamente no Windows Explorer. O pacote zip baixado conterá o código de exemplo que você pode usar para receber SMS em C#.
Extraia a biblioteca C# SMS clicando no arquivo OzekiConsole.zip com o botão direito do mouse (Figura 2). Isso abrirá o menu de contexto. No menu de contexto, selecione "Extrair Tudo...". Isso mostrará a janela de diálogo "Extrair", onde você deve clicar em Extrair.
Clique no botão "Extrair" na janela de diálogo "Extrair Tudo" (Figura 3).
Abra a pasta OzekiConsole. Esta pasta aparecerá depois que você extrair o pacote OzekiConsol.zip. Na pasta OzekiConsole, clique duas vezes no arquivo OzekiConsole.sln. Isso mostrará a caixa de diálogo "Como você deseja abrir este arquivo?". Nesta caixa de diálogo, selecione "Visual Studio". Depois que o Visual Studio for selecionado, clique em OK para abrir o projeto de exemplo em C#. (Figura 4)
Passo 4 - Clique em Program.cs
Abra o Program.cs clicando no arquivo no explorador de soluções no lado esquerdo da tela. Este é o código principal deste exemplo de projeto em C#. Este código contém exemplos de como enviar SMS a partir de C# e como receber SMS em C#. O código não é muito longo, tem cerca de 300 linhas. Ele demonstra toda a funcionalidade da API de SMS em C#. (Figura 5)
Encontre o manipulador de eventos OnMessageReceived e defina um ponto de interrupção na linha inicial do procedimento. Este ponto de interrupção dará a você a chance de capturar o evento OnMessageReceived. O evento OnMessageReceived é acionado quando seu cliente de SMS em C# recebe a mensagem SMS do gateway de SMS. (Figura 6)
Para permitir que o exemplo da API de SMS em C# se conecte ao gateway de SMS, você precisa criar uma conta de usuário OZX no gateway de SMS. Para fazer isso, navegue até o console de gerenciamento do gateway de SMS abrindo o URL https://127.0.0.1:9515 e clique no link "Adicionar novo usuário/aplicativo" no lado direito da tela. (Figura 7)
O link "Adicionar novo usuário/aplicativo" exibirá uma lista de tipos de usuários instaláveis. Você precisa encontrar a conta de usuário OZX na lista. A conta de usuário OZX usa um protocolo de SMS altamente otimizado, que permite que seu aplicativo de SMS em C# se comunique com o gateway de SMS pela rede. Como o gateway de SMS e o cliente de SMS em C# se comunicam pela rede, você pode receber uma mensagem de texto em seu projeto C# mesmo que o projeto seja executado em um computador diferente. (Figura 8)
Forneça um nome de usuário e senha. Em nosso exemplo, usamos testuser como nome de usuário e testpass como senha. O cliente de SMS em C# usará essas credenciais para se conectar ao gateway de SMS. Se você desejar mais de uma conexão de API de SMS em C#, você pode criar várias contas de usuário OZX. Cada conta de usuário hospedará seu próprio cliente de API de SMS em C#. Para decidir qual cliente de SMS em C# receberá um SMS recebido, você precisa criar rotas de entrada na tabela de roteamento de SMS da Ozeki. (Figura 9)
Ative as opções de registro para a conta da API de SMS em C# para obter logs de comunicação. Eu recomendo que você marque todas as caixas de seleção de registro primeiro, para obter informações detalhadas sobre o que acontece com uma mensagem. Se você receber um texto, você o verá aparecer no log antes de ser encaminhado para o seu cliente de SMS em C#. (Figura 10)
Crie uma nova rota de SMS para permitir que o usuário admin envie mensagens de SMS de teste para o cliente de API de SMS em C#. Uma das melhores coisas sobre o uso do Ozeki SMS Gateway é que ele permite que você gerencie suas mensagens de SMS com uma tabela de roteamento. Você pode configurar várias conexões de rede móvel e decidir quais SMS vão para onde. Em nosso exemplo, queremos rotear mensagens de SMS vindas da conta admin para o cliente de API de SMS em C#. Em um sistema real, você não roteará SMS da conta admin, em vez disso, você roteará mensagens de SMS recebidas em conexões de rede móvel para o seu cliente de API de SMS em C#.
Para criar uma nova rota de SMS, clique em Adicionar nova rota no painel do Ozeki SMS Gateway (Figura 11).
Para receber um texto enquanto você escreve seu código de SMS em C#, você usará o formulário de composição do gateway de SMS e enviará o SMS como o usuário admin. A rota de SMS que vamos criar roteará as mensagens de SMS vindas do admin para a conta testuser. A conta testuser encaminhará o SMS para o cliente de SMS em C# (Figura 12).
Selecione testuser como o destino para suas mensagens de SMS recebidas no formulário de detalhes de roteamento. Esta rota enviará mensagens de SMS do usuário admin para o testuser. O testuser encaminhará as mensagens de SMS recebidas para o cliente de API em C# (Figura 13).
Passo 7 - Iniciar o projeto de exemplo de SMS em C#
Para iniciar seu projeto de SMS em C#, você precisa clicar no botão Iniciar na barra de ferramentas do Visual Studio. Após clicar neste botão, o Visual Studio compilará o código e o executará no ambiente de desenvolvimento. A execução do programa será interrompida quando o algoritmo atingir um ponto de interrupção. Como nosso exemplo é uma aplicação de console, você verá a janela preta do console aparecer assim que a execução for iniciada. (Figura 14)
Digite "help" na janela do console. O texto de ajuda listará os comandos disponíveis para você neste projeto de exemplo. O primeiro comando que você usará é o comando "connect". Digite "connect 127.0.0.1:9580 testuser testpass" na janela do console para conectar seu código de SMS em C# ao Gateway de SMS. Observe que 127.0.0.1 significa que o Gateway de SMS está sendo executado no mesmo PC onde seu código de SMS em C# está rodando. 9580 é a porta TCP/IP usada pelo Gateway de SMS para aceitar clientes de SMS em C# (usuários OZX), e as credenciais "testuser" e "testpass" são as que definimos quando criamos a conta de usuário OZX no passo 6 deste tutorial de SMS. (Figura 15)
Uma vez conectado ao Gateway de SMS, você está pronto para enviar seu primeiro SMS para seu cliente de API em C#.
Passo 8 - Enviar um SMS de teste
Envie uma mensagem SMS de teste clicando no botão "Novo" na barra de ferramentas do Ozeki no console de gerenciamento do Gateway de SMS. Ao enviar seu SMS de teste, você terá que definir um endereço de destinatário e o texto da mensagem. Na aba "Avançado", você também pode definir um ID de remetente, como um código curto de SMS ou um ID de remetente alfanumérico para seu SMS. (Figura 16)
Clique em OK para enviar o SMS de teste. Seu Gateway de SMS fornecerá os eventos relacionados ao envio do SMS, e você receberá um ID de mensagem. Você pode notar a string GUID na última linha da Figura 17.
Após o SMS ser enviado pelo usuário admin, ele é recebido pela conta de usuário OZX chamada "testuser". Esta conta encaminha o SMS para o cliente de SMS em C# pela rede. O cliente de SMS em C# recebe o texto pelo link TCP/IP estabelecido pelo método "connect". Se você definiu um ponto de interrupção no evento "OnMessageReceived", é aqui que seu ponto de interrupção pausará a execução do programa.
Passo 9 - Receber SMS no console C#
Leia a linha de mensagem recebida no console C#. Você verá que o SMS foi enviado por admin@localhost para o número de telefone +361111111. O cliente de API de SMS em C# recebeu o texto 'Hello c sharp client' (Figura 18). A mensagem de texto foi apresentada ao cliente C# na forma de um evento C#. O manipulador de eventos "OnMessageReceived" é chamado quando este evento é acionado, e a mensagem foi colocada no parâmetro de entrada do método "OzMessageReceived".
A próxima coisa que você deve fazer é verificar o log no Gateway de SMS.
Passo 10 - Visualizar os logs no Gateway de SMS
Abra a página de detalhes do "testuser" clicando no link "testuser" no painel do Ozeki SMS Gateway. Isso nos levará ao log de eventos da conta "testuser". Neste log de eventos, esperamos ver a comunicação que ocorre entre o cliente de SMS em C# e o Gateway de SMS. Também esperamos ver a mensagem SMS recebida no log de comunicação. (Figura 19)
Localize a linha "Received." na aba de eventos do "testuser". Você verá o SMS recebido pelo cliente de SMS em C# nesta linha. Você pode ver a data e hora do evento e os detalhes da mensagem. Abaixo da entrada de log legível, você verá o log de comunicação do protocolo OZX. Este log permite que você depure a comunicação caso algum problema ocorra. (Figura 20)
Receber uma mensagem de texto da rede móvel
Nos passos acima simulamos uma mensagem recebida. O usuário admin enviou uma mensagem que foi encaminhada para o exemplo de SMS em C#. O próximo passo é conectar o sistema à rede móvel. Para isso, você tem várias opções. Pode conectar-se a um provedor de serviços de SMS baseado na Internet usando uma ozeki 10 sms gateway no seu telefone Android e usar a conexão SMS integrada do gateway SMS para Android. (Figura 21)
Para fazer a solução acima funcionar com um telefone Android, tudo o que precisa fazer é criar uma rota de entrada na tabela de roteamento SMS do Ozeki. Você precisa criar esta rota entre a conexão da rede móvel e o usuário da API SMS em C# (testuser). Para encontrar o melhor método de conexão à rede móvel para o seu projeto, consulte nosso guia de como conectar seu gateway SMS à rede móvel. (Figura 22)
Resumindo
Esta foi uma lista de instruções longa e muito detalhada para ajudá-lo a começar a desenvolver um projeto de SMS em C# que pode receber mensagens SMS. Se começar a usar esta solução, descobrirá rapidamente que ela é muito boa se desejar receber mensagens SMS prontamente através de várias conexões de rede móvel. Esta solução funciona quer queira receber SMS através de um telefone móvel Android ou através de uma ligação SMS por IP, como uma conexão de cliente SMPP.
More information
- Como enviar SMS do C#
- Receber SMS em C#
- API de SMS em C# conectar para enviar SMS
- API de SMS em C# - desconectar do gateway de SMS
- API de SMS em C# - manter conexão de SMS ativa
- API de SMS em C# - enviar uma mensagem de texto
- API de SMS em C# - SMS aceito para entrega
- API de SMS em C# - SMS não aceito para entrega
- API de SMS em C# - submetido
- API de SMS em C# - falha ao submeter
- API de SMS em C# - relatório de entrega bem-sucedido
- API de SMS em C# - relatório de falha na entrega
- API de SMS em C# - ID de remetente alfanumérico
- API de SMS em C# como usar código curto como ID de remetente
- API de SMS em C# classe de mensagem de texto