Como receber SMS do Objective C

A maneira mais simples de receber SMS do Objective-C é usar a API HTTP/Rest de SMS integrada do Ozeki SMS Gateway. Quando você usa essa API, enviará mensagens SMS fazendo uma solicitação HTTP Post para o gateway de SMS. A solicitação HTTP Post conterá uma mensagem formatada em formato json. O gateway de SMS enviará esse SMS para o telefone do destinatário e retornará uma resposta HTTP 200 OK para sua solicitação.

como receber sms do objective c
Figura 1 - Como receber SMS do Objective C

Código Objective-C para receber sms no celular

O exemplo de código SMS em Objective-C abaixo demonstra como você pode receber SMS usando a API de SMS rest http do Ozeki SMS Gateway com a biblioteca Ozeki.Libs.Rest. Esta biblioteca é fornecida gratuitamente, e você pode usá-la e modificá-la em qualquer um de seus projetos.

ReceiveSms.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://192.168.0.14:9509/api" ];
    
    MessageApi * api = [ [ MessageApi alloc ] initWithConfiguration : configuration ];
    
    MessageReceiveResult * result = [ api DownloadIncoming ];
    
    NSLog(@"%@", result);
    
    for (Message * message in result.messages)
    {
        NSLog(@"%@", message);
    }
    
    return 0;
}

Como usar o exemplo de SMS em Objective-C:

Este exemplo de SMS em Objective C pode ser usado em qualquer aplicativo principal 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 a referência do projeto ser adicionada, 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 por meio de uma conexão wireless ou pela Internet.

Baixar ReceiveSms.m

O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: ReceiveSms.m.zip (45.2Kb)

O que está no arquivo ReceiveSms.m?

O arquivo ReceiveSms.m 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 ReceiveSms no zip, que contém o código de exemplo para mostrar como enviar um SMS. Este código de exemplo está listado abaixo.

diretório receive sms m
Figura 2 - O que está dentro de ReceiveSms.m.zip

Como receber sms do Objective-C (Passos rápidos)

Para receber sms do Objective-C:

  1. Instale um usuário de API HTTP em uma máquina Windows
  2. Ative Log de eventos de comunicação na guia Avançado
  3. Configure o Xcode
  4. Baixe e extraia o arquivo ReceiveSms.m.zip
  5. Abra o arquivo ReceiveSms.xcodeproj no Xcode
  6. Inicie o aplicativo Ozeki SMS Gateway em sua máquina Windows
  7. Execute o código Objective C ReceiveSms.m no Xcode
  8. Verifique os logs para ver se o SMS foi enviado
Instale o Ozeki SMS Gateway e crie um usuário de API HTTP

Para poder enviar SMS do 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 da GUI 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 de SMS. Crie um usuário com o nome de usuário "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 Objective-C.

URL da API HTTP para enviar sms do Objective-C

Para enviar SMS do 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 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 enviar as mensagens 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.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Connection: keep-alive
Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: en-gb
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 192.168.0.14:9509
If-Modified-Since: Fri, 23 Jul 2021 11:01:18 GMT
User-Agent: ReceiveSms.m (unknown version) CFNetwork/1220.1 Darwin/20.3.0

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 o envio do SMS foi bem-sucedido ou não. Ela 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: Fri, 23 Jul 2021 11:38:29 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": "85583c80-68f8-a743-bdd4-a477dcce24c1",
	      "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-23 12:04:54",
	      "valid_until": "2021-07-30 12:04:54",
	      "time_to_send": "2021-07-23 12:04:54",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "17f48ae0-ca34-2393-876a-e36446f51df1",
	      "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-23 12:04:54",
	      "valid_until": "2021-07-30 12:04:54",
	      "time_to_send": "2021-07-23 12:04:54",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "e8fa747e-8b21-08e3-9cf4-f30c2ab9074d",
	      "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-23 12:04:54",
	      "valid_until": "2021-07-30 12:04:54",
	      "time_to_send": "2021-07-23 12:04:54",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}

Como baixar o projeto (Tutorial em vídeo)

Neste vídeo, mostramos como você pode baixar os arquivos do projeto necessários para receber mensagens SMS em Objective-C. Ele começa com esta página de tutorial e termina com o código-fonte aberto. Você aprenderá onde clicar para baixar os arquivos e o que usar ao abrir o código para edição. O vídeo tem apenas 22 segundos, mas contém todas as informações necessárias para receber mensagens SMS em Objective-C.

Vídeo 1 - Como baixar e abrir a solução acima (Tutorial em vídeo)

O código de exemplo abaixo faz parte do projeto ReceiveSms.xcodeproj. No zip há apenas um projeto: ReceiveSms.xcodeproj, e três arquivos: ReceiveSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.

como receber sms usando objective c
Figura 3 - ReceiveSms.xcodeproj

Como usar o projeto (Tutorial em vídeo)

No próximo vídeo, apresentamos a você como usar o código e o que acontece quando você o utiliza. O vídeo tem 55 segundos de duração, mas contém todas as informações necessárias para começar a trabalhar com o projeto. Ele começará com o login no Ozeki SMS Gateway e o levará até as mensagens recebidas. Você aprenderá como abrir e executar o código e verificar o log após isso. O Ozeki SMS Gateway oferece uma ótima experiência do usuário devido à interface gráfica intuitiva e fácil de aprender.

Vídeo 2 - Como usar o projeto ReceiveSms.xcodeproj (Tutorial em vídeo)

Conclusão

Este guia teve como objetivo explicar as etapas de recebimento de SMS em Objective C com a ajuda do Ozeki SMS Gateway. Após ler este artigo, a transferência de mensagens da caixa de entrada para um programa em Objective C não deve causar nenhum tipo de problema. Ao fazer isso, você pode garantir que as mensagens SMS estejam em seu destino correto. O Ozeki SMS Gateway pode ser baixado em nosso site e pode ser usado gratuitamente durante um período de teste.

Continue lendo na página de tutoriais da Ozeki, onde mais informações podem ser encontradas sobre tópicos como agendamento de SMS em Objective C.

A única coisa a fazer agora é baixar o Ozeki SMS Gateway e começar a trabalhar!

More information