Ako naplánovať SMS v Objective C

Najjednoduchší spôsob, ako odoslať naplánované SMS z Objective-C, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete odosielať SMS správy vydaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána odošle túto SMS na telefón príjemcu a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako naplánovať sms v objective c
Obrázok 1 - Ako naplánovať SMS v Objective C

Objective-C kód na odoslanie naplánovanej sms na mobil

Ukážka Objective-C sms kódu nižšie demonštruje, ako môžete odosielať SMS pomocou http rest sms api Ozeki SMS Gateway s použitím knižnice Ozeki.Libs.Rest. Táto knižnica je poskytovaná bezplatne a môžete ju použiť a upraviť v akomkoľvek z vašich projektov.

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

Ako použiť príklad Objective-C sms:

Tento príklad Objective C sms môže byť použitý v akejkoľvek Objective C core aplikácii. Na použitie je potrebné pridať hlavičkový súbor Ozeki.Libs.Rest.h a implementačný súbor Ozeki.Libs.Rest.m do vášho projektu. Po pridaní referencie projektu musíte vložiť direktívu using Ozeki.Libs.Rest; do hlavičkovej časti vášho Objective C zdrojového kódu. To vám umožní používať triedy poskytované knižnicou Ozeki.Libs.Rest. Môžete použiť triedu Message na vytvorenie SMS. Môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť SendScheduledSms.m

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendScheduledSms.m.zip (46.2Kb)

Čo je v súbore SendScheduledSms.m?

Súbor SendScheduledSms.m obsahuje knižnicu Ozeki.Libs.Rest, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. Nájdete tu tiež projekt SendScheduledSms v zip súbore, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.

adresár send scheduled sms m
Obrázok 2 - Čo je vo vnútri SendScheduledSms.m.zip

Ako odoslať naplánovanú sms z Objective-C (Rýchle kroky)

Na odoslanie naplánovanej sms z Objective-C:

  1. Nainštalujte HTTP API používateľa na počítači s Windows
  2. Povoľte Logovanie komunikačných udalostí na karte Pokročilé
  3. Nastavte Xcode
  4. Stiahnite a rozbaľte súbor SendScheduledSms.m.zip
  5. Otvorte súbor SendScheduledSms.xcodeproj v Xcode
  6. Spustite aplikáciu Ozeki SMS Gateway na vašom počítači s Windows
  7. Spustite Objective C kód SendScheduledSms.m v Xcode
  8. Skontrolujte logy, či bola SMS odoslaná
Nainštalujte Ozeki SMS Gateway a vytvorte HTTP API používateľa

Aby ste mohli odosielať SMS z Objective-C, najprv musíte nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj Objective-C kód v Visual studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu sms z Ozeki GUI na overenie, že vaše mobilné sieťové pripojenie funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie HTTP sms api používateľského účtu. Vytvorte používateľa s používateľským menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.

Po nastavení prostredia môžete spustiť svoj Objective-C kód.

HTTP API url na odoslanie sms z Objective-C

Na odoslanie SMS z Objective-C bude váš Objective-C musieť vydať HTTP požiadavku na SMS bránu. API url je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaný na rovnakom počítači, kde beží Objective-C sms aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaný na inom počítači, mala by to byť IP adresa toho počítača.

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

HTTP autentifikácia na odosielanie SMS z Objective-C

Na autentifikáciu Objective-C SMS klienta musíte odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). V Objective-C môžete na toto kódovanie použiť nasledujúci 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 ];

Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie

HTTP hlavička požiadavky na odoslanie SMS z Objective-C

Na odoslanie SMS správ musíte do HTTP požiadavky zahrnúť nasledujúce riadky ako hlavičky. Poznamenajte, že obsahujeme typ obsahu a autorizačnú hlavičku.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požiadavka na odoslanie SMS z Objective-C

Na odoslanie SMS správ váš Objective-C aplikácia odošle HTTP požiadavku podobnú nižšie uvedenej. Poznamenajte, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. HTTP telo je JSON kódovaný dátový reťazec. Obsahuje číslo príjemcu a text sprá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 odpoveď prijatá Objective-C SMS príkladom

Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Tiež vráti JSON kódovanú štruktúru, ktorá poskytuje užitočné detaily o odoslaní sprá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"
	    }
	  ]
	}
}
Objective-C SMS príklad: SendScheduledSms.xcodeproj Ako stiahnuť príklad kódu (Video návod)

V tomto videu uvidíte, ako si môžete stiahnuť zdrojový kód na odosielanie naplánovaných SMS. Začne sa na stiahnuteľnej stránke a prevedie vás až k otvoreniu projektu. Dozviete sa, ako ho stiahnuť a aký program použiť na otvorenie projektu. Video je dlhé len 28 sekúnd, ale veľmi podrobné, takže nebudete mať problém s postupovaním podľa krokov. Nestrácajte viac času. Začnime odosielať SMS!

Video 1 - Ako stiahnuť a otvoriť riešenie vyššie (Video návod)

Príklad kódu nižšie je súčasťou projektu SendScheduledSms.xcodeproj. V zip súbore je len jeden projekt: SendScheduledSms.xcodeproj, a tri súbory: SendScheduledSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.

ako odoslať naplánovanú sms pomocou objective c
Obrázok 3 - SendScheduledSms.xcodeproj

Ako použiť kód (Video návod)

V tomto videu vám predstavíme, ako použiť projekt SendScheduledSMS. Začne sa s prázdnou kartou udalostí v Ozeki SMS Gateway a prevedie vás až ku karte udalostí so záznamom prvej odoslanej SMS správy. Dozviete sa, ako otvoriť kartu udalostí a ako spustiť kód na odosielanie naplánovaných SMS v Xcode. Toto video je skvelé, pretože trvá len 1 minútu, ale obsahuje všetky informácie, ktoré potrebujete.

Video 2 - Ako použiť projekt SendScheduledSms.xcodeproj (Video návod)

Zhrnutie

Tento článok vysvetľuje, ako naplánovať odosielanie správ v Objective C. Táto funkcia je veľmi užitočná, ak chcete odosielať SMS v konkrétnom čase. Toto riešenie pomáha vám alebo vašej spoločnosti byť priateľskejšie k zákazníkom, pretože správy budú doručené v čase, keď klienti nie sú zaneprázdnení. Je dôležité poznamenať, že Ozeki SMS Gateway funguje v každej krajine a môže odosielať a prijímať SMS cez rôzne mobilné pripojenia.

Uistite sa, že čítanie tu nekončí, navštívte stránku s návodmi Ozeki, kde nájdete viac informácií o témach ako mazanie v Objective C.

Teraz už zostáva len stiahnuť Ozeki SMS Gateway a začať pracovať!

More information