Ako prijímať SMS z Python flask

Najjednoduchší spôsob, ako prijímať SMS z Pythonu, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete prijímať SMS správy vydaním HTTP GET požiadavky na SMS bránu. HTTP Post odpoveď bude obsahovať správy formátované v JSON formáte. SMS brána odošle SMS správy do python konzolovej aplikácie a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako prijímať sms z python flask
Obrázok 1 - Ako prijímať SMS z Python flask

Python kód na prijímanie SMS

Ukážka Python SMS kódu nižšie demonštruje, ako môžete prijímať 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.

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()
	

Kód 1 - ReceiveSms.py

ReceiveSms.html

		<!DOCTYPE html>
		<html lang="en">
		    <head>
		        <meta charset="UTF-8">
		        <title>Receive 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: 10vh; justify-content: space-evenly;">
		            <button class="btn btn-primary" style="font-weight: 600;"
		                   type="submit" name="submit" value="download">Download</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>Logs:</b></li>
		            {% if logs %}
		                {% for log in logs %}
		                    <li class="list-group-item">{{ log }}</li>
		                {% endfor %}
		            {% endif %}
		        </ul>
		    </body>
		</html>
	

Kód 2 - ReceiveSms.html

Ako použiť Python SMS príklad:

Tento Python 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. 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. 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ď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť ReceiveSms.py

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý a používaný a upravovaný bezplatne.
Stiahnuť: ReceiveSms.py.zip (1.40Kb)

Čo je v priečinku ReceiveSms.py?

Priečinok ReceiveSms.py obsahuje skript Python SMS príkladu, ktorý vám ukáže, ako prijímať SMS správy pomocou Pythonu.

priečinok receive sms py
Obrázok 2 - Čo je vo vnútri ReceiveSms.py.zip

Ako nainštalovať knižnicu ozekilibsrest

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
	

Kód 3 - Príkaz na inštaláciu knižnice ozekilibsrest

Ako nainštalovať knižnicu flask

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
	

Kód 4 - Príkaz na inštaláciu knižnice flask

Ako prijímať SMS z Pythonu (Rýchle kroky)

Na prijímanie SMS z Pythonu:

  1. Stiahnite a nainštalujte Python
  2. Nainštalujte knižnicu ozekilibsrest pomocou pip alebo conda
  3. Nainštalujte knižnicu flask pomocou pip alebo conda
  4. Stiahnite súbor ReceiveSms.py.zip
  5. Extrahujte .zip súbor z priečinka Stiahnuté
  6. Otvorte súbor ReceiveSms.py v ľubovoľnom textovom editore
  7. Spustite Ozeki SMS Gateway
  8. Vytvorte HTTP API používateľa v Ozeki
  9. Spustite kód ReceiveSms.py pomocou príkazového riadku na odoslanie testovacích SMS správ
  10. Skontrolujte odoslané správy v Ozeki SMS Gateway

Inštalácia Ozeki SMS Gateway a vytvorenie používateľa HTTP API

Ak chcete odosielať SMS z Python flask, najprv musíte nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnaký počítač, 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, 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 "http_user" 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 Python flask

Na odosielanie SMS z Python flask bude váš Python kód 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 flask 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 Python flask

Na autentifikáciu Python flask SMS klienta musíte odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). V Python 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==.

Hlavička HTTP požiadavky na odosielanie SMS z Python flask

Na odosielanie 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==
	

HTTP požiadavka na odosielanie SMS z Python flask

Na odoslanie SMS správ vaša Python flask aplikácia odošle HTTP požiadavku podobnú tej nižšie. Upozorňujeme, že táto požiadavka obsahuje časť hlavičky HTTP, v hlavičke sme definovali priečinok, z ktorého chceme stiahnuť správy, a akciu. Tiež sme odoslali base64 kódované heslo a používateľské meno na autentifikáciu požiadavky.

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 odpoveď prijatá Python flask SMS príkladom

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á 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, 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 príklad: ReceiveSms.py

Ako stiahnuť projekt ReceiveSMS.py (Video návod)

V nasledujúcom videu sa dozviete, ako môžete použiť projekt ReceiveSms.py v Pythone s frameworkom Flask. Video začína na stiahnuteľnej stránke a prevedie vás až k otvorenej 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 na úspešné použitie príkladového kódu.

Video 1 - Ako stiahnuť a otvoriť riešenie vyššie (Video návod)

Príkladový kód nižšie je súčasťou priečinka ReceiveSms.py.zip.

Obrázok 3 - ReceiveSms.py

Obrázok 4 - Spustenie príkladovej aplikácie Python flask v príkazovom riadku

Obrázok 5 - Výsledok vyššie uvedeného python kódu

Ako použiť projekt (Video návod)

V nasledujúcom klipu uvidíte, ako môžete spustiť Python kód ReceiveSms.py. Video začína otvoreným kódom a prevedie vás až k záložke udalostí s 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.

Video 2 - Ako použiť skript ReceiveSms.py (Video návod)

Záver

Tento článok ukázal kroky na prijatie SMS v jednom požiadavku z Python flask.

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 má 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 SMS v Python flask.

Teraz už vám stačí len stiahnuť si Ozeki SMS Gateway a začať pracovať!

More information