Como receber SMS do R
A maneira mais simples de receber SMS do R é usar a API HTTP/Rest de SMS integrada do Ozeki SMS Gateway. Quando você usa essa API, receberá mensagens SMS enviando uma solicitação HTTP Get para o gateway de SMS. A solicitação HTTP Get conterá uma pasta. O gateway de SMS enviará as mensagens SMS para o cliente e retornará uma resposta HTTP 200 OK para sua solicitação.
O exemplo de código R para SMS abaixo demonstra como você pode receber um SMS usando a API HTTP Rest de SMS do Ozeki SMS Gateway com a biblioteca R Ozeki.Libs.Rest. Esta biblioteca é fornecida gratuitamente, e você pode usá-la e modificá-la em qualquer um de seus projetos.
ReceiveSms.Rlibrary(Ozeki.Libs.Rest) configuration <- Ozeki.Libs.Rest::Configuration$new( username = "http_user", password = "qwe123", api_url = "http://127.0.0.1:9509/api" ) api <- Ozeki.Libs.Rest::MessageApi$new(configuration) result <- api$download_incoming() print(result$to_string()) for (message in result$messages) { print(message$to_string()) }
Como usar o exemplo de SMS em R:
Este exemplo de SMS em R pode ser usado em qualquer aplicação R. Para usá-lo, você deve baixar a biblioteca Ozeki.Libs.Rest. Após o download da biblioteca, você precisa adicionar uma referência a ela no seu código-fonte R. Isso permitirá que você use as classes fornecidas pela biblioteca Ozeki.Libs.Rest. Você pode usar a classe Message para criar o SMS. Você pode usar a classe MessageApi para receber o SMS no gateway de SMS. O gateway de SMS encaminhará sua mensagem para a rede móvel por meio de uma conexão wireless ou pela Internet.
Baixar ReceiveSms.R
O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: ReceiveSms.R.zip (391B)
No ReceiveSms.R.zip você encontrará o arquivo ReceiveSms.R, que contém o código de exemplo para mostrar como receber um SMS. Este código de exemplo está listado abaixo.
Para enviar SMS do R:
- Instale um usuário de API HTTP
- Ative "Log communication events" na guia Advanced
- Configure o Visual Studio
- Baixe e extraia o arquivo ReceiveSms.R.zip
- Inicie o aplicativo Ozeki SMS Gateway
- Execute o código R ReceiveSms.R usando o prompt de comando
- Verifique os logs para ver se o SMS foi enviado
Para poder receber SMS do R, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código R em qualquer editor de texto, como o Bloco de Notas do Windows. Após a instalação, o próximo passo é conectar o Ozeki SMS Gateway à rede móvel. Você pode receber um SMS de teste da interface gráfica do Ozeki para verificar se sua conexão com a rede móvel está funcionando. O passo final para preparar seu ambiente é criar um usuário de API HTTP para SMS. Crie um usuário com o nome "http_user" e senha "qwe123" para fazer o exemplo funcionar sem modificações.
Após a configuração do ambiente, você pode executar seu código R.
URL da API HTTP para receber SMS do RPara enviar SMS do R, seu código R terá que fazer uma solicitação HTTP para o gateway de SMS. A URL da API é mostrada abaixo. Observe que o endereço IP (127.0.0.1) deve ser substituído pelo endereço IP do seu gateway de SMS. Se o Ozeki SMS Gateway estiver instalado no mesmo computador onde o aplicativo R está sendo executado, pode ser 127.0.0.1. Se estiver instalado em um computador diferente, deve ser o endereço IP desse computador.
http://127.0.0.1:9509/api?action=rest
Para autenticar o cliente de SMS em R, você precisa enviar o nome de usuário e senha em uma string codificada em base64 para o servidor em uma solicitação HTTP. O formato usado é: base64(nome de usuário+":"+senha). Em R, você pode usar o seguinte código para fazer essa codificação:
username_password <- paste(username, ":", password, sep="") username_password_encoded <- base64enc::base64encode(charToRaw(username_password)) return (paste("Basic", username_password_encoded, sep=" "))
Por exemplo, se você codificar o nome de usuário 'http_user' e a senha 'qwe123', você obterá a seguinte string codificada em base64: aHR0cF91c2VyOnF3ZTEyMw==. Para enviar
Cabeçalho da solicitação HTTP para receber SMS do RPara receber as mensagens SMS, você precisa incluir as seguintes linhas como cabeçalhos na solicitação HTTP. Observe que incluímos um tipo de conteúdo e um cabeçalho de Autorização.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Solicitação HTTP para receber SMS do R
Para enviar o SMS, sua aplicação em R enviará uma solicitação HTTP semelhante à mostrada abaixo. Observe que esta solicitação contém uma parte do cabeçalho HTTP, que contém todos os dados necessários para receber as mensagens de uma pasta específica.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Content-Type: application/json Accept: application/json Accept-Encoding: deflate, gzip Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 User-Agent: libcurl/7.64.1 r-curl/4.3.2 httr/1.4.2
Resposta HTTP recebida pelo exemplo de SMS em R
Assim que o gateway de SMS receber esta solicitação, ele gerará uma resposta HTTP. A resposta HTTP conterá um código de status para indicar se o envio do SMS foi bem-sucedido ou não. Também retornará uma estrutura codificada em JSON para fornecer detalhes úteis sobre o envio da mensagem.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.123 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Tue, 13 Jul 2021 15:29:23 GMT Server: 10/10.3.123 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "85a57d61-808a-481b-98d7-6136bf87dce0", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 3", "create_date": "2021-07-13 12:46:23", "valid_until": "2021-07-20 12:46:23", "time_to_send": "2021-07-13 12:46:23", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "76d551d6-1096-4943-ae50-1efc71049b6f", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 1", "create_date": "2021-07-13 12:46:23", "valid_until": "2021-07-20 12:46:23", "time_to_send": "2021-07-13 12:46:23", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "52af9742-f533-4056-a9cf-2fb8d4ef0613", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 2", "create_date": "2021-07-13 12:46:23", "valid_until": "2021-07-20 12:46:23", "time_to_send": "2021-07-13 12:46:23", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Como receber SMS do R usando a API de SMS em R (Tutorial em vídeo)
Este vídeo mostra como baixar o arquivo ReceiveSms.R.zip desta página. Se você assistir ao vídeo, notará que o conteúdo do ReceiveSms.R.zip é colocado na área de trabalho do Windows. Você também verá que executamos o prompt de comando para receber o SMS.
Exemplo de SMS em R: ReceiveSms.R
O código de exemplo abaixo faz parte do ReceiveSms.R.
Como verificar se o SMS foi aceito pelo usuário HTTP
Após o envio do SMS, é uma boa ideia verificar seu gateway de SMS para ver o que foi recebido. Você pode verificar o log abrindo os detalhes do usuário HTTP no console de gerenciamento do Ozeki SMS Gateway. O vídeo a seguir mostra o que procurar.
Conclusão
O objetivo deste guia foi mostrar as etapas de recebimento de SMS em R com o Ozeki SMS Gateway. Esta solução permite que você mova as mensagens da pasta Inbox para seu programa em R, para que essas mensagens possam ser coletadas em seu destino. O Ozeki SMS Gateway pode ser baixado do site da Ozeki e pode ser usado gratuitamente durante um período de teste.
Certifique-se de continuar lendo na página de tutoriais da Ozeki, onde há artigos sobre assuntos semelhantes, como agendamento de SMS em R.
A única coisa a fazer agora é baixar o Ozeki SMS Gateway e começar a trabalhar!
More information
- Enviar SMS com a API REST HTTP em R (exemplo de código)
- Enviar múltiplos SMS com a API REST HTTP em R (exemplo de código)
- Agendar SMS com a API REST HTTP em R (exemplo de código)
- Receber SMS com a API REST HTTP em R (exemplo de código)
- Excluir SMS com a API REST HTTP em R (exemplo de código)
- Como baixar a biblioteca R SMS mais recente do Github