Ako poslať viacero SMS z Pythonu
Najjednoduchší spôsob, ako poslať SMS z Pythonu, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať SMS správy vydaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána potom pošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.
Ukážka Python kódu pre SMS nižšie demonštruje, ako môžete posielať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím Python knižnice ozekilibsrest. Táto knižnica je poskytovaná bezplatne a môžete ju použiť a upraviť v akomkoľvek z vašich projektov.
SendMultipleSms.py
from ozekilibsrest import Configuration, Message, MessageApi configuration = Configuration( username="http_user", password="qwe123", api_url="http://127.0.0.1:9509/api" ) msg1 = Message( to_address="+3620111111", text="Hello world 1!" ) msg2 = Message( to_address="+36202222222", text="Hello world 2!" ) msg3 = Message( to_address="+36203333333", text="Hello world 3!" ) api = MessageApi(configuration) result = api.send([msg1, msg2, msg3]) print(result)
Ako použiť Python príklad pre SMS:
Tento Python príklad pre SMS môže byť použitý v akejkoľvek Python aplikácii. Na jeho použitie musíte nainštalovať balík ozekilibsrest príkazom pip install ozekilibsrest. Po inštalácii balíka musíte pridať direktívu from ozekilibsrest import Configuration, Message, MessageApi do hlavičkovej časti vášho Python zdrojového kódu. To vám umožní používať triedy poskytované knižnicou ozekilibsrest. Triedu Message môžete použiť na vytvorenie SMS. Triedu MessageApi môžete použiť na odoslanie SMS na SMS bránu. SMS brána potom prepošle vašu správu do mobilnej siete buď cez bezdrôtové pripojenie alebo cez internet.
Stiahnuť SendMultipleSms.py
Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendMultipleSms.py.zip (423B)
Priečinok SendMultipleSms.py obsahuje skript Python príkladu pre SMS, ktorý vám ukáže, ako poslať viacero SMS správ pomocou Pythonu.
Na inštaláciu knižnice ozekilibsrest musíte otvoriť príkazový riadok a použiť nasledujúci príkaz. Tým sa nainštaluje knižnica ozekilibsrest a závislosti, ktoré potrebuje.
pip install ozekilibsrest
Na odoslanie viacerých SMS z Pythonu:
- Stiahnite a nainštalujte Python
- Nainštalujte knižnicu ozekilibsrest pomocou pip alebo conda
- Stiahnite súbor SendMultipleSms.py.zip
- Rozbaľte .zip súbor z priečinka Stiahnuté
- Otvorte súbor SendMultipleSms.py v ľubovoľnom textovom editore
- Spustite Ozeki SMS Gateway
- Vytvorte HTTP API používateľa v Ozeki
- Spustite kód SendMultipleSms.py pomocou príkazového riadku na odoslanie testovacích SMS správ
- Skontrolujte priečinok Odoslané v Ozeki SMS Gateway
Na odosielanie SMS z Pythonu musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu môžete nainštalovať na rovnakom počítači, kde vyvíjate svoj Python kód. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI na overenie, že vaše pripojenie k mobilnej sieti funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie HTTP SMS API používateľského účtu. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.
Po nastavení prostredia môžete spustiť svoj Python kód.
HTTP API URL na odosielanie SMS z PythonuNa odosielanie SMS z Pythonu bude váš Python musieť vydať HTTP požiadavku na SMS bránu. API URL je zobrazené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaná na rovnakom počítači, kde beží Python SMS aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaná na inom počítači, mala by to byť IP adresa toho počítača.
http://127.0.0.1:9509/api?action=rest
HTTP autentifikácia na odosielanie SMS z Pythonu
Na autentifikáciu Python SMS klienta musíte odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Použitý formát je: base64(username+":"+password). V Pythone môžete na toto kódovanie použiť nasledujúci kód:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==.
HTTP hlavička požiadavky na odoslanie SMS z PythonuNa odoslanie SMS správ musíte do HTTP požiadavky zahrnúť nasledujúce riadky ako hlavičky. Upozorňujeme, že obsahujeme hlavičku Content-Type a Authorization.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Na odoslanie SMS správ vaša Python aplikácia odošle HTTP požiadavku podobnú tej nižšie. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. HTTP telo je JSON kódovaný reťazec dát. Obsahuje čísla príjemcov a texty správ.
POST /api?action=sendmsg HTTP/1.1 Host: 127.0.0.1:9509 User-Agent: python-requests/2.26.0 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Content-Type: application/json Content-Length: 1027 { "messages": [ { "message_id": "cf609600-7269-46e3-ab6e-87ef5a99f848", "to_address": "+3620111111", "text": "Hello world 1!", "create_date": "2021-09-10T15:19:20", "valid_until": "2021-09-17T15:19:20", "time_to_send": "2021-09-10T15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "8d93e43a-b4dc-493f-a243-10db358a58ec", "to_address": "+36202222222", "text": "Hello world 2!", "create_date": "2021-09-10T15:19:20", "valid_until": "2021-09-17T15:19:20", "time_to_send": "2021-09-10T15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "35e56437-15e4-4ee7-9ad4-dfc00a8f7c3a", "to_address": "+36203333333", "text": "Hello world 3!", "create_date": "2021-09-10T15:19:20", "valid_until": "2021-09-17T15:19:20", "time_to_send": "2021-09-10T15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Taktiež vráti JSON kódovanú štruktúru, ktorá poskytuje užitočné detaily o odoslaní správy.
HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/json; charset=utf8 Last-Modified: Fri, 10 Sep 2021 10:22:37 GMT Server: 10/10.3.124 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.124 (www.myozeki.com) Access-Control-Allow-Origin: * Date: Fri, 10 Sep 2021 13:19:19 GMT { "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": "cf609600-7269-46e3-ab6e-87ef5a99f848", "from_station": "%", "to_address": "+3620111111", "to_station": "%", "text": "Hello world 1!", "create_date": "2021-09-10 15:19:20", "valid_until": "2021-09-17 15:19:20", "time_to_send": "2021-09-10 15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "8d93e43a-b4dc-493f-a243-10db358a58ec", "from_station": "%", "to_address": "+36202222222", "to_station": "%", "text": "Hello world 2!", "create_date": "2021-09-10 15:19:20", "valid_until": "2021-09-17 15:19:20", "time_to_send": "2021-09-10 15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "35e56437-15e4-4ee7-9ad4-dfc00a8f7c3a", "from_station": "%", "to_address": "+36203333333", "to_station": "%", "text": "Hello world 3!", "create_date": "2021-09-10 15:19:20", "valid_until": "2021-09-17 15:19:20", "time_to_send": "2021-09-10 15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Ako stiahnuť projekt SendMultipleSMS.py (Video návod)
V nasledujúcom videu sa dozviete, ako môžete použiť Python projekt SendMultipleSms.py. Video začína na stiahnuteľnej stránke a prevedie vás až k otvorenému panelu editora kódu. Dozviete sa, ako stiahnuť a otvoriť súbor s kódom. Video je dlhé len 54 sekúnd, ale obsahuje všetky potrebné informácie, ktoré potrebujete na úspešné použitie ukážkového súboru s kódom.
Ukážkový kód nižšie je súčasťou priečinka SendMultipleSms.py.zip.
V nasledujúcom klipu uvidíte, ako môžete spustiť Python kód SendMultipleSms.py. Video začína otvoreným kódom a prevedie vás až k záložke udalostí so záznamom odoslanej správy. Uvidíte, ako spustiť kód a čo sa stane, ak sa kód vykoná. Video je o niečo kratšie ako minúta, ale obsahuje všetky informácie potrebné na spustenie projektu.
Záver
Tento článok ukázal kroky na odoslanie viacerých SMS v jednej požiadavke z Pythonu.
S týmito vedomosťami a poskytnutými nástrojmi by ste mali byť schopní osloviť
viacerých zákazníkov jedným kódom. Ozeki SMS Gateway zohráva dôležitú
úlohu v tomto procese, pretože tento program organizuje doručovanie správ.
Ozeki SMS Gateway pracuje s vysokou kvalitou a výkonom, čo vám umožňuje
odoslať až 1000 SMS za sekundu.
Pokračujte v učení na stránkach návodov Ozeki, kde si môžete prečítať o
témach ako
mazanie v Pythone.
Teraz už vám stačí len stiahnuť Ozeki
SMS Gateway a začať pracovať!
More information
- Python send SMS with the HTTP rest API (code sample)
- Python send multiple SMS with the HTTP rest API (code sample)
- Python schedule SMS with the HTTP rest API (code sample)
- Python receive SMS with the HTTP rest API (code sample)
- Python delete SMS with the HTTP rest API (code sample)
- How to download the latest Python SMS library from Github