Jak naplánovat SMS v Objective C

Nejjednodušší způsob, jak odeslat naplánovanou SMS z Objective-C, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto API budete odesílat SMS zprávy vytvořením HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu ve formátu JSON. SMS brána poté odešle tuto SMS na telefon příjemce a vrátí HTTP 200 OK odpověď na váš požadavek.

jak naplánovat sms v objective c
Obrázek 1 - Jak naplánovat SMS v Objective C

Objective-C kód pro odeslání naplánované SMS na mobil

Níže uvedený příklad kódu Objective-C pro SMS ukazuje, jak můžete odesílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny Ozeki.Libs.Rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.

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 použít příklad Objective-C pro SMS:

Tento příklad Objective-C pro SMS lze použít v jakékoli základní aplikaci Objective-C. Pro použití je nutné přidat hlavičkový soubor Ozeki.Libs.Rest.h a implementační soubor Ozeki.Libs.Rest.m do vašeho projektu. Po přidání odkazu na projekt je třeba vložit direktivu using Ozeki.Libs.Rest; do hlavičkové části vašeho zdrojového kódu Objective-C. To vám umožní používat třídy poskytované knihovnou Ozeki.Libs.Rest. Třídu Message můžete použít k vytvoření SMS. Třídu MessageApi můžete použít k odeslání SMS na SMS bránu. SMS brána poté přepošle vaši zprávu do mobilní sítě buď prostřednictvím bezdrátového připojení, nebo přes internet.

Stáhnout SendScheduledSms.m

Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendScheduledSms.m.zip (46.2Kb)

Co obsahuje soubor SendScheduledSms.m?

Soubor SendScheduledSms.m obsahuje knihovnu Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné pro odesílání a přijímání SMS zpráv. V zipu také najdete projekt SendScheduledSms, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.

adresář send scheduled sms m
Obrázek 2 - Co je uvnitř SendScheduledSms.m.zip

Jak odeslat naplánovanou SMS z Objective-C (Rychlé kroky)

Pro odeslání naplánované SMS z Objective-C:

  1. Nainstalujte uživatele HTTP API na počítač s Windows
  2. Povolte Logování komunikačních událostí na kartě Pokročilé
  3. Nastavte Xcode
  4. Stáhněte a rozbalte soubor SendScheduledSms.m.zip
  5. Otevřete soubor SendScheduledSms.xcodeproj v Xcode
  6. Spusťte aplikaci Ozeki SMS Gateway na počítači s Windows
  7. Spusťte kód Objective-C SendScheduledSms.m v Xcode
  8. Zkontrolujte logy, zda byla SMS odeslána

Instalace Ozeki SMS Gateway a vytvoření uživatele HTTP API

Pro odesílání SMS z Objective-C je nejprve nutné nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj kód Objective-C v Visual studiu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z Ozeki GUI a ověřit, zda vaše připojení k mobilní síti funguje. Posledním krokem přípravy prostředí je vytvoření uživatele HTTP SMS API. Vytvořte uživatele s uživatelským jménem "http_user" a heslem "qwe123", aby příklad fungoval bez úprav.

Po nastavení prostředí můžete spustit svůj kód Objective-C.

URL HTTP API pro odesílání SMS z Objective-C

Pro odesílání SMS z Objective-C bude váš kód Objective-C muset vytvořit HTTP požadavek na SMS bránu. URL API je uvedeno níže. Poznámka: IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží aplikace Objective-C pro SMS, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by to být IP adresa tohoto počítače.

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

HTTP autentizace pro odesílání SMS z Objective-C

Pro autentizaci SMS klienta v Objective-C je třeba odeslat uživatelské jméno a heslo na server v HTTP požadavku jako řetězec zakódovaný v base64. Použitý formát je: base64(username+":"+password). V Objective-C můžete pro toto kódování použít následující kód:

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

Například pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', získáte následující řetězec zakódovaný v base64: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání

HTTP hlavička požadavku pro odesílání SMS z Objective-C

Pro odeslání SMS zpráv je třeba do HTTP požadavku zahrnout následující řádky jako hlavičky. Poznámka: zahrnujeme hlavičku Content-Type a Authorization.

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

HTTP požadavek pro odesílání SMS z Objective-C

Pro odeslání SMS zpráv bude vaše aplikace v Objective-C odesílat HTTP požadavek podobný tomuto níže. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část HTTP těla. HTTP tělo je řetězec dat zakódovaný v JSON. Obsahuje číslo příjemce a text zprávy.

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

HTTP odpověď přijatá příkladem SMS v Objective-C

Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný nebo ne. Také vrátí strukturu zakódovanou v JSON, která poskytne užitečné detaily o odeslání zprávy.

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

Příklad SMS v Objective-C: SendScheduledSms.xcodeproj

Jak stáhnout příkladový kód (Video návod)

V tomto videu uvidíte, jak můžete stáhnout zdrojový kód pro plánované odesílání SMS. Začíná na stránce pro stahování a provede vás až k otevření projektu. Dozvíte se, jak jej stáhnout a jaký program použít k otevření projektu. Video je dlouhé pouze 28 sekund, ale velmi podrobné, takže nebudete mít problém s následováním kroků. Neztrácejte více času. Začněte odesílat SMS!

Video 1 - Jak stáhnout a otevřít řešení výše (Video návod)

Příkladový kód níže je součástí projektu SendScheduledSms.xcodeproj. V zip souboru je pouze jeden projekt: SendScheduledSms.xcodeproj, a tři soubory: SendScheduledSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.

jak odeslat plánované sms pomocí objective c
Obrázek 3 - SendScheduledSms.xcodeproj

Jak použít kód (Video návod)

V tomto videu vám ukážeme, jak použít projekt SendScheduledSMS. Začne prázdnou záložkou událostí v Ozeki SMS bráně a provede vás až k záložce událostí s logem první odeslané SMS zprávy. Dozvíte se, jak otevřít záložku událostí a jak spustit kód pro plánované odesílání SMS v Xcode. Toto video je skvělé, protože trvá pouze 1 minutu, ale obsahuje všechny informace, které potřebujete.

Video 2 - Jak použít projekt SendScheduledSms.xcodeproj (Video návod)

Shrnutí

Tento článek vysvětluje, jak naplánovat zprávy v Objective C. Tato funkce je velmi užitečná, pokud chcete odesílat SMS v konkrétní čas. Toto řešení vám nebo vaší společnosti pomůže být více zákaznicky přívětiví, protože zprávy budou doručeny, když jsou klienti méně zaneprázdnění. Je důležité poznamenat, že Ozeki SMS Gateway funguje v jakékoliv zemi a umí odesílat a přijímat SMS přes různé mobilní připojení.

Ujistěte se, že čtení zde nekončí, navštivte tutoriálovou stránku Ozeki, kde najdete více informací o tématech jako mazání v Objective C.

Nyní už zbývá jen stáhnout Ozeki SMS Gateway a začít pracovat!

More information