Jak wysłać SMS z Objective C

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

jak wysłać sms z objective c
Rysunek 1 - Jak wysłać SMS z Objective C

Kod Objective C do wysyłania SMS-ów na telefon

Poniższy przykładowy kod SMS w Objective C demonstruje, jak możesz wysyłać SMS-y, używając interfejsu HTTP REST SMS API Ozeki SMS Gateway z biblioteką Ozeki.Libs.Rest dla Objective C. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym ze swoich projektów.

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" ];
    // Musisz zastąpić adres IP adresem komputera, na którym znajduje się Bramka SMS!
    
    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;
}
	

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

Ten przykład SMS w Objective C może być użyty w dowolnej aplikacji napisanej w 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 do 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 poprzez połączenie bezprzewodowe lub przez Internet.

Pobierz SendSMS.m

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

Co znajduje się w pliku SendSms.m.zip?

Plik SendSms.m.zip zawiera bibliotekę Ozeki.Libs.Rest, która daje Ci wszystkie narzędzia niezbędne do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również projekt SendSms, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

katalog send sms m
Rysunek 2 - Co znajduje się w SendSms.m.zip

Jak wysłać SMS z Objective C (Proste wskazówki)

Aby wysłać SMS z Objective C:

  1. Zainstaluj użytkownika HTTP API na komputerze z systemem Windows
  2. Włącz rejestrowanie zdarzeń komunikacyjnych na karcie Zaawansowane
  3. Skonfiguruj Xcode
  4. Pobierz, a następnie rozpakuj plik SendSms.m.zip
  5. Otwórz plik SendSms.xcodeproj w Xcode
  6. Uruchom aplikację Ozeki SMS Gateway na swoim komputerze z systemem Windows
  7. Uruchom kod Objective C SendSms.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 następnym 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 wysłać SMS z Objective C, Twój kod Objective C będzie musiał 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 zainstalowana 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 zainstalowana 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-ów 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-ów z Objective C

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

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

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

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

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

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, aby wskazać, czy żądanie wysłania SMS zakończyło się sukcesem, czy nie. Zwróci również strukturę zakodowaną w JSON, aby dostarczyć przydatne informacje o przesłaniu wiadomości.

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

Podłącz swoją bramkę SMS do sieci komórkowej i utwórz konto użytkownika HTTP API

Zakładamy, że masz już zainstalowaną bramkę SMS Ozeki i podłączyłeś ją do sieci komórkowej. Aby móc wysyłać SMS-y na telefon komórkowy z Objective C, musisz skonfigurować konto użytkownika HTTP API w bramce SMS Ozeki.

Jak skonfigurować konto użytkownika HTTP API (Samouczek wideo)

W tym filmie pokażemy, jak możesz skonfigurować nowe konto użytkownika HTTP API w bramce SMS Ozeki. Rozpocznie się od strony głównej bramki SMS Ozeki i przeprowadzi Cię przez cały proces, aż do utworzenia działającego konta użytkownika. Dowiesz się, jak ustawić hasło dla konta użytkownika i jak włączyć logowanie. Ten film trwa tylko 30 minut, ale jest bardzo szczegółowy. Nie będziesz miał problemu z jego zrozumieniem. W filmie używamy bramki SMS Ozeki, która oferuje bardzo intuicyjny interfejs graficzny.

Wideo 1 - Jak skonfigurować konto użytkownika HTTP API (Samouczek wideo)

Jak wysyłać SMS-y z Objective C za pomocą API SMS w Objective C (Samouczek wideo)

Ten film pokazuje, jak pobrać plik SendSms.m.zip z tej strony i jak zaimportować jego zawartość w Xcode. Jeśli obejrzysz film, zauważysz, że zawartość SendSms.m.zip jest umieszczana na Pulpicie. Zobaczysz również, że klikamy dwukrotnie na plik projektu SendSms.xcodeproj, aby otworzyć projekt SendSms. Xcode wyświetli kilka ostrzeżeń, ponieważ plik pochodzi z internetu. Po prostu kliknij OK, aby pominąć te ostrzeżenia.

Wideo 2 - Jak wysyłać SMS-y z Objective C za pomocą API SMS w Objective C (Samouczek wideo)

Przykład SMS w Objective C: SendSms.xcodeproj

Poniższy przykładowy kod jest częścią projektu Xcode SendSms.xcodeproj. W tym rozwiązaniu znajdują się trzy pliki w projekcie: SendSms.m, Ozeki.Libs.Rest.m, Ozeki.Libs.Rest.h.

Rysunek 3 - SendSms.xcodeproj

Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP

Po wysłaniu SMS-a warto sprawdzić w bramce SMS, co zostało odebrane. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP z konsoli zarządzania Ozeki SMS Gateway. Poniższy film pokazuje, na co zwrócić uwagę.

Wysyłanie SMS-a za pomocą powyższego kodu Objective C (Samouczek wideo)

W tym filmie możesz nauczyć się, jak uruchomić kod i sprawdzić zdarzenia związane z użytkownikiem. Zacznie się od pustej karty zdarzeń i przeprowadzi Cię przez cały proces aż do karty z rekordami. Zawsze możesz uzyskać więcej szczegółów o wiadomości i połączeniu w karcie zdarzeń użytkownika. Film pokazuje, jak otworzyć kartę zdarzeń, wysłać wiadomość i ponownie sprawdzić kartę zdarzeń. Ten film trwa nieco ponad minutę i jest łatwy do zrozumienia. Używamy Ozeki SMS Gateway, aby rejestrować każdy szczegół procedury wysyłania.

Wideo 3 - Jak wysłać SMS za pomocą powyższego kodu Objective C (Samouczek wideo)

Jak sprawdzić, czy SMS został wysłany do sieci komórkowej

Ostatnim krokiem weryfikacji procedury jest sprawdzenie logów połączenia z siecią komórkową. Może być konieczne włączenie logowania w konfiguracji połączenia przed wysłaniem wiadomości, aby zobaczyć logi. Jeśli logowanie jest włączone, zobaczysz numer telefonu i tekst wysłanej wiadomości.

Jak przetestować, czy żądanie zostało zaakceptowane przez klienta SMPP (Samouczek wideo)

W tym filmie sprawdzimy rekord zdarzenia wysyłania w karcie Zdarzeń klienta SMPP. Dowiesz się, jak uzyskać do niego dostęp i na co zwrócić uwagę w logu. Film trwa tylko 18 sekund, więc nie będziesz miał problemu z jego śledzeniem. Tutaj również używamy Ozeki SMS Gateway.

Wideo 4 - Jak przetestować, czy żądanie zostało zaakceptowane przez klienta SMPP (Samouczek wideo)

Odebranie wiadomości SMS na telefonie komórkowym (Samouczek wideo)

W ostatnim filmie zobaczysz, jak wygląda odbieranie wiadomości wysłanej z Ozeki SMS Gateway. Zobaczysz telefon IOS otrzymujący powiadomienie o wysłanej wiadomości SMS. Film trwa tylko 8 sekund i jest bardzo szczegółowy.

Wideo 5 - Jak wygląda odbieranie wiadomości SMS na telefonie komórkowym (Samouczek wideo)

Podsumowanie

Ten przewodnik przybliżył temat wysyłania SMS-ów w Objective C z pomocą Ozeki SMS Gateway. Jeśli artykuł został dokładnie przestudiowany, wiadomości w Objective C są bardzo proste. Należy podkreślić, że Ozeki SMS Gateway odgrywa ogromną rolę w tym procesie, ponieważ odpowiada za transmisję między programistą a odbiorcą SMS-a. Ozeki SMS Gateway jest bardzo niezawodny i łatwy w zarządzaniu.

Kontynuuj naukę na stronie samouczków Ozeki, gdzie można przeczytać więcej na tematy takie jak wysyłanie wielu SMS-ów i planowanie SMS-ów w Objective C.

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

More information