Hogyan töröljünk SMS-t Python Flaskben

A legegyszerűbb módja az SMS-ek törlésének Pythonból az Ozeki SMS Gateway beépített HTTP/REST SMS API-jának használata. Amikor ezt az API-t használod, az SMS-eket egy HTTP POST kérés küldésével törölheted az SMS gateway felé. Az HTTP POST kérés tartalmazni fogja a törölni kívánt üzenetek azonosítóit, JSON formátumban formázva. Az SMS gateway visszaadja a sikeresen törölt üzenetek azonosítóit, valamint egy HTTP 200 OK választ küld a kérésedre.

hogyan töröljünk sms-t python flaskben
1. ábra - Hogyan töröljünk SMS-t Python Flaskben

Python kód SMS törléséhez

Az alábbi Python SMS kódminta bemutatja, hogyan törölhetsz SMS-eket az Ozeki SMS Gateway HTTP REST SMS API-jával, a Python ozekilibsrest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető, és bármilyen projektben felhasználhatod és módosíthatod.

DeleteSms.py

		from flask import Flask, render_template, request
		from ozekilibsrest import Configuration, Message, MessageApi, Folder
		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(message_id=request.form['message_id'])
		
		        if request.form['folder'] == 'inbox':
		            log = api.delete(Folder.Inbox, message)
		        elif request.form['folder'] == 'outbox':
		            log = api.delete(Folder.Outbox, message)
		        elif request.form['folder'] == 'sent':
		            log = api.delete(Folder.Sent, message)
		        elif request.form['folder'] == 'notsent':
		            log = api.delete(Folder.NotSent, message)
		        else:
		            log = api.delete(Folder.Deleted, message)
		        logs.append(log)
		    return render_template('DeleteSms.html', logs=logs)
		
		
		if __name__ == '__main__':
		    app.run()
	

1. kód - DeleteSms.py

DeleteSms.html

		<!DOCTYPE html>
		<html lang="en">
		    <head>
		        <meta charset="UTF-8">
		        <title>SMS törlése Ozeki SMS Gateway-vel</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>ID:</b>
		            <input class="form-control" type="text"
		                   name="message_id" placeholder="ff44c9fb-1494-4457-8f59-5915dc16500d">
		            <b>Mappa:</b>
		            <select class="form-control" name="folder">
		                <option value="inbox">Beérkező üzenetek</option>
		                <option value="outbox">Kimenő üzenetek</option>
		                <option value="sent">Elküldött üzenetek</option>
		                <option value="notsent">Nem elküldött üzenetek</option>
		                <option value="deleted">Törölt üzenetek</option>
		            </select>
		            <input class="btn btn-primary"
		                   style="font-weight: 600;"
		                   type="submit"
		                   name="submit"
		                   value="TÖRÖL">
		        </form>
		        <ul style="width: 40%; margin-left: 30%; height: 40vh; overflow-y: scroll;"
		            class="list-group card">
		            <li class="list-group-item card"><b>Naplók:</b></li>
		            {% if logs %}
		                {% for log in logs %}
		                    <li class="list-group-item">{{ log }}</li>
		                {% endfor %}
		            {% endif  %}
		        </ul>
		    </body>
		</html>
	

2. kód - DeleteSms.html

Hogyan használd a Python SMS példát:

Ez a Python Flask SMS példa bármilyen Python Flask alkalmazásban használható. A használatához telepítened kell az ozekilibsrest csomagot a pip install ozekilibsrest paranccsal. A csomag telepítése után a Python forráskódod fejléc részébe be kell illesztened a from ozekilibsrest import Configuration, Message, MessageApi direktívát. Ez lehetővé teszi az ozekilibsrest könyvtár által nyújtott osztályok használatát. A Message osztály segítségével létrehozhatod az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobil hálózatba vezeték nélküli kapcsolaton vagy az interneten keresztül.

DeleteSms.py letöltése

A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: DeleteSms.py.zip (1.57Kb)

Mi található a DeleteSms.py mappában?

A DeleteSms.py mappa tartalmazza a Python Flask SMS példa szkriptjét, amely bemutatja, hogyan törölhetsz SMS üzeneteket Python használatával.

delete sms py mappa tartalma
2. ábra - Mi található a DeleteSms.py.zip-ben

Hogyan telepítsd az ozekilibsrest könyvtárat

Az ozekilibsrest könyvtár telepítéséhez meg kell nyitnod a parancssort, és a következő parancsot kell használnod. Ez telepíti az ozekilibsrest könyvtárat és annak függőségeit.

		pip install ozekilibsrest
	

2. kód - Parancs az ozekilibsrest könyvtár telepítéséhez

Hogyan telepítsd a flask könyvtárat

A flask könyvtár telepítéséhez meg kell nyitnod a parancssort, és a következő parancsot kell használnod. Ez telepíti a flask könyvtárat és annak függőségeit.

		pip install flask
	

2. kód - Parancs a flask könyvtár telepítéséhez

Hogyan törölj SMS-t Python Flaskből (Gyors lépések)

Az SMS törléséhez Python Flaskből:

  1. Töltsd le és telepítsd a Python-t
  2. Telepítsd az ozekilibsrest könyvtárat pip vagy conda segítségével
  3. Telepítsd a flask könyvtárat pip vagy conda segítségével
  4. Töltsd le a DeleteSms.py.zip fájlt
  5. Csomagold ki a .zip fájlt a Letöltések mappából
  6. Nyisd meg a DeleteSms.py fájlt bármilyen szövegszerkesztőben
  7. Indítsd el az Ozeki SMS Gateway-t
  8. Hozz létre egy HTTP API felhasználót az Ozeki-ban
  9. Futtasd a DeleteSms.py kódot a parancssorból a teszt SMS üzenetek elküldéséhez
  10. Ellenőrizd az Elküldött mappát az Ozeki SMS Gateway-ben

Telepítsd az Ozeki SMS Gateway-t és hozz létre egy HTTP API felhasználót

Ahhoz, hogy SMS-t tudj küldeni Python Flaskből, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol a Python kódodat fejleszted. A telepítés után a következő lépés az, hogy csatlakoztassad az Ozeki SMS Gateway-t a mobil hálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból annak ellenőrzésére, hogy a mobil hálózati kapcsolatod működik-e. A környezet előkészítésének utolsó lépése, hogy létrehozz egy HTTP SMS API felhasználói fiókot. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután a környezet be van állítva, futtathatod a Python kódodat.

HTTP API URL az SMS küldéséhez Pythonból

Az SMS-ek Python Flaskből történő küldéséhez a Python kódodnak HTTP kérést kell küldenie az SMS gateway felé. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét írd. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Python Flask SMS alkalmazás fut, ez maradhat 127.0.0.1. Ha másik számítógépre van telepítve, annak IP címét kell megadni.

		http://127.0.0.1:9509/api?action=rest
	

HTTP hitelesítés az SMS küldéséhez Python Flaskből

A Python Flask SMS kliens hitelesítéséhez a felhasználónevet és jelszót base64 kódolt sztringként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(username+":"+password). Pythonban a következő kódot használhatod a kódoláshoz:

	    def create_authorization_header(username, password):
	        username_password = f'{ username }:{ password }'
	        return f'Basic { b64encode(username_password.encode()).decode() }'
	

Például, ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolt sztringet kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc az SMS küldéséhez Python Flaskből

Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznia a HTTP kérés fejlécének. Figyelj arra, hogy tartalmazzon egy Content-Type és egy Authorization fejlécet.

		Content-Type: application/json
		Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

HTTP kérés az SMS küldéséhez Python Flaskből

Az SMS üzenetek beküldéséhez a Python Flask alkalmazásod egy olyan HTTP kérést küld, mint az alábbi. Figyelj rá, hogy ez a kérés tartalmaz egy HTTP fejléc részt és egy HTTP törzs részt. A törzs rész tartalmazza a törölni kívánt üzenetek azonosítóit.

		POST /api?action=deletemsg 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: 76
		
		{
			"folder": "inbox",
			"message_ids": [
				"af5819d4-e32f-4653-a6d4-8fb49017164e"
			]
		}
	

HTTP válasz, amit a Python Flask SMS példa kap

Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Ezenkívül egy JSON kódolt struktúrát is visszaad, amely hasznos részleteket nyújt az üzenet beküldéséről.

		HTTP/1.1 200 OK
		Transfer-Encoding: chunked
		Content-Type: application/json; charset=utf8
		Last-Modified: Fri, 17 Sep 2021 09:14:01 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:54:08 GMT
		
		{
		  "http_code": 200,
		  "response_code": "SUCCESS",
		  "response_msg": "",
		  "data": {
		    "folder": "inbox",
		    "message_ids": [
		      "af5819d4-e32f-4653-a6d4-8fb49017164e"
		    ]
		  }
		}
	

Python Flask SMS példa: DeleteSms.py

Hogyan töltsd le a DeleteSms.py projektet (Videó útmutató)

A következő videóban megtudhatod, hogyan használhatod a DeleteSms.py Python Flask projektet. A videó a letöltési oldallal kezdődik, és végigvezet a megnyitott kódszerkesztő panelig. Megtanulod, hogyan töltsd le és nyisd meg a kódfájlt. A videó mindössze 54 másodperc hosszú, de tartalmazza az összes szükséges információt a példa kódfájl sikeres használatához.

1. videó - Hogyan töltsd le és nyisd meg a fenti megoldást (Videó útmutató)

Az alábbi példakód a DeleteSms.py.zip mappa része.

hogyan törölj sms-t python flaskkel
3. ábra - DeleteSms.py

4. ábra - A példa alkalmazás futtatása a parancssorban

5. ábra - A fenti python kód eredménye

Hogyan használd a projektet (Videó útmutató)

A következő klipben látni fogod, hogyan indíthatod el a DeleteSms.py Python kódot. A videó a megnyitott kóddal kezdődik, és végigvezet az események lapjáig a küldött üzenet naplójával. Látni fogod, hogyan indítsd el a kódot és mi történik, ha a kód végrehajtódik. A videó egy kicsit kevesebb, mint 1 perc hosszú, de tartalmazza az összes szükséges információt a projekt futtatásához.

2. videó - Hogyan használd a DeleteSms.py szkriptet (Videó útmutató)

Összegzés

Ez a cikk bemutatta az SMS-ek egy kérésben történő törlésének lépéseit Python Flaskből.

Ezzel a tudással és a biztosított eszközökkel több ügyfélhez is el tudsz jutni egyetlen kóddal. Az Ozeki SMS Gateway fontos szerepet játszik ebben a folyamatban, mivel ez a program szervezi az üzenetküldést. Az Ozeki SMS Gateway nagy minőségben és teljesítménnyel működik, lehetővé téve akár 1000 SMS másodpercenkénti küldését.

Folytasd a tanulást az Ozeki oktató oldalain, ahol olyan témákról olvashatsz, mint az SMS küldése Python Flaskben.

Most már csak annyi a dolgod, hogy letöltöd az Ozeki SMS Gateway-t és elkezdesz dolgozni!

More information