Jak přijímat SMS z Python flask
Nejjednodušší způsob, jak přijímat SMS z Pythonu, je použít vestavěnou HTTP/Rest SMS API Ozeki SMS Gateway. Když použijete toto API, budete přijímat SMS zprávy odesláním HTTP GET požadavku na SMS bránu. HTTP Post odpověď bude obsahovat zprávy formátované ve formátu JSON. SMS brána odešle SMS zprávy do python konzolové aplikace a vrátí HTTP 200 OK odpověď na váš požadavek.
Python kód pro přijímání SMS
Ukázka Python SMS kódu níže ukazuje, jak můžete přijímat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s použitím knihovny ozekilibsrest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli z vašich projektů.
ReceiveSms.py
from flask import Flask, render_template, request from ozekilibsrest import Configuration, 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': messages = api.download_incoming() message_count_string = messages.__str__() logs.append(message_count_string) for message in messages.messages: message_string = message.__str__() logs.append(message_string) return render_template('ReceiveSms.html', logs=logs) if __name__ == '__main__': app.run()
ReceiveSms.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Přijímání SMS s 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: 10vh; justify-content: space-evenly;"> <button class="btn btn-primary" style="font-weight: 600;" type="submit" name="submit" value="download">Stáhnout</button> </form> <ul style="width: 40%; margin-left: 30%; height: 70vh; overflow-y: scroll;" class="list-group card"> <li class="list-group-item card"><b>Logy:</b></li> {% if logs %} {% for log in logs %} <li class="list-group-item">{{ log }}</li> {% endfor %} {% endif %} </ul> </body> </html>
Jak použít Python SMS příklad:
Tento Python SMS příklad lze použít v jakékoli Python aplikaci. Pro jeho použití musíte nainstalovat balíček ozekilibsrest pomocí příkazu pip install ozekilibsrest. Po instalaci balíčku musíte vložit direktivu from ozekilibsrest import Configuration, Message, MessageApi do hlavičkové části vašeho Python zdrojového kódu. To vám umožní používat třídy poskytované knihovnou ozekilibsrest. Můžete použít třídu Message k vytvoření SMS. Můžete použít třídu MessageApi k odeslání SMS na SMS bránu. SMS brána přepošle vaši zprávu do mobilní sítě buď přes bezdrátové připojení nebo přes internet.
Stáhnout ReceiveSms.py
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: ReceiveSms.py.zip (1.40Kb)
Co je ve složce ReceiveSms.py?
Složka ReceiveSms.py obsahuje skript python SMS příkladu, který vám ukáže, jak přijímat SMS zprávy pomocí Pythonu.
Jak nainstalovat knihovnu ozekilibsrest
Pro instalaci knihovny ozekilibsrest musíte otevřít příkazový řádek a použít následující příkaz. Tím nainstalujete knihovnu ozekilibsrest a závislosti, které potřebuje.
pip install ozekilibsrest
Jak nainstalovat knihovnu flask
Pro instalaci knihovny flask musíte otevřít příkazový řádek a použít následující příkaz. Tím nainstalujete knihovnu flask a závislosti, které potřebuje.
pip install flask
Jak přijímat SMS z Pythonu (Rychlé kroky)
Pro přijímání SMS z Pythonu:
- Stáhněte a nainstalujte Python
- Nainstalujte knihovnu ozekilibsrest pomocí pip nebo codna
- Nainstalujte knihovnu flask pomocí pip nebo codna
- Stáhněte soubor ReceiveSms.py.zip
- Rozbalte .zip soubor ze složky Stažené
- Otevřete soubor ReceiveSms.py v libovolném textovém editoru
- Spusťte Ozeki SMS Gateway
- Vytvořte HTTP API uživatele v Ozeki
- Spusťte kód ReceiveSms.py pomocí příkazového řádku k odeslání testovacích SMS zpráv
- Zkontrolujte složku Odeslané v Ozeki SMS Gateway
Nainstalujte Ozeki SMS Gateway a vytvořte uživatele HTTP API
Abyste mohli odesílat SMS z Python flask, nejprve musíte nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj Python kód. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete vytvoření uživatele HTTP SMS API. Vytvořte uživatele s uživatelským jménem "http_user" a heslem "qwe123", aby příklad fungoval bez úprav.
Po nastavení prostředí můžete spustit svůj Python kód.
URL HTTP API pro odesílání SMS z Python flask
Pro odesílání SMS z Python flask musí váš Python kód odeslat HTTP požadavek na SMS bránu. API URL je uvedeno níže. Poznámka: IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží Python flask SMS aplikace, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by to být IP adresa toho počítače.
http://127.0.0.1:9509/api?action=rest
HTTP autentizace pro odesílání SMS z Python flask
Pro ověření Python flask SMS klienta musíte odeslat uživatelské jméno a heslo jako base64 kódovaný řetězec na server v HTTP požadavku. Použitý formát je: base64(username+":"+password). V Pythonu můžete pro toto kódování použít následující kód:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
Například, pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', získáte následující base64 kódovaný řetězec: aHR0cF91c2VyOnF3ZTEyMw==.
Hlavička HTTP požadavku pro odesílání SMS z Python flask
Pro odeslání SMS zpráv musíte do HTTP požadavku zahrnout následující řádky jako hlavičky. Poznámka: zahrnujeme hlavičku Content-Type a Authorization.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požadavek pro odesílání SMS z Python flask
Pro odeslání SMS zpráv váš Python flask aplikace odešle HTTP požadavek podobný níže uvedenému. Poznámka, že tento požadavek obsahuje část HTTP hlavičky, v hlavičce jsme definovali složku, ze které chceme stáhnout zprávy, a akci. Také jsme odeslali base64 kódované heslo a uživatelské jméno pro ověření požadavku.
GET /api?action=receivemsg&folder=inbox 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==
HTTP odpověď přijatá Python flask SMS příkladem
Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný nebo ne. Také vrátí JSON kódovanou strukturu, která vám poskytne užitečné detaily o odeslání zprávy.
HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/json; charset=utf8 Last-Modified: Fri, 17 Sep 2021 08:36:07 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, 17 Sep 2021 07:08:11 GMT { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "31bc2fe0-c2a6-4ebe-afcd-6bcd9ea341fb", "from_connection": "admin@localhost", "from_address": "", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 1!", "create_date": "2021-09-17 09:07:14", "valid_until": "2021-09-24 09:07:14", "time_to_send": "2021-09-17 09:07:14", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [] }, { "message_id": "b7b8d592-e182-4e96-a375-b4a6aa73e483", "from_connection": "admin@localhost", "from_address": "", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 2!", "create_date": "2021-09-17 09:07:23", "valid_until": "2021-09-24 09:07:23", "time_to_send": "2021-09-17 09:07:23", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [] }, { "message_id": "b0308970-a3c9-45c4-bf97-14a914a66f57", "from_connection": "admin@localhost", "from_address": "", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 3!", "create_date": "2021-09-17 09:07:33", "valid_until": "2021-09-24 09:07:33", "time_to_send": "2021-09-17 09:07:33", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [] } ] } }
Python flask SMS příklad: ReceiveSms.py
Jak stáhnout projekt ReceiveSMS.py (Video návod)V následujícím videu se dozvíte, jak můžete použít projekt ReceiveSms.py v Python flask. Video začne na stránce ke stažení a provede vás až k otevřenému panelu editoru kódu. Dozvíte se, jak stáhnout a otevřít soubor s kódem. Video je dlouhé pouze 54 sekund, ale obsahuje všechny potřebné informace, které potřebujete k úspěšnému použití ukázkového souboru s kódem.
Ukázkový kód níže je součástí složky ReceiveSms.py.zip.
Jak používat projekt (Video návod)
V následujícím klipu uvidíte, jak můžete spustit Python kód ReceiveSms.py. Video začne otevřeným kódem a provede vás až k záložce událostí s protokolem odeslané zprávy. Uvidíte, jak spustit kód a co se stane, pokud byl kód proveden. Video je o něco kratší než 1 minuta, ale obsahuje všechny informace, které jsou nutné k spuštění projektu.
Závěr
Tento článek ukázal kroky pro přijetí SMS v jednom požadavku z Python flask.
S těmito znalostmi a poskytnutými nástroji byste měli být schopni oslovit
několik zákazníků jediným kódem. Ozeki SMS Gateway má důležitou
roli v tomto procesu, protože tento program organizuje doručování zpráv.
Ozeki SMS Gateway pracuje s vysokou kvalitou a výkonem, což vám umožňuje
odeslat až 1000 SMS za sekundu.
Pokračujte ve svém vzdělávání na výukových stránkách Ozeki, kde si můžete přečíst o
tématech jako
mazání SMS v Python flask.
Nyní už vám zbývá jen stáhnout si Ozeki
SMS Gateway a začít pracovat!
More information
- Python flask odeslat SMS pomocí HTTP REST API (ukázka kódu)
- Python flask odeslat více SMS pomocí HTTP REST API (ukázka kódu)
- Python flask naplánovat SMS pomocí HTTP REST API (ukázka kódu)
- Python flask přijmout SMS pomocí HTTP REST API (ukázka kódu)
- Python flask smazat SMS pomocí HTTP REST API (ukázka kódu)
- Jak stáhnout nejnovější Python flask SMS knihovnu z Githubu