Hogyan küldjünk több SMS-t Objective C-ből
A legegyszerűbb módja több SMS küldésének Objective-C-ből 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 HTTP 200 OK választ küld a kérésedre.
Objective-C kód több SMS mobilra küldéséhez
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ő számodra, és bármely projektben felhasználhatod és módosíthatod.
SendMultipleSms.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" ]; // Az IP címet le kell cserélni azon számítógép IP címére, amelyen az SMS Gateway fut! MessageApi * api = [ [ MessageApi alloc ] initWithConfiguration : configuration ]; Message * msg1 = [ [ Message alloc ] init ]; [ msg1 setToAddress : @"+36201111111" ]; [ msg1 setText : @"Hello world 1" ]; Message * msg2 = [ [ Message alloc ] init ]; [ msg2 setToAddress : @"+36202222222" ]; [ msg2 setText : @"Hello world 2" ]; Message * msg3 = [ [ Message alloc ] init ]; [ msg3 setToAddress : @"+36203333333" ]; [ msg3 setText : @"Hello world 3" ]; NSMutableArray<Message *> * messages = [ [ NSMutableArray<Message *> alloc ] initWithObjects: msg1, msg2, msg3, nil ]; MessageSendResults * result = [ api SendMessages: messages ]; 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álatához 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.
SendMultipleSms.m letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: SendMultipleSms.m.zip (48.4Kb)
Mi található a SendMultipleSms.m fájlban?
A SendMultipleSms.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 SendMultipleSms 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ó.
Hogyan küldjünk több SMS-t Objective-C-ből (Gyors lépések)
Több SMS küldése Objective-C-ből:
- Telepíts egy HTTP API felhasználót egy Windows gépre
- Engedélyezd a Kommunikációs események naplózását a Speciális lapon
- Állítsd be az Xcode-ot
- Töltsd le, majd csomagold ki a SendMultipleSms.m.zip fájlt
- Nyisd meg a SendMultipleSms.xcodeproj fájlt az Xcode-ban
- Indítsd el az Ozeki SMS Gateway alkalmazást a Windows gépeden
- Futtasd a SendMultipleSms.m Objective C kódot az Xcode-ban
- 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 tudj küldeni 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 csatlakoztassuk az Ozeki SMS Gateway-t a mobilhálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból, hogy ellenőrizd, a mobilhálózati kapcsolatod működik-e. A környezet előkészítésének utolsó lépése egy 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üldj 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ímet (127.0.0.1) le kell cserélni az SMS gateway géped IP címére. 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 gépre van telepítve, annak a gépnek 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ú sztringként kell elküldeni 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ú sztringet 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 tartalmaznia a HTTP kérés fejlécének. 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 rá, 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ú adatsztring. 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: 971 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: SendMutipleSms.m (unknown version) CFNetwork/1220.1 Darwin/20.3.0 { "messages": [ { "is_view_report_requested": false, "create_date": "2021-07-23T09:23:25", "message_id": "9c6a7eb2-37b5-4fea-a75f-c0cdaba85466", "time_to_send": "2021-07-23T09:23:25", "valid_until": "2021-07-30T09:23:25", "is_submit_report_requested": false, "to_address": "+36201111111", "text": "Hello world 1", "is_delivery_report_requested": false }, { "is_view_report_requested": false, "create_date": "2021-07-23T09:23:25", "message_id": "8f2ff6cb-417a-4650-a474-8adc4b005cc4", "time_to_send": "2021-07-23T09:23:25", "valid_until": "2021-07-30T09:23:25", "is_submit_report_requested": false, "to_address": "+36202222222", "text": "Hello world 2", "is_delivery_report_requested": false }, { "is_view_report_requested": false, create_date": "2021-07-23T09:23:25", "message_id": "39b54837-a7e5-4319-a154-25d25bf3d920", "time_to_send": "2021-07-23T09:23:25", "valid_until": "2021-07-30T09:23:25", "is_submit_report_requested": false, "to_address": "+36203333333", "text": "Hello world 3", "is_delivery_report_requested": false } ] }
HTTP válasz az Objective-C SMS példa által kapott
Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Egy JSON kódolású struktúrát is visszaad, ami 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:21:44 GMT Server: 10/10.3.123 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "9c6a7eb2-37b5-4fea-a75f-c0cdaba85466", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world 1", "create_date": "2021-07-23 09:23:25", "valid_until": "2021-07-30 09:23:25", "time_to_send": "2021-07-23 09:23:25", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "8f2ff6cb-417a-4650-a474-8adc4b005cc4", "from_station": "%", "to_address": "+36202222222", "to_station": "%", "text": "Hello world 2", "create_date": "2021-07-23 09:23:25", "valid_until": "2021-07-30 09:23:25", "time_to_send": "2021-07-23 09:23:25", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "39b54837-a7e5-4319-a154-25d25bf3d920", "from_station": "%", "to_address": "+36203333333", "to_station": "%", "text": "Hello world 3", "create_date": "2021-07-23 09:23:25", "valid_until": "2021-07-30 09:23:25", "time_to_send": "2021-07-23 09:23:25", "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: SendMultipleSms.xcodeproj
Hogyan töltsd le és nyisd meg a fenti megoldást (Videó útmutató)
Ebben a videóban bemutatjuk, hogyan töltheted le és nyithatod meg a példa projektet. A böngésződben kezdődik az oktatóoldalon, és a példa projekt letöltésével ér véget a számítógépeden. Megtanulod, hova kell kattintani a fájl letöltéséhez, és hová kell figyelned a letöltési folyamat után. A videó mindössze 30 másodperc hosszú, így könnyen követheted a lépéseket.
Az alábbi példakód a SendMultipleSms.xcodeproj projekt része. A zip fájlban csak egy projekt található: SendMultipleSms.xcodeproj, és három fájl: SendMultipleSms.m, Ozeki.Libs.Rest.h, Ozeki.Libs.Rest.m.
Hogyan használd a SendMultipleSms.xcodeproj projektet
A következő videóban bemutatjuk, hogyan használd a SendMultipleSMS projektfájlt. Az Ozeki SMS Gateway HTTP felhasználójának üres naplófájlájával kezdődik, és az SMS küldésének rögzítésével ér véget. Megtanulod, hogyan indítsd el az SMS küldő alkalmazást, majd hogyan ellenőrizd a felhasználó naplóját. A videó közel 1 perc hosszú, de nagyon részletes, így könnyen megérted. A videóban az Ozeki SMS Gateway-t használjuk, amely nagyon intuitív grafikus felületet kínál a jobb felhasználói élmény érdekében.
Összegzés
Ez az útmutató bemutatta a több SMS küldésének lépéseit Objective C-ben az Ozeki SMS Gateway segítségével. Ezzel a részletes cikk
More information
- Objective-C SMS küldés HTTP REST API-val (kódminta)
- Objective-C több SMS küldése HTTP REST API-val (kódminta)
- Objective-C SMS ütemezés HTTP REST API-val (kódminta)
- Objective C SMS fogadás HTTP REST API-val (kódminta)
- Objective C SMS törlés HTTP REST API-val (kódminta)
- A legújabb Objective C SMS könyvtár letöltése Githubról