Ako poslať SMS z Python flask
Najjednoduchší spôsob, ako poslať SMS z Python flask, 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 na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.
Ukážka Python SMS kódu nižšie demonštruje, ako môžete poslať 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 flask import Flask, render_template, request from ozekilibsrest import Configuration, Message, MessageApi app = Flask(__name__) configuration = Configuration( username="http_user", password="qwe123", api_url="http://127.0.0.1:9509/api" ) api = MessageApi(configuration) logs = [] @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': message = Message( to_address=request.form['to_address'], text=request.form['text'] ) log = api.send(message) logs.append(log) return render_template('SendSms.html', logs=logs) if __name__ == '__main__': app.run()
SendSms.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Send SMS with Ozeki SMS Gateway</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body> <form action="/" method="POST" class="form-group" style="width: 40%; margin-top: 10vh; margin-left: 30%; display: flex; flex-direction: column; height: 30vh; justify-content: space-evenly;"> <b>To address:</b> <input class="form-control" type="text" name="to_address" placeholder="+36201111111" autocomplete=false> <b>Text:</b> <input class="form-control" type="text" name="text" placeholder="Hello world!" autocomplete=false> <input class="btn btn-primary" style="font-weight: 600;" type="submit" name="submit" value="SEND"> </form> <ul style="width: 40%; margin-left: 30%; height: 40vh; overflow-y: scroll;" class="list-group card"> <li class="list-group-item card"><b>Logs:</b></li> {% if logs %} {%for log in logs%} <li class="list-group-item">{{ log }}</li> {%endfor%} {% endif %} </ul> </body> </html>
Ako použiť Python SMS príklad:
Tento Python flask SMS príklad 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 a balík flask príkazom pip install flask. Po inštalácii balíkov musíte vložiť direktívu from ozekilibsrest import Configuration, Message, MessageApi a from flask import Flask, render_template, request 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. Môžete použiť triedu MessageApi 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 (1.42Kb)
Priečinok SendSms.py obsahuje skript Python SMS príkladu, 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 inštaláciu knižnice flask musíte otvoriť príkazový riadok a použiť nasledujúci príkaz. Tým sa nainštaluje knižnica flask a závislosti, ktoré potrebuje.
pip install flask
Ako poslať SMS z Pythonu (Jednoduchý návod)
Ako poslať SMS z Pythonu:
- Stiahnite a nainštalujte Python
- Nainštalujte knižnicu ozekilibsrest pomocou pip alebo codna
- Nainštalujte knižnicu flask pomocou pip alebo codna
- Vytvorte používateľa HTTP API
- Povoľte zaznamenávanie komunikačných udalostí na karte Pokročilé
- Stiahnite si súbor SendSMS.py
- Otvorte súbor SendSms.py v poznámkovom bloku Windows
- 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 môcť 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 pripojenie k mobilnej sieti funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie používateľa HTTP SMS API. 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.
URL HTTP API na odosielanie SMS z PythonuAk chcete posielať SMS z Pythonu, váš Python bude musieť odoslať HTTP požiadavku na SMS bránu. API URL je uvedené 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
Na overenie Python SMS klienta musíte odoslať používateľské meno a heslo v reťazci zakódovanom do base64 na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). 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 reťazec zakódovaný do base64: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie
Hlavička HTTP požiadavky na odosielanie SMS z PythonuNa odoslanie SMS správ musíte do hlavičky HTTP požiadavky zahrnúť nasledujúce riadky. Upozorňujeme, že obsahujeme hlavičku Content-Type a Authorization.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Na odoslanie SMS vaša Python aplikácia odošle HTTP požiadavku podobnú nižšie uvedenej. Upozorňujeme, že táto požiadavka obsahuje časť hlavičky HTTP a časť tela HTTP. Telo HTTP je reťazec dát zakódovaný do 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": "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": [] } ] }
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ú do 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": "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" } ] } }
Predpokladáme, že ste už nainštalovali Ozeki SMS Gateway, a že ste pripojili ho k mobilnej sieti. Aby ste mohli posielať SMS na mobilný telefón z Pythonu, musíte v Ozeki SMS Gateway nastaviť používateľský účet HTTP API.
Vytvorenie nového používateľa (Video návod)
Toto video vám ukáže, ako nastaviť nový účet HTTP API používateľa. 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 potrebné na vytvorenie nového HTTP API používateľa.
Ako poslať 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 vloženého súboru v akomkoľvek textovom editore, ako je napríklad Windows Poznámkový blok. Ak si pozriete video, všimnete si, že obsah SendSms.py zipu je umiestnený na pracovnej ploche Windows.
Príklad SMS v Pythone: SendSms.py
Ukážkový kód nižšie je súčasťou súboru SendSms.py.zip.
Ak chcete poslať SMS pomocou vyššie uvedeného vzorového projektu, musíte spustiť python skript pomocou príkazu python SendSms.py. Po spustení skriptu si všimnete, že príkazový riadok hovorí, že musíte otvoriť http://127.0.0.1:5000 url. Tam uvidíte svoj prvý projekt Python Flask, ktorý je schopný poslať SMS správu do Ozeki SMS Gateway.
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á protokolový súbor po jeho ukončení. Video trvá len 42 sekúnd a je ľahko zrozumiteľné. Nebudete mať problém s jeho sledovaním.
Ako skontrolovať, či bola SMS odoslaná do mobilnej siete
Posledným krokom pri overovaní postupu je pozrieť sa na protokoly mobilného pripojenia. Možno budete musieť zapnúť protokolovanie v konfigurácii pripojenia pred odoslaním správy, aby ste videli protokoly. Ak je protokolovanie zapnuté, 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 Udalosti SMPP používateľa a čo hľadať. Video trvá 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, ktorá bola odoslaná z Ozeki SMS Gateway. Začína na domovskej obrazovke telefónu s Androidom a končí otvorenou správou. Trvá len 18 sekúnd a môžete vidieť celý proces prijatia správy.
Zhrnutie
Sprievodca vyššie vysvetlil kroky na odoslanie SMS z Python flask. 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 môžu byť odosielané medzinárodne s týmto riešením.
Neskončite čítanie 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 flask send SMS with the HTTP rest API (code sample)
- Python flask send multiple SMS with the HTTP rest API (code sample)
- Python flask schedule SMS with the HTTP rest API (code sample)
- Python flask receive SMS with the HTTP rest API (code sample)
- Python flask delete SMS with the HTTP rest API (code sample)
- How to download the latest Python flask SMS library from Github