Hogyan küldjünk SMS-t Objective C-ből

A legegyszerűbb módja az 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 egy HTTP 200 OK választ küld vissza a kérésedre.

hogyan küldjünk sms-t objective c-ből
1. ábra - Hogyan küldjünk SMS-t Objective C-ből

Objective C kód SMS küldésére mobiltelefonra

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 Objective C Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető, és bármilyen projektjében használhatja és módosíthatja.

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" ];
    // Az IP címet le kell cserélni annak a számítógépnek az IP címére, amelyen az SMS Gateway telepítve van!
    
    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;
}
	

Az Objective C SMS példa használata:

Ez az Objective C SMS példa bármilyen 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 kell elhelyezned 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 hozhatod létre az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

SendSMS.m letöltése

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

Mi található a SendSms.m.zip fájlban?

A SendSms.m.zip 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 található még a SendSms projekt 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 sms m könyvtár
2. ábra - Mi található a SendSms.m.zip fájlban

Hogyan küldjünk SMS-t Objective C-ből (Egyszerű útmutató)

Az 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 SendSms.m.zip fájlt
  5. Nyisd meg a SendSms.xcodeproj fájlt az Xcode-ban
  6. Indítsd el az Ozeki SMS Gateway alkalmazást a Windows gépeden
  7. Futtasd a SendSms.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 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 csatlakoztassad az Ozeki SMS Gateway-t a mobilhálózathoz. létrehozz egy HTTP SMS API felhasználói fiókot. 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állításra került, futtathatod az Objective C kódodat.

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

Az SMS küldéséhez Objective C-ből az Objective C alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Figyelj arra, hogy az IP cím (127.0.0.1) le legyen cserélve az SMS gatewayed 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 számítógépre van telepítve, annak az IP címét kell megadni.

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

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

Az Objective C SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolt sztringké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 ehhez 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ódolt sztringet kapod: aHR0cF91c2VyOnF3ZTEyMw==.

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

Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznod fejlécben 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 az SMS küldéséhez Objective C-ből

Az SMS 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ódolt 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: 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
		}
	]
}
	

HTTP válasz, amelyet az Objective C SMS példa kap

Miután 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. Emellett egy JSON kódolt 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: 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"
	    }
	  ]
	}
}
	

Csatlakoztasd az SMS gatewayedet a mobilhálózathoz és hozz létre egy HTTP API felhasználói fiókot

Feltételezzük, hogy már telepítetted az Ozeki SMS Gateway-t, és csatlakoztattad a mobilhálózathoz. Ahhoz, hogy SMS-t tudj küldeni egy mobiltelefonra Objective C-ből, be kell állítanod egy HTTP API felhasználói fiókot az Ozeki SMS Gateway-ben.

Hogyan állítsunk be egy HTTP API felhasználói fiókot (Videó útmutató)

Ebben a videóban megmutatjuk, hogyan állíthatsz be egy új HTTP API felhasználói fiókot az Ozeki SMS Gateway-ben. Az Ozeki SMS Gateway főoldaláról indulunk, és végigvezetünk egy működő felhasználói fiók létrehozásán. Megtanulod, hogyan adj meg jelszót a felhasználói fiókhoz, és hogyan kapcsold be a naplózást. Ez a videó mindössze 30 perc hosszú, de nagyon részletes. Nem lesz gondod a megértésével. A videóban az Ozeki SMS Gateway-t használjuk, amely nagyon intuitív grafikus felülettel rendelkezik.

1. videó - Hogyan állítsunk be egy HTTP API felhasználói fiókot (Videó útmutató)

Hogyan küldjünk SMS-t Objective C-ből az Objective C SMS API használatával (Videó útmutató)

Ez a videó bemutatja, hogyan töltsd le a SendSms.m.zip fájlt erről az oldalról, és hogyan töltsd le annak tartalmát az Xcode-ban. Ha megnézed a videót, észreveszed, hogy a SendSms.m.zip tartalma az Asztalra kerül. Azt is látni fogod, hogy duplán kattintunk a SendSms.xcodeproj projektfájlra a SendSms projekt megnyitásához. Az Xcode néhány figyelmeztetést fog megjeleníteni, mert a fájl a webről származik. Egyszerűen kattints az OK gombra ezek elkerüléséhez.

2. videó - Hogyan küldjünk SMS-t Objective C-ből az Objective C SMS API használatával (Videó útmutató)

Objective C SMS példa: SendSms.xcodeproj

Az alábbi példakód a SendSms.xcodeproj Xcode projekt része. Ebben a megoldásban három fájl található ebben a projektben: SendSms.m, Ozeki.Libs.Rest.m, Ozeki.Libs.Rest.h fájlok.

3. ábra - SendSms.xcodeproj

Hogyan ellenőrizzük, hogy az SMS-t elfogadta-e a HTTP felhasználó

Miután az SMS beküldésre került, jó ötlet ellenőrizni az SMS gatewayedet, hogy lássuk, mit kapott. A naplót úgy ellenőrizheted, hogy megnyitod a HTTP felhasználó részleteit az Ozeki SMS Gateway kezelőfelületéről. A következő videó megmutatja, hogy mire kell figyelni.

SMS küldése a fenti Objective C kóddal (Videó útmutató)

Ebben a videóban megtanulhatod, hogyan futtathatod a kódodat, és hogyan ellenőrizheted a felhasználón történt eseményeket. Egy üres események lapról indulunk, és végigvezetünk egy olyan események lapon, amely már tartalmaz rekordokat. Mindig több részletet kaphatsz az üzenetedről és a kapcsolatról a felhasználó események lapján. Megmutatjuk, hogyan nyisd meg az események lapot, hogyan küldd el az üzenetet, és hogyan ellenőrizd újra az események lapot. Ez a videó alig több mint 1 perc hosszú, és könnyen érthető. Az Ozeki SMS Gateway-t használjuk a küldési eljárás minden részletének rögzítésére.

3. videó - Hogyan küldjünk SMS-t a fenti Objective C kóddal (Videó útmutató)

Hogyan ellenőrizzük, hogy az SMS-t elküldte-e a mobilhálózat

Az eljárás ellenőrzésének utolsó lépése, hogy megnézzük a mobilhálózati kapcsolat naplóit. Lehet, hogy be kell kapcsolnod a naplózást a kapcsolat beállításaiban, mielőtt elküldöd az üzenetet, hogy lásd a naplókat. Ha a naplózás be van kapcsolva, látni fogod a küldött üzenet telefonszámát és szövegét.

Hogyan teszteljük, hogy az SMPP kliens elfogadta-e a kérést (Videó útmutató)

Ebben a videóban ellenőrizzük a küldési esemény rekordját az SMPP kliens Események lapján. Megtanulod, hogyan éred el, és hogy mire kell figyelni a naplóban. A videó mindössze 18 másodperc hosszú, így könnyen követheted. Itt is az Ozeki SMS Gateway-t használjuk.

4. videó - Hogyan teszteljük, hogy az SMPP kliens elfogadta-e a kérést (Videó útmutató)

SMS üzenet fogadása a mobiltelefonon (Videó útmutató)

Az utolsó videóban láthatod, hogyan néz ki egy üzenet fogadása, amelyet az Ozeki SMS Gateway-ből küldtél. Látni fogsz egy IOS telefont, amely értesítést kap az éppen küldött SMS üzenetről. A videó mindössze 8 másodperc hosszú, és nagyon részletes.

5. videó - Hogyan néz ki az SMS üzenet fogadása a mobiltelefonon (Videó útmutató)

Összefoglalás

Ez az útmutató betekintést nyújt az SMS küldésébe Objective C-ben az Ozeki SMS Gateway segítségével. Ha figyelmesen tanulmányoztad a cikket, az üzenetküldés Objective C-ben nagyon egyszerű. Hangsúlyozni kell, hogy az Ozeki SMS Gateway hatalmas szerepet játszik ebben a folyamatban, mivel ő végzi az átvitelt a kódoló és az SMS fogadó között. Az Ozeki SMS Gateway nagyon megbízható, és könnyen kezelhető.

Folytasd tanulmányaidat az Ozeki oktatóoldalán, ahol többet olvashatsz olyan témákról, mint több SMS küldése és SMS ütemezése Objective C-ben.

Most már csak annyi a teendő, hogy letöltöd az Ozeki SMS Gateway-t, és elkezded a munkát!

More information