Ako poslať SMS z Objective C
Najjednoduchší spôsob, ako poslať SMS z Objective C, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať SMS správy odoslaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu vo formáte JSON. 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.
Ukážka kódu Objective C na odoslanie SMS nižšie demonštruje, ako môžete poslať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím knižnice Ozeki.Libs.Rest pre Objective C. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.
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" ]; // Musíte nahradiť IP adresu IP počítača, na ktorom je nainštalovaná SMS brána! 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; }
Ako použiť ukážku kódu Objective C na odoslanie SMS:
Túto ukážku kódu Objective C na odoslanie SMS môžete použiť v akejkoľvek aplikácii Objective C. Na použitie musíte 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 zdrojového kódu Objective C. 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ť SendSMS.m
Zdrojový kód vysvetlený v tomto článku je možné stiahnuť, použiť a upravovať bezplatne.
Stiahnuť: SendSms.m.zip (59.6Kb)
Súbor SendSms.m.zip 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 aj projekt SendSms, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.
Na odoslanie SMS z Objective C:
- Nainštalujte používateľa HTTP API na počítač s Windows
- Povoľte Logovanie komunikačných udalostí na karte Pokročilé
- Nastavte Xcode
- Stiahnite a rozbaľte súbor SendSms.m.zip
- Otvorte súbor SendSms.xcodeproj v Xcode
- Spustite aplikáciu Ozeki SMS Gateway na vašom počítači s Windows
- Spustite kód Objective C SendSms.m v Xcode
- Skontrolujte logy, či bola SMS odoslaná
Ak chcete byť schopní posielať SMS z Objective C, musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnaký počítač, na ktorom vyvíjate svoj kód Objective C v Visual studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z grafického rozhrania Ozeki na overenie, či vaše pripojenie k mobilnej sieti funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie používateľa HTTP SMS API. Vytvorte používateľa s používateľským menom "http_user" a heslom "qwe123", aby ukážka fungovala bez úprav.
Po nastavení prostredia môžete spustiť svoj kód Objective C.
HTTP API URL na odoslanie SMS z Objective CNa odoslanie SMS z Objective C bude váš kód Objective C musieť odoslať 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, na ktorom beží vaša aplikácia Objective C na odosielanie SMS, 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 odoslanie SMS z Objective C
Na autentifikáciu SMS klienta v Objective C je potrebné odoslať používateľské meno a heslo v reťazci zakódovanom do base64 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 reťazec zakódovaný do base64: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie
HTTP hlavička požiadavky na odoslanie SMS z Objective CNa odoslanie SMS správ je potrebné zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Poznamenajte, že zaraďujeme typ obsahu a autorizačnú hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Na odoslanie SMS bude vaša aplikácia v Objective C odosielať HTTP požiadavku podobnú nižšie uvedenej. Všimnite si, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. Telo HTTP je reťazec dát zakódovaný do JSON. Obsahuje číslo príjemcu a text správy.
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 } ] }
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. Taktiež vráti štruktúru zakódovanú do JSON, ktorá poskytne užitočné informácie 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: 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" } ] } }
Predpokladáme, že ste už nainštalovali Ozeki SMS Gateway, a že ste pripojili ju k mobilnej sieti. Aby ste mohli odosielať SMS na mobilný telefón z Objective C, musíte nastaviť používateľský účet HTTP API v Ozeki SMS Gateway.
Ako nastaviť používateľský účet HTTP API (Video návod)V tomto videu vám ukážeme, ako môžete nastaviť nový používateľský účet HTTP API v Ozeki SMS Gateway. Začneme na hlavnej stránke Ozeki SMS Gateway a prejdeme celým procesom až k funkčnému používateľskému účtu. Dozviete sa, ako nastaviť heslo pre používateľský účet a ako povoliť logovanie. Toto video je dlhé len 30 minút, ale veľmi podrobné. Nebudete mať problém mu porozumieť. Vo videu používame Ozeki SMS Gateway, ktorá má veľmi intuitívne grafické rozhranie.
Ako odoslať SMS z Objective C pomocou SMS API v Objective C (Video návod)
Toto video vám ukáže, ako si stiahnuť súbor SendSms.m.zip z tejto stránky a ako si jeho obsah stiahnuť v Xcode. Ak sledujete video, všimnete si, že obsah SendSms.m.zip je umiestnený na pracovnej ploche. Uvidíte tiež, že dvakrát klikneme na súbor projektu SendSms.xcodeproj, aby sme otvorili projekt SendSms. Xcode zobrazí niektoré varovania, pretože súbor pochádza z internetu. Jednoducho kliknite na OK, aby ste týmto varovaniam zabránili.
Príklad SMS v Objective C: SendSms.xcodeproj
Príklad kódu nižšie je súčasťou projektu Xcode SendSms.xcodeproj. V tomto riešení sú v projekte tri súbory: SendSms.m, Ozeki.Libs.Rest.m, Ozeki.Libs.Rest.h.
Ako skontrolovať, či SMS bola prijatá HTTP používateľom
Po odoslaní SMS je dobré skontrolovať svoju SMS bránu, aby ste videli, čo prijala. Log môžete skontrolovať otvorením detailov HTTP používateľa v konzole na správu Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať.
Odosielanie SMS pomocou vyššie uvedeného kódu v Objective C (Video návod)
V tomto videu sa môžete naučiť, ako spustiť svoj kód a skontrolovať udalosti, ktoré sa stali na používateľovi. Začína s prázdnou kartou udalostí a prevedie vás až ku karte s záznamami. Vždy môžete získať viac detailov o svojej správe a pripojení v karte udalostí používateľa. Video vám ukáže, ako otvoriť kartu udalostí, ako odoslať správu a ako znova skontrolovať kartu udalostí. Toto video je len o niečo dlhšie ako 1 minútu a je ľahko zrozumiteľné. Používame Ozeki SMS Gateway na zaznamenanie každého detailu odosielacieho procesu.
Ako skontrolovať, či bola SMS odoslaná do mobilnej siete
Posledným krokom pri overovaní procesu je pozrieť sa na logy pripojenia k mobilnej sieti. Možno budete musieť pred odoslaním správy zapnúť logovanie v konfigurácii pripojenia, aby ste videli logy. Ak je logovanie povolené, uvidíte telefónne číslo a text správy, ktorú ste odoslali.
Ako otestovať, či požiadavku prijal SMPP klient (Video návod)
V tomto videu skontrolujeme záznam o odoslaní v karte udalostí SMPP klienta. Naučíte sa, ako k nej pristupovať a čo hľadať v logu. Video je dlhé len 18 sekúnd, takže nebudete mať problém s jeho sledovaním. Opäť používame Ozeki SMS Gateway.
SMS správa prijatá na mobilnom telefóne (Video návod)
V poslednom videu uvidíte, ako vyzerá prijatie správy odoslanej z Ozeki SMS Gateway. Uvidíte telefón s IOS, ktorý dostane notifikáciu o SMS správe, ktorú ste práve odoslali. Video je dlhé len 8 sekúnd a je veľmi detailné.
Zhrnutie
Tento sprievodca poskytol prehľad o odosielaní SMS v Objective C s pomocou Ozeki SMS Gateway. Ak ste článok pozorne preštudovali, odosielanie správ v Objective C je veľmi jednoduché. Je potrebné zdôrazniť, že Ozeki SMS Gateway zohráva v tomto procese obrovskú úlohu, pretože zabezpečuje prenos medzi programátorom a príjemcom SMS. Ozeki SMS Gateway je veľmi spoľahlivý a dá sa ľahko spravovať.
Pokračujte v štúdiu na stránke s návodmi Ozeki, kde sa môžete dozvedieť viac o témach ako odosielanie viacerých SMS a plánovanie SMS v Objective C.
Teraz už len stačí stiahnuť Ozeki SMS Gateway a nechať prácu začať!
More information
- Objective-C send SMS with the HTTP rest API (code sample)
- Objective-C send multiple SMS with the HTTP rest API (code sample)
- Objective-C schedule SMS with the HTTP rest API (code sample)
- Objective C receive SMS with the HTTP rest API (code sample)
- Objective C delete SMS with the HTTP rest API (code sample)
- How to download the latest Objective C SMS library from Github