Como enviar SMS a partir de Objective C
A maneira mais simples de enviar SMS a partir de Objective C é usar a API HTTP/Rest de SMS integrada do Ozeki SMS Gateway. Ao usar esta API, você enviará mensagens SMS através de uma solicitação HTTP Post para o gateway de SMS. A solicitação HTTP Post irá conter uma mensagem formatada em formato json. O gateway de SMS irá enviar este SMS para o telefone do destinatário e retornará uma resposta HTTP 200 OK para a sua solicitação.
O exemplo de código Objective C para SMS abaixo demonstra como você pode enviar SMS usando a API HTTP Rest de SMS do Ozeki SMS Gateway com a biblioteca Ozeki.Libs.Rest em Objective C. Esta biblioteca é fornecida gratuitamente, e você pode usá-la e modificá-la em qualquer um dos seus projetos.
SendSms.m#import <Foundation/Foundation.h> #import "Ozeki.Libs.Rest.h" int main(int argc, const char * argv[]) { Configuration * configuration = [ [ Configuration alloc ] init]; [ configuration setUsername : @"http_user" ]; [ configuration setPassword : @"qwe123" ]; [ configuration setApiUrl : @"http://127.0.0.1:9509/api" ]; // Você deve substituir o endereço IP pelo IP do computador que tem o SMS Gateway instalado! Message * msg = [ [ Message alloc ] init ]; [ msg setToAddress : @"+36201111111" ]; [ msg setText : @"Hello world!" ]; MessageApi * api = [ [ MessageApi alloc ] initWithConfiguration : configuration ]; MessageSendResult * result = [ api SendMessage: msg ]; NSLog(@"%@", result); return 0; }
Como usar o exemplo de SMS em Objective C:
Este exemplo de SMS em Objective C pode ser usado em qualquer aplicação core Objective C. Para usá-lo, você deve adicionar o arquivo de cabeçalho Ozeki.Libs.Rest.h e o arquivo de implementação Ozeki.Libs.Rest.m ao seu projeto. Após adicionar a referência do projeto, você deve colocar a diretiva using Ozeki.Libs.Rest; na seção de cabeçalho do seu código-fonte Objective C. 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 enviar o SMS para o gateway de SMS. O gateway de SMS encaminhará sua mensagem para a rede móvel através de uma conexão wireless ou pela Internet.
Baixar SendSMS.m
O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: SendSms.m.zip (59.6Kb)
O arquivo SendSms.m.zip contém a biblioteca Ozeki.Libs.Rest, que fornece todas as ferramentas necessárias para enviar e receber mensagens SMS. Você também encontrará o projeto SendSms no zip, que contém o código de exemplo para mostrar como enviar um SMS. Este código de exemplo está listado abaixo.
Para enviar SMS a partir de Objective C:
- Instale um usuário de API HTTP em uma máquina Windows
- Ative "Log communication events" na aba Advanced
- Configure o Xcode
- Baixe e extraia o arquivo SendSms.m.zip
- Abra o arquivo SendSms.xcodeproj no Xcode
- Inicie o aplicativo Ozeki SMS Gateway na sua máquina Windows
- Execute o código Objective C SendSms.m no Xcode
- Verifique os logs para ver se o SMS foi enviado
Para poder enviar SMS a partir de Objective C, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código Objective C no Visual Studio. Após a instalação, o próximo passo é conectar o Ozeki SMS Gateway à rede móvel. Você pode enviar um SMS de teste a partir da interface gráfica do Ozeki para verificar se a sua conexão com a rede móvel está funcionando. O passo final para preparar o 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 configurar o ambiente, você pode executar o seu código Objective C.
URL da API HTTP para enviar SMS a partir de Objective CPara enviar SMS a partir de Objective C, seu código Objective C 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 de SMS em Objective C 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
Autenticação HTTP para enviar SMS a partir de Objective C
Para autenticar o cliente de SMS em Objective C, você precisa enviar o nome de usuário e senha em uma string codificada em base64 para o servidor em uma requisição HTTP. O formato utilizado é: base64(nome de usuário+":"+senha). Em Objective C, você pode usar o seguinte código para fazer essa codificação:
NSString * username_password = [ NSString stringWithFormat : @"%@:%@", username, password ]; NSData * encode_data = [username_password dataUsingEncoding:NSUTF8StringEncoding]; NSString * username_password_encoded = [encode_data base64EncodedStringWithOptions : 0]; return [ NSString stringWithFormat : @"Basic %@", username_password_encoded ];
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 requisição HTTP para enviar SMS a partir de Objective C
Para enviar as mensagens SMS, você precisa incluir as seguintes linhas como cabeçalhos na requisiçã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==
Requisição HTTP para enviar SMS a partir de Objective C
Para submeter o SMS, sua aplicação em Objective C enviará uma requisição HTTP semelhante à mostrada abaixo. Observe que esta requisição contém uma parte de cabeçalho HTTP e uma parte de corpo HTTP. O corpo HTTP é uma string de dados codificada em JSON. Ela contém o número do destinatário e o texto da mensagem.
POST /api?action=sendmsg HTTP/1.1 Connection: keep-alive Content-Length: 332 Content-Type: application/json Accept: application/json Accept-Encoding: gzip, deflate Accept-Language: en-gb Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 192.168.0.14:9509 User-Agent: SendSms.m (unknown version) CFNetwork/1220.1 Darwin/20.3.0 { "messages": [ { "is_view_report_requested": false, "create_date": "2021-07-23T07:54:47", "message_id": "8de52a43-b6e4-4aa9-8198-54d54f252a83", "time_to_send": "2021-07-23T07:54:47", "valid_until": "2021-07-30T07:54:47", "is_submit_report_requested": false, "to_address":"+36201111111", "text": "Hello world!", "is_delivery_report_requested": false } ] }
Resposta HTTP recebida pelo exemplo de SMS em Objective C
Assim que o gateway SMS receber esta requisição, ele gerará uma resposta HTTP. A resposta HTTP conterá um código de status, para indicar se a submissão do SMS foi bem-sucedida ou não. Ela também retornará uma estrutura codificada em JSON para fornecer detalhes úteis sobre a submissão da mensagem.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.123 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Thu, 22 Jul 2021 12:17:05 GMT Server: 10/10.3.123 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "8de52a43-b6e4-4aa9-8198-54d54f252a83", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-07-23 07:54:47", "valid_until": "2021-07-30 07:54:47", "time_to_send": "2021-07-23 07:54:47", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Conecte seu gateway SMS à rede móvel e crie uma conta de usuário HTTP API
Assumimos que você já instalou o Ozeki SMS Gateway, e que você conectou-o à rede móvel. Para poder enviar SMS para um telefone móvel a partir de Objective C, você precisa configurar uma conta de usuário HTTP API no Ozeki SMS Gateway.
Como configurar uma conta de usuário HTTP API (Tutorial em vídeo)
Neste vídeo, mostraremos como você pode configurar uma nova conta de usuário HTTP API no Ozeki SMS Gateway. Ele começará com a página principal do Ozeki SMS Gateway e o guiará até ter uma conta de usuário funcional. Você aprenderá como fornecer uma senha para a conta de usuário e como habilitar o registro de logs. Este vídeo tem apenas 30 minutos, mas é muito detalhado. Você não terá problemas para entendê-lo. No vídeo, estamos usando o Ozeki SMS Gateway, que possui uma interface gráfica muito intuitiva.
Como enviar SMS a partir de Objective C usando a API de SMS em Objective C (Tutorial em vídeo)
Este vídeo mostra como baixar o arquivo SendSms.m.zip desta página e como baixar seu conteúdo no Xcode. Se assistir ao vídeo, você notará que o conteúdo do SendSms.m.zip é colocado na Área de Trabalho. Você também verá que clicamos duas vezes no arquivo de projeto SendSms.xcodeproj para abrir o projeto SendSms. O Xcode mostrará alguns avisos porque o arquivo vem da web. Basta clicar em OK para ignorar esses avisos.
Exemplo de SMS em Objective C: SendSms.xcodeproj
O código de exemplo abaixo faz parte do projeto Xcode SendSms.xcodeproj. Um projeto Xcode Nesta solução, há três arquivos neste projeto: SendSms.m, Ozeki.Libs.Rest.m, Ozeki.Libs.Rest.h.
Após o envio do SMS, é uma boa ideia verificar no seu gateway 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.
Enviando SMS com o código Objective C acima (Tutorial em vídeo)Neste vídeo, você pode aprender como executar seu código e verificar os eventos ocorridos no usuário. Começará com uma aba de eventos vazia e o guiará até uma aba com registros. Você sempre pode obter mais detalhes sobre sua mensagem e conexão na aba de eventos do usuário. Mostrará como abrir a aba de eventos, como enviar a mensagem e como verificar a aba de eventos novamente. Este vídeo tem pouco mais de 1 minuto e é fácil de entender. Usamos o Ozeki SMS Gateway para registrar cada detalhe do procedimento de envio.
Como verificar se o SMS foi enviado para a rede móvel
O passo final para verificar o procedimento é conferir os logs da conexão com a rede móvel. Pode ser necessário ativar o registro na configuração da conexão antes de enviar a mensagem para ver os logs. Se o registro estiver ativado, você verá o número de telefone e o texto da mensagem que enviou.
Como testar se a solicitação foi aceita pelo cliente SMPP (Tutorial em vídeo)Neste vídeo, verificaremos o registro do evento de envio na aba de Eventos do cliente SMPP. Você aprenderá como acessá-la e o que procurar no log. O vídeo tem apenas 18 segundos, então não terá problemas para acompanhar. Também usamos o Ozeki SMS Gateway aqui.
Mensagem SMS recebida no celular (Tutorial em vídeo)
No último vídeo, você poderá ver como é o recebimento de uma mensagem enviada do Ozeki SMS Gateway. Você verá um telefone IOS recebendo uma notificação sobre a mensagem SMS que acabou de enviar. O vídeo tem apenas 8 segundos e é bem detalhado.
Resumo
Este guia deu uma visão sobre o envio de SMS em Objective C com a ajuda do Ozeki SMS Gateway. Se o artigo foi estudado com atenção, enviar mensagens em Objective C é muito simples. É importante destacar que o Ozeki SMS Gateway desempenha um papel enorme nesse processo, pois faz a transmissão entre o programador e o receptor do SMS. O Ozeki SMS Gateway é muito confiável e pode ser gerenciado com facilidade.
Continue seus estudos na página de tutoriais da Ozeki, onde você pode ler mais sobre tópicos como envio de múltiplos SMS e agendamento de SMS em Objective C.
A única coisa a fazer agora é baixar o Ozeki SMS Gateway e começar a trabalhar!
More information
- Enviar SMS em Objective-C com a API REST HTTP (exemplo de código)
- Enviar múltiplos SMS em Objective-C com a API REST HTTP (exemplo de código)
- Agendar SMS em Objective-C com a API REST HTTP (exemplo de código)
- Receber SMS em Objective C com a API REST HTTP (exemplo de código)
- Excluir SMS em Objective C com a API REST HTTP (exemplo de código)
- Como baixar a última biblioteca de SMS em Objective C do Github