Hogyan kapjunk SMS-t Objective C-ből

A legegyszerűbb módja az SMS fogadásának 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 kapjunk sms-t objective c-ből
1. ábra - Hogyan kapjunk SMS-t Objective C-ből

Objective-C kód SMS fogadására mobilra

Az alábbi Objective-C SMS kódminta bemutatja, hogyan fogadhatsz 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.

ReceiveSms.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 ];
    
    MessageReceiveResult * result = [ api DownloadIncoming ];
    
    NSLog(@"%@", result);
    
    for (Message * message in result.messages)
    {
        NSLog(@"%@", message);
    }
    
    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, hogy használd az Ozeki.Libs.Rest könyvtár által biztosított osztályokat. A Message osztály segítségével létrehozhatod 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.

ReceiveSms.m letöltése

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

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

A ReceiveSms.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 ReceiveSms 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ó.

receive sms m könyvtár
2. ábra - Mi található a ReceiveSms.m.zip-ben

Hogyan kapjunk SMS-t Objective-C-ből (Gyors lépések)

SMS fogadása Objective-C-ből:

  1. Telepíts egy HTTP API felhasználót egy Windows gépre
  2. Engedélyezd 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 ReceiveSms.m.zip fájlt
  5. Nyisd meg a ReceiveSms.xcodeproj fájlt az Xcode-ban
  6. Indítsd el az Ozeki SMS Gateway alkalmazást a Windows gépeden
  7. Futtasd a ReceiveSms.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 csatlakoztad az Ozeki SMS Gateway-t a mobilhálózathoz. létrehozol 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.

A környezet beállítása után 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ó. Figyelj arra, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét kell beírnod. 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 a számítógépnek az IP címét kell megadnod.

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 a 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 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ó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 egy tartalomtípus és egy Authorization fejléc is szerepel.

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. Az HTTP törzs egy JSON kódolású adatkarakterlánc. Ez tartalmazza a címzett számát és az üzenet szövegét.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Connection: keep-alive
Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: en-gb
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 192.168.0.14:9509
If-Modified-Since: Fri, 23 Jul 2021 11:01:18 GMT
User-Agent: ReceiveSms.m (unknown version) CFNetwork/1220.1 Darwin/20.3.0

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

Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. Az HTTP válasz tartalmaz egy állapotkó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, 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 11:38:29 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked
 
{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "85583c80-68f8-a743-bdd4-a477dcce24c1",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36201111111",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-23 12:04:54",
	      "valid_until": "2021-07-30 12:04:54",
	      "time_to_send": "2021-07-23 12:04:54",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "17f48ae0-ca34-2393-876a-e36446f51df1",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36202222222",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-07-23 12:04:54",
	      "valid_until": "2021-07-30 12:04:54",
	      "time_to_send": "2021-07-23 12:04:54",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "e8fa747e-8b21-08e3-9cf4-f30c2ab9074d",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36203333333",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-07-23 12:04:54",
	      "valid_until": "2021-07-30 12:04:54",
	      "time_to_send": "2021-07-23 12:04:54",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}

Hogyan töltsd le a projektet (Videó útmutató)

Ebben a videóban bemutatjuk, hogyan töltheted le az SMS üzenetek fogadásához szükséges projektfájlokat Objective-C-ben. Ez az útmutató oldalról indul, és a megnyitott forráskóddal ér véget. Megtanulod, hova kell kattintani a fájlok letöltéséhez, és mit kell használni a kód szerkesztéséhez. A videó mindössze 22 másodperc hosszú, de tartalmazza az összes szükséges információt az SMS-ek fogadásához Objective-C-ben.

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

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

hogyan kapjunk sms-t objective c használatával
3. ábra - ReceiveSms.xcodeproj

Hogyan használd a projektet (Videó útmutató)

A következő videóban bemutatjuk, hogyan használd a kódot, és mi történik, amikor használod. A videó 55 másodperc hosszú, de tartalmazza az összes szükséges információt a projekt használatának megkezdéséhez. Az Ozeki SMS Gateway-be való bejelentkezéssel kezdődik, és egészen a fogadott üzenetekig vezet. Megtanulod, hogyan nyisd meg és futtasd a kódot, majd ellenőrizd a naplót. Az Ozeki SMS Gateway kiváló felhasználói élményt nyújt az intuitív és könnyen tanulható grafikus felületének köszönhetően.

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

Összegzés

Ez az útmutató az Objective C-ben történő SMS fogadás lépéseit magyarázza el az Ozeki SMS gateway segítségével. A cikk elolvasása után az üzenetek átvitele a bejövő postaládából egy Objective C programba nem okozhat problémát. Ezzel biztosíthatod, hogy az SMS üzenetek a helyükre kerüljenek. Az Ozeki SMS Gateway letölthető a weboldalunkról, és próbaidőszakban ingyenesen használható.

Folytasd az olvasást az Ozeki oktatóoldalán, ahol további információkat találsz olyan témákról, mint az 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