Hogyan ütemezhetünk SMS-t Objective C-ben

A legegyszerűbb módja az ütemezett SMS küldésének Objective-C-ben az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, SMS üzeneteket küldhetsz HTTP POST kérések kiadásával az SMS gateway felé. A HTTP POST kérés egy JSON formátumban formázott üzenetet fog tartalmazni. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonjára, és egy HTTP 200 OK választ küld vissza a kérésedre.

hogyan ütemezhetünk sms-t objective c-ben
1. ábra - Hogyan ütemezhetünk SMS-t Objective C-ben

Objective-C kód ütemezett SMS küldéséhez mobilra

Az alábbi Objective-C SMS kódminta bemutatja, hogyan küldhetsz SMS-t az Ozeki SMS Gateway http rest sms api-jával az Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető, és bármely projektben felhasználhatod és módosíthatod.

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

Az Objective-C SMS példa használata:

Ez az Objective C SMS példa bármely Objective C alapú alkalmazásban használható. A használathoz hozzá kell adnod az Ozeki.Libs.Rest.h fejlécfájlt és az Ozeki.Libs.Rest.m implementációs fájlt a projektedhez. A projekt hivatkozás hozzáadása után az using Ozeki.Libs.Rest; direktívát be kell illesztened az Objective C forráskódod fejléc részébe. Ez lehetővé teszi az Ozeki.Libs.Rest könyvtár által nyújtott osztályok használatát. A Message osztály segítségével létrehozhatod az SMS-t. A MessageApi osztályt használhatod az SMS küldéséhez az SMS gateway felé. Az SMS gateway továbbítja az üzenetedet a mobilhálózat felé vezeték nélküli kapcsolaton vagy az interneten keresztül.

SendScheduledSms.m letöltése

A cikkben ismertetett forráskód letölthető, felhasználható és módosítható ingyenesen.
Letöltés: SendScheduledSms.m.zip (46.2Kb)

Mi található a SendScheduledSms.m fájlban?

A SendScheduledSms.m fájl tartalmazza az Ozeki.Libs.Rest könyvtárat, amely minden szükséges eszközt biztosít az SMS-ek küldéséhez és fogadásához. A zip fájlban megtalálod a SendScheduledSms projektet is, amely tartalmazza a példakódot, amely bemutatja, hogyan küldj SMS-t. Ez a példakód az alábbiakban látható.

send scheduled sms m könyvtár
2. ábra - Mi található a SendScheduledSms.m.zip fájlban

Hogyan küldjünk ütemezett SMS-t Objective-C-ből (Gyors lépések)

Ütemezett SMS küldése Objective-C-ből:

  1. Telepíts egy HTTP API felhasználót egy Windows gépre
  2. Kapcsold be a Kommunikációs események naplózását a Speciális lapon
  3. Állítsd be az Xcode-ot
  4. Töltsd le, majd csomagold ki a SendScheduledSms.m.zip fájlt
  5. Nyisd meg a SendScheduledSms.xcodeproj fájlt az Xcode-ban
  6. Indítsd el az Ozeki SMS Gateway alkalmazást a Windows gépeden
  7. Futtasd a SendScheduledSms.m Objective C kódot az Xcode-ban
  8. Ellenőrizd a naplókat, hogy az SMS elküldődött-e

Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása

Ahhoz, hogy SMS-t küldhess Objective-C-ből, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol az Objective-C kódodat fejleszted a Visual Studio-ban. A telepítés után a következő lépés az, hogy csatlakoztassad az Ozeki SMS Gateway-t a mobilhálózathoz. HTTP SMS API felhasználói fiók létrehozása. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután a környezet be van állítva, futtathatod az Objective-C kódodat.

HTTP API URL SMS küldéséhez Objective-C-ből

Ahhoz, hogy SMS-t küldhess Objective-C-ből, az Objective-C alkalmazásodnak HTTP kérést kell küldenie az SMS gateway felé. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét írd. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol az Objective-C SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, akkor annak az IP címét kell megadni.

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

HTTP hitelesítés SMS küldéséhez Objective-C-ből

Az Objective-C SMS kliens hitelesítéséhez a felhasználónevet és jelszót base64 kódolású karakterláncként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). Objective-C-ben a következő kódot használhatod a kódoláshoz:

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

Például ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolású karakterláncot kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc SMS küldéséhez Objective-C-ből

Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznod fejléc részként az HTTP kérésben. Figyelj arra, hogy tartalomtípust és egy Authorization fejlécet is tartalmazunk.

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

HTTP kérés SMS küldéséhez Objective-C-ből

Az SMS üzenetek beküldéséhez az Objective-C alkalmazásod egy olyan HTTP kérést fog küldeni, mint az alábbi. Figyelj arra, hogy ez a kérés tartalmaz egy HTTP fejléc részt és egy HTTP törzs részt. A HTTP törzs egy JSON kódolású adat karakterlánc. Ez tartalmazza a címzett számát és az üzenet szövegét.

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 válasz, amelyet az Objective-C SMS példa kap

Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy állapotkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Emellett egy JSON kódolású struktúrát is visszaad, amely hasznos részleteket nyújt az üzenet beküldéséről.

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 példa: SendScheduledSms.xcodeproj

Hogyan töltsd le a példakódot (Videó útmutató)

Ebben a videóban látni fogod, hogyan töltheted le az ütemezett SMS küldés forráskódját. A letöltési oldallal kezdődik, és végigvezet a projekt megnyitásáig. Megtanulod, hogyan töltsd le, és milyen programmal nyisd meg a projektet. A videó mindössze 28 másodperc hosszú, de nagyon részletes, így könnyen követheted a lépéseket. Ne vesztegesd az időd. Kezdjük el az SMS küldést!

1. videó - Hogyan töltsd le és nyisd meg a fenti megoldást (Videó útmutató)

Az alábbi példakód a SendScheduledSms.xcodeproj projekt része. A zip fájlban csak egy projekt található: SendScheduledSms.xcodeproj, és három fájl: SendScheduledSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.

hogyan küldjünk ütemezett sms-t objective c-vel
3. ábra - SendScheduledSms.xcodeproj

Hogyan használd a kódot (Videó útmutató)

Ebben a videóban bemutatjuk, hogyan használd a SendScheduledSMS projektet. Az Ozeki SMS Gateway üres események lapjával kezdődik, és végigvezet az első elküldött SMS üzenet naplóját tartalmazó események lapig. Megtanulod, hogyan nyisd meg az események lapot, és hogyan futtasd az ütemezett SMS küldés kódját az Xcode-ban. Ez a videó nagyszerű, mert 1 perc alatt megnézhető, de minden szükséges információt tartalmaz.

2. videó - Hogyan használd a SendScheduledSms.xcodeproj projektet (Videó útmutató)

Összefoglalás

Ez a cikk elmagyarázta, hogyan ütemezhetsz üzeneteket Objective C-ben. Ez egy igazán hasznos funkció, ha SMS-eket szeretnél küldeni meghatározott időpontban. Ez a megoldás segít neked vagy a cégednek, hogy ügyfélbarátabb legyen, mivel az üzenetek akkor érkeznek, amikor az ügyfelek nem elfoglaltak. Fontos megjegyezni, hogy az Ozeki SMS Gateway bármely országban működik, és különböző mobilkapcsolatokon keresztül küldhet és fogadhat SMS-t.

Ne hagyd, hogy az olvasás itt véget érjen, látogass el az Ozeki oktatóanyag oldalára, ahol további információkat találsz olyan témákról, mint az SMS törlése Objective C-ben.

Most már csak egy dolgot kell tenned: töltsd le az Ozeki SMS Gateway-t és kezdj el dolgozni!

More information