Hogyan küldjünk SMS-t Pythonból
A legegyszerűbb módja SMS küldésének Pythonbó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 telefonszámára, és egy HTTP 200 OK választ küld vissza a kérésedre.
Python kód SMS küldésére mobilra
Az alábbi Python SMS kód minta bemutatja, hogyan küldhetsz SMS-t az Ozeki SMS Gateway HTTP REST SMS API-jával a Python ozekilibsrest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető, és bármilyen projektben felhasználhatod és módosíthatod.
SendSms.py
from ozekilibsrest import Configuration, Message, MessageApi configuration = Configuration( username="http_user", password="qwe123", api_url="http://127.0.0.1:9509/api" ) msg = Message( to_address="+3620111111", text="Hello world!" ) api = MessageApi(configuration) result = api.send(msg) print(result)
Hogyan használd a Python SMS példát:
Ez a Python SMS példa bármilyen Python alkalmazásban használható. A használatához telepítened kell az ozekilibsrest csomagot a pip install ozekilibsrest paranccsal. A csomag telepítése után a from ozekilibsrest import Configuration, Message, MessageApi direktívát kell elhelyezned a Python forráskódod fejléc részébe. Ez lehetővé teszi az ozekilibsrest könyvtár által biztosított osztályok használatát. 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ózatba vezeték nélküli kapcsolaton vagy az interneten keresztül.
SendSms.py letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: SendSms.py.zip (355B)
Mi található a SendSms.py mappában?
A SendSms.py mappa tartalmazza a Python SMS példa szkriptjét, amely bemutatja, hogyan küldhetsz több SMS üzenetet Pythonnal.
Hogyan telepítsd az ozekilibsrest könyvtárat
Az ozekilibsrest könyvtár telepítéséhez meg kell nyitnod a parancssort és a következő parancsot kell használnod. Ez telepíti az ozekilibsrest könyvtárat és a szükséges függőségeket.
pip install ozekilibsrest
Hogyan küldjünk SMS-t Pythonból (Egyszerű útmutató)
SMS küldése Pythonból:
- Telepíts egy HTTP API felhasználót
- Kapcsold be a "Log communication events" opciót az Advanced fülön
- Töltsd le a SendSMS.py fájlt
- Nyisd meg a SendSMS.py fájlt a Jegyzettömbben
- Módosítsd az adatokat a sajátjaidra
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendSMS.py Python kódot
- Ellenőrizd a naplókat, hogy az SMS elküldődött-e
Telepítsd az Ozeki SMS Gateway-t és hozz létre egy HTTP API felhasználót
Ahhoz, hogy SMS-t tudj küldeni Pythonbó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 a Python kódodat fejleszted a Python IDLE-ben vagy a Jegyzettömbben. Telepítés után a következő lépés az, hogy csatlakoztad az Ozeki SMS Gateway-t a mobilhálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból annak ellenőrzésére, hogy a mobilhálózati kapcsolatod működik. A környezet előkészítésének utolsó lépése, hogy létrehozol egy HTTP SMS API felhasználói fiókot. Hozz létre egy felhasználót "User1" 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 a Python kódodat.
HTTP API URL SMS küldéséhez Pythonból
Ahhoz, hogy SMS-t küldj Pythonból, a Pythonodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Fontos, hogy az IP címet (127.0.0.1) le kell cserélned az SMS gatewayed IP címére. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Python 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 megadnod.
http://127.0.0.1:9509/api?action=rest
HTTP hitelesítés SMS küldéséhez Pythonból
A Python SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolt formában kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(username+":"+password). Pythonban a következő kóddal végezheted el ezt a kódolást:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
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 SMS küldéséhez Pythonból
Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznia a HTTP kérés fejléc részének. Figyelj rá, hogy egy Content-Type és egy Authorization fejlécet is tartalmazunk.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP kérés SMS küldéséhez Pythonból
Az SMS beküldéséhez a Python 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ó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: 336 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c", "to_address": "+36201111111", "text": "Hello, World!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
HTTP válasz a Python 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, ami jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Egy JSON kódolt 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.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 11:17:49 GMT Server: 10/10.3.116 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": "b570dbae-3a05-456d-9dad-a02161b16f1c", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Csatlakoztasd az SMS gatewayed 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 Pythonból, be kell állítanod egy HTTP API felhasználói fiókot az Ozeki SMS Gateway-ben.
Új felhasználó létrehozása (Videó útmutató)
Ez a videó bemutatja, hogyan állíthatsz be egy új HTTP API felhasználói fiókot. Az Ozeki SMS Gateway kezdőlapjáról indul, és az új felhasználó Events fülénél ér véget. A videó megmutatja, hogyan hozhatod létre és konfigurálhatod az új felhasználót. A videó csak 30 másodperc hosszú, de tartalmazza az összes szükséges információt egy új HTTP API felhasználó létrehozásához.
Hogyan küldjünk SMS-t Pythonból a Python SMS API-val (Videó útmutató)
Ez a videó bemutatja, hogyan töltheted le a SendSms.py.zip fájlt erről az oldalról, és hogyan nyithatod meg a benne található fájl tartalmát bármilyen szövegszerkesztőben, például a Windows Jegyzettömbjében. Ha megnézed a videót, észreveszed, hogy a SendSms.py zip tartalma a Windows asztalra kerül.
Python SMS példa: SendSms.py
Az alábbi példakód a SendSms.py.zip fájl része.
Hogyan ellenőrizd, hogy az SMS-t elfogadta-e az HTTP felhasználó (Videó útmutató)
Miután elküldted az SMS-t, érdemes megnézned az SMS gatewayedet, hogy mit kapott. Ellenőrizheted a naplót az Ozeki SMS Gateway kezelőfelületén az HTTP felhasználó részleteinek megnyitásával. A következő videó megmutatja, hogy mit kell keresned. A videó a megnyitott kóddal kezdődik, és az elküldött üzenet részleteivel ér véget. Megtanulod, hogyan indítsd el a projektet, hogyan néz ki a projekt futás közben, és hogyan néz ki a naplófájl utána. A videó csak 42 másodperc hosszú és könnyen érthető. Nem lesz gondod a követésével.
Hogyan ellenőrizd, hogy az SMS el lett-e küldve a mobilhálózatba
A folyamat ellenőrzésének utolsó lépése, hogy megnézed 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 telefonszámot és az elküldött üzenet szövegét.
Teszteld, hogy a kérést elfogadták-e (Videó útmutató)
A következő videóban látni fogod, hogyan ellenőrizheted, hogy az SMPP kliens sikeresen elküldte-e az üzenetedet. Megtanulod, hogyan nyithatod meg az SMPP felhasználó Events fülét, és hogy mit kell keresned. A videó csak 18 másodperc hosszú, de nagyon hasznos lesz.
SMS érkezése a telefonra (Videó útmutató)
A következő videón láthatod, hogyan néz ki egy bejövő üzenet, amelyet az Ozeki SMS Gateway küldött. Egy android telefon kezdőképernyőjével kezdődik, és az üzenet megnyitásával ér véget. Csak 18 másodperc hosszú, és láthatod az egész üzenet fogadási folyamatát.
Összefoglalás
A fenti útmutató elmagyarázta az SMS küldésének lépéseit Pythonból. Amint látható, az Ozeki minden szükséges eszközt biztosít az üzenetküldéshez, így ha gondosan követed a lépéseket, az üzenetküldés Pythonból már nem lesz probléma. Az Ozeki SMS Gateway hatalmas szerepet játszik az üzenetküldésben, enélkül a program nélkül nem tudnál elérni a mobilfelhasználókhoz. Fontos megjegyezni, hogy az Ozeki SMS Gateway bármely országban működik, így nemzetközi szinten is küldhetsz üzeneteket ezzel a megoldással.
Ne állj meg itt, böngészd az Ozeki oktatóanyagait, és tanulj többet a SMS fogadásáról Pythonban.
A következő lépés, hogy letöltöd az Ozeki SMS Gateway-t és elkezded a munkát!
More information