Kako zakazati SMS u Objective C

Najjednostavniji način za slanje zakazanog SMS-a iz Objective-C je korištenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gatewaya. Kada koristite ovaj API, slat ćete SMS poruke slanjem HTTP Post zahtjeva SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS na telefon primatelja i vratit će HTTP 200 OK odgovor na vaš zahtjev.

kako zakazati sms u objective c
Slika 1 - Kako zakazati SMS u Objective C

Objective-C kod za slanje zakazanog sms-a na mobilni telefon

Objective-C sms primjer koda u nastavku pokazuje kako možete poslati SMS koristeći http rest sms api Ozeki SMS Gatewaya s Ozeki.Libs.Rest bibliotekom. Ova biblioteka vam je dostupna besplatno, a možete je koristiti i mijenjati u bilo kojem od vaših projekata.

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

Kako koristiti Objective-C sms primjer:

Ovaj Objective C sms primjer može se koristiti u bilo kojoj Objective C core aplikaciji. Da biste ga koristili, morate dodati Ozeki.Libs.Rest.h header datoteku i Ozeki.Libs.Rest.m implementacijsku datoteku u svoj projekt. Nakon dodavanja reference na projekt, morate staviti direktivu using Ozeki.Libs.Rest; u zaglavlje vašeg Objective C izvornog koda. To će vam omogućiti korištenje klasa koje pruža Ozeki.Libs.Rest biblioteka. Možete koristiti klasu Message za kreiranje SMS-a. Možete koristiti klasu MessageApi za slanje SMS-a SMS gatewayu. SMS gateway će proslijediti vašu poruku mobilnoj mreži bilo putem bežične veze ili putem interneta.

Preuzmite SendScheduledSms.m

Izvorni kod objašnjen u ovom članku može se besplatno preuzeti, koristiti i mijenjati.
Preuzmi: SendScheduledSms.m.zip (46.2Kb)

Što se nalazi u datoteci SendScheduledSms.m?

Datoteka SendScheduledSms.m sadrži Ozeki.Libs.Rest biblioteku, koja vam daje sve alate potrebne za slanje i primanje SMS poruka. Također ćete pronaći SendScheduledSms projekt u zip datoteci, koji sadrži primjer koda koji pokazuje kako poslati SMS. Ovaj primjer koda je naveden u nastavku.

direktorij za slanje zakazanog sms-a
Slika 2 - Što se nalazi unutar SendScheduledSms.m.zip

Kako poslati zakazani SMS iz Objective-C (Brzi koraci)

Za slanje zakazanog SMS-a iz Objective-C:

  1. Instalirajte HTTP API korisnika na Windows računalu
  2. Omogućite Log komunikacijske događaje na Advanced kartici
  3. Postavite Xcode
  4. Preuzmite i raspakirajte datoteku SendScheduledSms.m.zip
  5. Otvorite datoteku SendScheduledSms.xcodeproj u Xcodeu
  6. Pokrenite Ozeki SMS Gateway aplikaciju na svom Windows računalu
  7. Pokrenite SendScheduledSms.m Objective C kod u Xcodeu
  8. Provjerite zapisnike da vidite je li SMS poslan

Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli slati SMS iz Objective-C, prvo morate instalirati Ozeki SMS Gateway. SMS gateway se može instalirati na istom računalu na kojem razvijate svoj Objective-C kod u Visual studiju. Nakon instalacije, sljedeći korak je povezivanje Ozeki SMS Gatewaya s mobilnom mrežom. Možete poslati testni sms iz Ozeki GUI-ja kako biste potvrdili da vaša mobilna mrežna veza radi. Konačni korak za pripremu vašeg okruženja je kreiranje HTTP sms api korisničkog računa. Kreirajte korisnika s korisničkim imenom "http_user" i lozinkom "qwe123" kako bi primjer radio bez izmjena.

Nakon postavljanja okruženja, možete pokrenuti svoj Objective-C kod.

HTTP API url za slanje sms-a iz Objective-C

Za slanje SMS-a iz Objective-C, vaš Objective-C će morati poslati HTTP zahtjev SMS gatewayu. API url je prikazan u nastavku. Imajte na umu da IP adresa (127.0.0.1) treba biti zamijenjena IP adresom vašeg SMS gatewaya. Ako je Ozeki SMS Gateway instaliran na istom računalu na kojem se pokreće Objective-C sms aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računalu, treba biti IP adresa tog računala.

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

HTTP autentifikacija za slanje SMS-a iz Objective-C

Za autentifikaciju Objective-C SMS klijenta, potrebno je poslati korisničko ime i lozinku u base64 kodiranom stringu na server u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U Objective-C možete koristiti sljedeći kod za ovo kodiranje:

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 primjer, ako kodirate korisničko ime 'http_user' i lozinku 'qwe123', dobit ćete sljedeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Za slanje

HTTP zaglavlje zahtjeva za slanje SMS-a iz Objective-C

Za slanje SMS poruka, potrebno je uključiti sljedeće retke kao zaglavlja u HTTP zahtjev. Imajte na umu da uključujemo tip sadržaja i zaglavlje Autorizacije.

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

HTTP zahtjev za slanje SMS-a iz Objective-C

Za slanje SMS poruka, vaša Objective-C aplikacija će poslati HTTP zahtjev sličan donjem primjeru. Imajte na umu da ovaj zahtjev sadrži dio HTTP zaglavlja i dio tijela HTTP-a. Tijelo HTTP-a je JSON kodirani podatkovni string. Sadrži broj primatelja i tekst poruke.

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 odgovor primljen od Objective-C SMS primjera

Nakon što SMS gateway primi ovaj zahtjev, generirat će HTTP odgovor. HTTP odgovor će sadržavati statusni kod, kako bi naznačio je li zahtjev za slanje SMS-a uspješan ili ne. Također će vratiti JSON kodiranu strukturu koja vam pruža korisne detalje o slanju poruke.

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 primjer: SendScheduledSms.xcodeproj

Kako preuzeti primjer koda (Video tutorijal)

U ovom videu vidjet ćete kako možete preuzeti izvorni kod za planirano slanje SMS-a. Počet će sa stranicom za preuzimanje i odvest će vas do otvaranja projekta. Naučit ćete kako ga preuzeti i koji program koristiti za otvaranje projekta. Video traje samo 28 sekundi, ali je vrlo detaljan tako da nećete imati problema s praćenjem koraka. Ne gubite više vremena. Počnimo slati SMS!

Video 1 - Kako preuzeti i otvoriti gore navedeno rješenje (Video tutorijal)

Primjer koda u nastavku dio je projekta SendScheduledSms.xcodeproj. U zip datoteci nalazi se samo jedan projekt: SendScheduledSms.xcodeproj, i tri datoteke: SendScheduledSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.

kako poslati planirani sms koristeći objective c
Slika 3 - SendScheduledSms.xcodeproj

Kako koristiti kod (Video tutorijal)

U ovom videu predstavit ćemo vam kako koristiti projekt SendScheduledSMS. Počet će s praznom karticom događaja u Ozeki SMS Gatewayu i odvest će vas do kartice događaja s zapisnikom prve poslane SMS poruke. Naučit ćete kako otvoriti karticu događaja i kako pokrenuti kod za planirano slanje SMS-a u Xcodeu. Ovaj video je izvrstan jer traje 1 minutu, ali sadrži sve informacije koje su vam potrebne.

Video 2 - Kako koristiti projekt SendScheduledSms.xcodeproj (Video tutorijal)

Sažetak

Ovaj članak objašnjava kako zakazati poruke u Objective C. Ovo je vrlo korisna funkcija ako želite poslati SMS u određeno vrijeme. Ovo rješenje pomaže vama ili vašoj tvrtki da budete prilagođeniji potrošačima jer će poruke biti dostavljene kada klijenti nisu zauzeti. Važno je napomenuti da Ozeki SMS Gateway radi u bilo kojoj zemlji i može slati i primati SMS putem različitih mobilnih veza.

Pobrinite se da čitanje ne završi ovdje, posjetite Ozeki-ovu stranicu s tutorijalima gdje možete pronaći više informacija o temama poput brisanja u Objective C.

Sada jedino što preostaje je preuzeti Ozeki SMS Gateway i početi raditi!

More information