Ako poslať 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 pošle túto SMS príjemcovi a vráti HTTP 200 OK odpoveď na vašu požiadavku.
Ukážka Python kódu na odoslanie SMS nižšie demonštruje, ako môžete posielať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím knižnice Python ozekilibsrest. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.
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)
Ako použiť Python príklad na odoslanie SMS:
Tento Python príklad na odoslanie SMS môže byť použitý v akejkoľvek Python aplikácii. Aby ste ho mohli použiť, musíte nainštalovať balík ozekilibsrest príkazom pip install ozekilibsrest. Po inštalácii balíka musíte vložiť 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. Môžete použiť triedu Message na vytvorenie SMS. Triedu MessageApi môžete použiť na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď cez bezdrôtové pripojenie alebo cez internet.
Stiahnuť SendSms.py
Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendSms.py.zip (355B)
Priečinok SendSms.py obsahuje skript Python príkladu na odoslanie SMS, ktorý vám ukáže, ako poslať viacero SMS správ pomocou Pythonu.
Ak chcete nainštalovať knižnicu 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
Ak chcete poslať SMS z Pythonu:
- Nainštalujte HTTP API používateľa
- Povoľte Log komunikácie na karte Pokročilé
- Stiahnite si SendSMS.py
- Otvorte súbor SendSMS.py v poznámkovom bloku
- Zmeňte údaje na svoje vlastné
- Spustite aplikáciu Ozeki SMS Gateway
- Spustite Python kód SendSMS.py jeho otvorením
- Skontrolujte záznamy, či bola SMS odoslaná
Ak chcete byť schopní posielať SMS z Pythonu, musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj Python kód v Python IDLE alebo poznámkovom bloku. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI, aby ste overili, že vaše mobilné pripojenie 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 používateľským menom "User1" a heslom "qwe123", aby príklad fungoval bez úprav.
Po nastavení prostredia môžete spustiť svoj Python kód.
HTTP API URL na odoslanie SMS z PythonuAk chcete poslať SMS z Pythonu, váš Python bude musieť vydať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Všimnite si, ž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
Na autentifikáciu Python SMS klienta musíte poslať 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 Pythonu môžete použiť nasledujúci kód na toto kódovanie:
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==. Na odoslanie
HTTP hlavička požiadavky na odoslanie SMS z Pythonu
Na odoslanie SMS správ musíte do hlavičiek HTTP požiadavky zahrnúť nasledujúce riadky. Upozorňujeme, že obsahujeme hlavičku typu obsahu a autorizačnú hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Na odoslanie SMS bude vaša Python aplikácia posielať HTTP požiadavku podobnú nižšie uvedenej. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.
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": "Ahoj, svet!", "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": [] } ] }
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. Tiež vráti štruktúru zakódovanú v JSON, ktorá vám poskytne užitočné informácie o odoslaní správy.
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": "Správy zaradené do fronty na odoslanie.", "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": "Ahoj, svet!", "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" } ] } }
Predpokladáme, že ste už nainštalovali Ozeki SMS Gateway, a že ste pripojili ju k mobilnej sieti. Aby ste mohli odosielať SMS na mobilný telefón z Pythonu, musíte nastaviť používateľský účet HTTP API v Ozeki SMS Gateway.
Vytvorte nového používateľa (Video návod)Toto video vám ukáže, ako nastaviť nový používateľský účet HTTP API. Začína na domovskej stránke Ozeki SMS Gateway a končí na karte Udalosti nového používateľa. Video vám ukáže, ako vytvoriť a nakonfigurovať nového používateľa. Skvelé na tomto videu je, že trvá len 30 sekúnd, ale obsahuje všetky informácie, ktoré potrebujete na vytvorenie nového používateľa HTTP API.
Ako odoslať SMS z Pythonu pomocou Python SMS API (Video návod)
Toto video vám ukáže, ako stiahnuť súbor SendSms.py.zip z tejto stránky a ako otvoriť obsah zahrnutého súboru v akomkoľvek textovom editore, ako je napríklad Windows Notepad. Ak sledujete video, všimnete si, že obsah SendSms.py zip je umiestnený na pracovnej ploche Windows.
Príklad Python SMS: SendSms.py
Príklad kódu nižšie je súčasťou súboru SendSms.py.zip.
Po odoslaní SMS je dobré skontrolovať svoju SMS bránu, aby ste videli, čo prijala. Protokol môžete skontrolovať otvorením podrobností HTTP používateľa v konzole na správu Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať. Video začína otvoreným kódom a končí podrobnosťami odoslanej správy. Dozviete sa, ako spustiť projekt, ako projekt vyzerá počas behu a ako vyzerá súbor protokolu po jeho spustení. Video trvá len 42 sekúnd a je ľahko zrozumiteľné. Nebudete mať problém ho sledovať.
Ako skontrolovať, že SMS bola odoslaná do mobilnej siete
Posledným krokom pri overovaní postupu je pozrieť sa na záznamy mobilného sieťového pripojenia. Pred odoslaním správy možno budete musieť v konfigurácii pripojenia zapnúť zaznamenávanie, aby ste videli záznamy. Ak je zaznamenávanie povolené, uvidíte telefónne číslo a text správy, ktorú ste odoslali.
Testovanie, či bola požiadavka prijatá (Video návod)V nasledujúcom videu uvidíte, ako skontrolovať, či bol SMPP klient úspešný pri odosielaní vašej správy. Dozviete sa, ako otvoriť kartu udalostí používateľa SMPP a na čo si dať pozor. Video je dlhé len 18 sekúnd, ale bude veľmi užitočné.
SMS prijatá na telefóne (Video návod)
V nasledujúcom videu uvidíte, ako vyzerá prichádzajúca správa odoslaná z Ozeki SMS Gateway. Začína sa domovskou obrazovkou android telefónu a končí otvorenou správou. Je dlhé len 18 sekúnd a môžete vidieť celý proces prijatia správy.
Zhrnutie
Vyššie uvedený sprievodca vysvetlil kroky odosielania SMS z Pythonu. Ako bolo vidieť, Ozeki vám poskytuje všetky potrebné nástroje na doručenie správ, takže ak boli kroky dôsledne dodržané, odosielanie správ z Pythonu už nie je problém. Ozeki SMS Gateway zohráva obrovskú úlohu pri doručovaní, bez tohto programu by ste sa nedostali k mobilným používateľom. Dôležité je poznamenať, že Ozeki SMS Gateway funguje v každej krajine, takže správy je možné s týmto riešením odosielať medzinárodne.
Nezastavujte sa tu, prehliadnite si stránku s návodmi Ozeki a dozviete sa viac o prijímaní SMS v Pythone.
Vašou ďalšou úlohou je stiahnuť si Ozeki SMS Gateway a nechať prácu začať!
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