Jak odbierać SMS-y w Objective C

Najprostszym sposobem na odbieranie SMS-ów w Objective-C jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, możesz wysyłać wiadomości SMS, wysyłając żądanie HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość w formacie JSON. Bramka SMS wyśle tę wiadomość na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.

jak odbierać sms w objective c
Rysunek 1 - Jak odbierać SMS-y w Objective C

Kod Objective-C do odbierania SMS-ów na telefon

Poniższy przykładowy kod SMS w Objective-C demonstruje, jak można odbierać SMS-y, korzystając z interfejsu HTTP REST SMS API Ozeki SMS Gateway przy użyciu biblioteki Ozeki.Libs.Rest. Ta biblioteka jest dostarczana bezpłatnie i możesz ją używać oraz modyfikować w dowolnym projekcie.

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;
}

Jak używać przykładu SMS w Objective-C:

Ten przykład SMS w Objective C może być używany w dowolnej aplikacji core Objective C. Aby go użyć, musisz dodać plik nagłówkowy Ozeki.Libs.Rest.h i plik implementacyjny Ozeki.Libs.Rest.m do swojego projektu. Po dodaniu referencji projektu, musisz umieścić dyrektywę using Ozeki.Libs.Rest; w sekcji nagłówkowej swojego kodu źródłowego Objective C. To pozwoli Ci używać klas dostarczonych przez bibliotekę Ozeki.Libs.Rest. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi, aby wysłać SMS do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej przez połączenie bezprzewodowe lub przez Internet.

Pobierz ReceiveSms.m

Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: ReceiveSms.m.zip (45.2Kb)

Co znajduje się w pliku ReceiveSms.m?

Plik ReceiveSms.m zawiera bibliotekę Ozeki.Libs.Rest, która dostarcza wszystkich narzędzi niezbędnych do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również projekt ReceiveSms w archiwum zip, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

katalog receive sms m
Rysunek 2 - Co znajduje się w ReceiveSms.m.zip

Jak odbierać SMS-y w Objective-C (Szybkie kroki)

Aby odbierać SMS-y w Objective-C:

  1. Zainstaluj użytkownika HTTP API na komputerze z systemem Windows
  2. Włącz opcję Loguj zdarzenia komunikacyjne w zakładce Zaawansowane
  3. Skonfiguruj Xcode
  4. Pobierz, a następnie rozpakuj plik ReceiveSms.m.zip
  5. Otwórz plik ReceiveSms.xcodeproj w Xcode
  6. Uruchom aplikację Ozeki SMS Gateway na swoim komputerze z systemem Windows
  7. Uruchom kod Objective C ReceiveSms.m w Xcode
  8. Sprawdź logi, aby zobaczyć, czy SMS został wysłany

Zainstaluj Ozeki SMS Gateway i utwórz użytkownika HTTP API

Aby móc wysyłać SMS-y z Objective-C, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Objective-C w Visual Studio. Po instalacji kolejnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMS-a z interfejsu Ozeki, aby sprawdzić, czy Twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest utworzenie użytkownika HTTP SMS API. Utwórz użytkownika z nazwą "http_user" i hasłem "qwe123", aby przykład działał bez modyfikacji.

Po skonfigurowaniu środowiska możesz uruchomić swój kod Objective-C.

URL API HTTP do wysyłania SMS-ów z Objective-C

Aby wysyłać SMS-y z Objective-C, Twoja aplikacja Objective-C będzie musiała wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Pamiętaj, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP Twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowany na tym samym komputerze, na którym działa aplikacja SMS w Objective-C, może to być 127.0.0.1. Jeśli jest zainstalowany na innym komputerze, powinien to być adres IP tego komputera.

http://127.0.0.1:9509/api?action=rest

Uwierzytelnianie HTTP do wysyłania SMS z Objective-C

Aby uwierzytelnić klienta SMS w Objective-C, należy wysłać nazwę użytkownika i hasło w postaci zakodowanej w base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W Objective-C możesz użyć następującego kodu do wykonania tego kodowania:

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 ];

Na przykład, jeśli zakodujesz nazwę użytkownika 'http_user' i hasło 'qwe123', otrzymasz następujący zakodowany ciąg base64: aHR0cF91c2VyOnF3ZTEyMw==. Aby wysłać

Nagłówek żądania HTTP do wysyłania SMS z Objective-C

Aby wysłać wiadomości SMS, należy uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Zwróć uwagę, że zawieramy typ zawartości i nagłówek Authorization.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Żądanie HTTP do wysyłania SMS z Objective-C

Aby przesłać wiadomości SMS, Twoja aplikacja Objective-C wyśle żądanie HTTP podobne do poniższego. Zwróć uwagę, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w formacie JSON. Zawiera numer odbiorcy i tekst wiadomości.

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

Odpowiedź HTTP otrzymana przez przykład SMS w Objective-C

Gdy brama SMS otrzyma to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, wskazujący, czy żądanie wysłania SMS zakończyło się sukcesem, czy nie. Zwróci również strukturę zakodowaną w JSON, aby dostarczyć przydatne informacje dotyczące przesłania wiadomości.

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"
	        }
	      ]
	    }
	  ]
	}
}

Jak pobrać projekt (Samouczek wideo)

W tym filmie pokazujemy, jak można pobrać pliki projektu wymagane do odbierania wiadomości SMS w Objective-C. Zaczyna się od tej strony samouczka i kończy otwartym kodem źródłowym. Dowiesz się, gdzie kliknąć, aby pobrać pliki i czego użyć podczas otwierania kodu do edycji. Film trwa tylko 22 sekundy, ale zawiera wszystkie informacje potrzebne do odbierania wiadomości SMS w Objective-C.

Wideo 1 - Jak pobrać i otworzyć rozwiązanie powyżej (Samouczek wideo)

Przykładowy kod poniżej jest częścią projektu ReceiveSms.xcodeproj. W archiwum zip znajduje się tylko jeden projekt: ReceiveSms.xcodeproj, oraz trzy pliki: ReceiveSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.

jak odbierać sms za pomocą objective c
Rysunek 3 - ReceiveSms.xcodeproj

Jak korzystać z projektu (Samouczek wideo)

W kolejnym filmie prezentujemy, jak używać kodu i co się dzieje, gdy go uruchomisz. Film trwa 55 sekund, ale zawiera wszystkie informacje potrzebne do rozpoczęcia pracy z projektem. Rozpocznie się od logowania do Ozeki SMS Gateway i przeprowadzi Cię przez cały proces aż do odbioru wiadomości. Nauczysz się, jak otworzyć i uruchomić kod oraz sprawdzić logi po jego wykonaniu. Ozeki SMS Gateway oferuje doskonałe wrażenia użytkownika dzięki intuicyjnemu i łatwemu do opanowania interfejsowi graficznemu.

Wideo 2 - Jak korzystać z projektu ReceiveSms.xcodeproj (Samouczek wideo)

Podsumowanie

Ten przewodnik miał na celu wyjaśnienie kroków odbierania SMS-ów w Objective C z pomocą Ozeki SMS Gateway. Po przeczytaniu tego artykułu przesyłanie wiadomości z skrzynki odbiorczej do programu w Objective C nie powinno sprawiać żadnych problemów. Dzięki temu możesz mieć pewność, że wiadomości SMS trafią do właściwego miejsca. Ozeki SMS Gateway można pobrać z naszej strony internetowej i korzystać z niego bezpłatnie w okresie próbnym.

Kontynuuj czytanie na stronie samouczków Ozeki, gdzie znajdziesz więcej informacji na tematy takie jak planowanie SMS-ów w Objective C.

Jedyne, co teraz pozostaje, to pobrać Ozeki SMS Gateway i rozpocząć pracę!

More information