Jak zaplanować wysłanie SMS-a w Objective C

Najprostszym sposobem na wysłanie zaplanowanego SMS-a z Objective-C jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Kiedy używasz tego API, wysyłasz 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ść na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.

jak zaplanować wysłanie sms-a w objective c
Rysunek 1 - Jak zaplanować wysłanie SMS-a w Objective C

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

Poniższy przykładowy kod SMS w Objective-C demonstruje, jak możesz wysyłać 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 jej używać oraz modyfikować w dowolnym ze swoich projektów.

SendScheduledSms.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 ];
    
    Message * msg = [ [ Message alloc ] init ];
    [ msg setToAddress : @"+36201111111" ];
    [ msg setText : @"Hello world 1" ];
    
    NSDateFormatter * dateFormat = [ [ NSDateFormatter alloc ] init ];
    [ dateFormat setDateFormat : @"yyyy-MM-dd HH:mm:ss" ];
    
    [ msg setTimeToSend: [ dateFormat dateFromString : @"2021-07-23 10:00:00" ] ] ;
    
    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ż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 na używanie klas dostarczonych przez bibliotekę Ozeki.Libs.Rest. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi do wysłania SMS-a do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej albo przez połączenie bezprzewodowe, albo przez Internet.

Pobierz SendScheduledSms.m

Kod źródłowy omówiony w tym artykule może być pobrany, używany i modyfikowany bezpłatnie.
Pobierz: SendScheduledSms.m.zip (46.2Kb)

Co znajduje się w pliku SendScheduledSms.m?

Plik SendScheduledSms.m 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 SendScheduledSms w zipie, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

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

Jak wysłać zaplanowanego SMS-a z Objective-C (Szybkie kroki)

Aby wysłać zaplanowanego SMS-a z Objective-C:

  1. Zainstaluj użytkownika HTTP API na komputerze z Windows
  2. Włącz Logowanie zdarzeń komunikacyjnych na karcie Zaawansowane
  3. Skonfiguruj Xcode
  4. Pobierz, a następnie wypakuj plik SendScheduledSms.m.zip
  5. Otwórz plik SendScheduledSms.xcodeproj w Xcode
  6. Uruchom aplikację Ozeki SMS Gateway na swoim komputerze z Windows
  7. Uruchom kod Objective C SendScheduledSms.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 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, Twój kod Objective-C będzie musiał wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Zauważ, ż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 dołączyć następujące linie jako nagłówki w żądaniu HTTP. Zauważ, że zawieramy typ zawartości i nagłówek Autoryzacji.

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

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

Aby przesłać wiadomości 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: 333
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: SendScheduledSms.m (unknown version) CFNetwork/1220.1 Darwin/20.3.0
 
{
	"messages": [
		{
			"is_view_report_requested": false,
			"create_date": "2021-07-23T10:16:59",
			"message_id": "cab9eb77-309b-4aa4-99ba-cdac32388f7d",
			"time_to_send": "2021-07-23T10:20:00",
			"valid_until": "2021-07-30T10:16:59",
			"is_submit_report_requested": false,
			"to_address": "+36201111111",
			"text": "Hello world 1",
			"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 zostało zakończone 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: Fri, 23 Jul 2021 09:58:42 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": "cab9eb77-309b-4aa4-99ba-cdac32388f7d",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-23 10:16:59",
	      "valid_until": "2021-07-30 10:16:59",
	      "time_to_send": "2021-07-23 10:20:00",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}

Przykład SMS w Objective-C: SendScheduledSms.xcodeproj

Jak pobrać przykładowy kod (Samouczek wideo)

W tym filmie zobaczysz, jak można pobrać kod źródłowy do wysyłania zaplanowanych SMS-ów. Rozpocznie się od strony pobierania i przeprowadzi Cię przez cały proces aż do otwarcia projektu. Dowiesz się, jak go pobrać i jakiego programu użyć do otwarcia projektu. Film trwa tylko 28 sekund, ale jest bardzo szczegółowy, więc nie będziesz miał problemu z wykonaniem kroków. Nie trać więcej czasu. Zacznij wysyłać SMS-y!

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

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

jak wysłać zaplanowane sms używając objective c
Rysunek 3 - SendScheduledSms.xcodeproj

Jak użyć kodu (Samouczek wideo)

W tym filmie pokażemy Ci, jak używać projektu SendScheduledSMS. Rozpocznie się od pustej zakładki zdarzeń w Ozeki SMS Gateway i przeprowadzi Cię przez cały proces aż do zakładki zdarzeń z logiem pierwszej wysłanej wiadomości SMS. Dowiesz się, jak otworzyć zakładkę zdarzeń i jak uruchomić kod wysyłania zaplanowanych SMS-ów w Xcode. Ten film jest świetny, ponieważ trwa tylko 1 minutę, ale zawiera wszystkie potrzebne informacje.

Wideo 2 - Jak używać projektu SendScheduledSms.xcodeproj (Samouczek wideo)

Podsumowanie

W tym artykule wyjaśniono, jak zaplanować wiadomości w Objective C. Jest to bardzo przydatna funkcja, jeśli chcesz wysyłać SMS-y o określonej porze. To rozwiązanie pomaga Tobie lub Twojej firmie być bardziej przyjaznym dla klientów, ponieważ wiadomości będą dostarczane, gdy klienci nie są zajęci. Warto zauważyć, że Ozeki SMS Gateway działa w każdym kraju i może wysyłać oraz odbierać SMS-y przez różne połączenia mobilne.

Upewnij się, że lektura nie kończy się tutaj, odwiedź stronę z tutorialami Ozeki, gdzie znajdziesz więcej informacji na tematy takie jak usuwanie w Objective C.

Teraz jedyne, co pozostaje, to pobrać Ozeki SMS Gateway i zacząć pracę!

More information