Cum să trimiți SMS din Python flask
Cea mai simplă metodă de a trimite SMS din Python flask este utilizarea API-ului HTTP/Rest SMS încorporat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin emiterea unei cereri HTTP Post către gateway-ul SMS. Cererea HTTP Post va conține un mesaj formatat în format json. Gateway-ul SMS va trimite acest SMS către telefonul destinatar și va returna un răspuns HTTP 200 OK la cererea ta.
Exemplul de cod Python pentru SMS de mai jos demonstrează cum poți trimite SMS folosind API-ul http rest sms al Ozeki SMS Gateway cu ajutorul bibliotecii Python ozekilibsrest. Această bibliotecă este oferită gratuit și poți să o folosești și să o modifici în oricare dintre proiectele tale.
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>Trimite SMS cu 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>Către adresă:</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="TRIMITE"> </form> <ul style="width: 40%; margin-left: 30%; height: 40vh; overflow-y: scroll;" class="list-group card"> <li class="list-group-item card"><b>Jurnal:</b></li> {% if logs %} {%for log in logs%} <li class="list-group-item">{{ log }}</li> {%endfor%} {% endif %} </ul> </body> </html>
Cum să folosești exemplul Python pentru SMS:
Acest exemplu de SMS în Python flask poate fi folosit în orice aplicație Python. Pentru a-l utiliza, trebuie să instalezi pachetul ozekilibsrest cu comanda pip install ozekilibsrest și pachetul flask cu comanda pip install flask. După ce pachetele sunt instalate, trebuie să adaugi directiva from ozekilibsrest import Configuration, Message, MessageApi și from flask import Flask, render_template, request în secțiunea de antet a codului tău Python. Acest lucru îți va permite să folosești clasele oferite de biblioteca ozekilibsrest. Poți folosi clasa Message pentru a crea SMS-ul. Poți folosi clasa MessageApi pentru a trimite SMS-ul către gateway-ul SMS. Gateway-ul SMS va transmite mesajul tău către rețeaua mobilă fie printr-o conexiune wireless, fie prin Internet.
Descarcă SendSms.py
Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendSms.py.zip (1.42Kb)
Folderul SendSms.py conține scriptul exemplului Python pentru SMS care îți va arăta cum să trimiți mai multe mesaje SMS folosind Python.
Pentru a instala biblioteca ozekilibsrest, trebuie să deschizi promptul de comandă și să folosești următoarea comandă. Aceasta va instala biblioteca ozekilibsrest și dependențele necesare.
pip install ozekilibsrest
Pentru a instala biblioteca flask, trebuie să deschizi promptul de comandă și să folosești următoarea comandă. Aceasta va instala biblioteca flask și dependențele necesare.
pip install flask
Cum să trimiți SMS din Python (Ghid simplu)
Pentru a trimite SMS din Python:
- Descărcați și instalați Python
- Instalați biblioteca ozekilibsrest folosind pip sau codna
- Instalați biblioteca flask folosind pip sau codna
- Instalați un utilizator HTTP API
- Activați Log communication events în fila Advanced
- Descărcați SendSMS.py
- Deschideți fișierul SendSms.py în Notepad
- Modificați datele cu cele personale
- Lansați aplicația Ozeki SMS Gateway
- Rulați codul Python SendSms.py deschizându-l
- Verificați jurnalele pentru a vedea dacă SMS-ul a fost trimis
Pentru a putea trimite SMS din Python, mai întâi trebuie să instalați Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același computer unde dezvoltați codul Python în Python IDLE sau Notepad. După instalare, următorul pas este să conectați Ozeki SMS Gateway la rețeaua mobilă. Puteți creați un utilizator HTTP SMS API. Creați un utilizator cu numele de utilizator "User1" și parola "qwe123" pentru ca exemplul să funcționeze fără modificări.
După ce mediul este configurat, puteți rula codul Python.
URL-ul HTTP API pentru a trimite SMS din PythonPentru a trimite SMS din Python, Python-ul dumneavoastră va trebui să trimită o cerere HTTP către gateway-ul SMS. URL-ul API este afișat mai jos. Rețineți că adresa IP (127.0.0.1) ar trebui să fie înlocuită cu adresa IP a gateway-ului dumneavoastră SMS. Dacă Ozeki SMS Gateway este instalat pe același computer unde rulează aplicația Python SMS, aceasta poate fi 127.0.0.1. Dacă este instalat pe un computer diferit, ar trebui să fie adresa IP a acelui computer.
http://127.0.0.1:9509/api?action=rest
Pentru a autentifica clientul Python SMS, trebuie să trimiteți numele de utilizator și parola într-un șir codat base64 către server într-o cerere HTTP. Formatul folosit este: base64(nume_utilizator+":"+parolă). În Python puteți folosi următorul cod pentru a face această codare:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
De exemplu, dacă codificați numele de utilizator 'http_user' și parola 'qwe123', veți obține următorul șir codat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite
Antetul cererii HTTP pentru a trimite SMS din PythonPentru a trimite mesajele SMS, trebuie să includeți următoarele linii ca antete în cererea HTTP. Rețineți că includem un tip de conținut și un antet de autorizare.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Pentru a trimite SMS-ul, aplicația dumneavoastră Python va trimite o cerere HTTP similară cu cea de mai jos. Rețineți că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codat JSON. Acesta conține numărul destinatarului și textul mesajului.
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": "Salut, Lume!", "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": [] } ] }
Odată ce gateway-ul SMS primește această cerere, va genera un răspuns HTTP. Răspunsul HTTP va conține un cod de stare, pentru a indica dacă cererea de trimitere SMS a fost reușită sau nu. De asemenea, va returna o structură codată JSON pentru a vă oferi detalii utile despre trimiterea mesajului.
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": "Mesaje în așteptare pentru livrare.", "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": "Salut, Lume!", "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" } ] } }
Presupunem că ați instalat deja Ozeki SMS Gateway și ați conectat-o la rețeaua mobilă. Pentru a putea trimite SMS către un telefon mobil din Python, trebuie să configurați un cont de utilizator HTTP API în Ozeki SMS Gateway.
Crează un utilizator nou (Tutorial video)
Acest videoclip vă prezintă cum să configurați un cont nou de utilizator HTTP API. Va începe cu pagina principală a Ozeki SMS Gateway și se va încheia cu fila Evenimente a noului utilizator. Videoclipul vă va arăta cum să creați și să configurați noul utilizator. Marele avantaj al acestui videoclip este că durează doar 30 de secunde dar conține toate informațiile necesare pentru a crea un nou utilizator http api.
Cum să trimiți SMS din Python folosind API-ul Python sms (Tutorial video)
Acest videoclip vă arată cum să descărcați fișierul SendSms.py.zip de pe această pagină și cum să deschideți conținutul fișierului inclus în orice editor de text cum ar fi Windows Notepad. Dacă urmăriți videoclipul, veți observa, că conținutul SendSms.py zip este plasat pe desktop-ul Windows.
Exemplu Python sms: SendSms.py
Codul exemplu de mai jos face parte din fișierul SendSms.py.zip.
Pentru a trimite un SMS cu proiectul exemplu de mai sus, trebuie să rulați scriptul python folosind comanda python SendSms.py. După ce scriptul rulează veți observa că linia de comandă vă spune să deschideți adresa http://127.0.0.1:5000. Acolo puteți vedea primul dvs. proiect python flask, care este capabil să trimită un mesaj sms către Ozeki SMS Gateway.
Cum să verificați dacă SMS-ul a fost acceptat de utilizatorul HTTP (Tutorial video)
După ce SMS-ul a fost trimis, este o idee bună să verificați gateway-ul SMS, pentru a vedea ce a primit. Puteți verifica jurnalul deschizând detaliile utilizatorului HTTP din consola de management Ozeki SMS Gateway. Următorul videoclip vă arată ce să căutați. Videoclipul va începe cu codul deschis și se va încheia cu detaliile mesajului trimis. Veți învăța cum să lansați proiectul, cum arată proiectul în timpul funcționării și cum arată fișierul jurnal după aceea. Videoclipul durează doar 42 de secunde și este ușor de înțeles. Nu veți avea probleme să-l urmăriți.
Cum să verificați dacă SMS-ul a fost trimis către rețeaua mobilă
Pasul final în verificarea procedurii este să aruncați o privire la jurnalele conexiunii la rețeaua mobilă. Este posibil să fie nevoie să activați jurnalizarea în configurația conexiunii înainte de a trimite mesajul pentru a vedea jurnalele. Dacă jurnalizarea este activată, veți vedea numărul de telefon și textul mesajului pe care l-ați trimis.
Testați dacă cererea a fost acceptată (Tutorial video)
În următorul videoclip, veți vedea cum să verificați dacă clientul SMPP a reușit să trimită mesajul dvs. Veți învăța cum să deschideți fila Evenimente a utilizatorului SMPP și ce să căutați. Videoclipul durează doar 18 secunde dar va fi foarte util.
SMS primit pe telefon (Tutorial video)
În următorul videoclip, veți vedea cum arată un mesaj primit care a fost trimis din Ozeki SMS Gateway. Va începe cu ecranul principal al unui telefon android și se va încheia cu mesajul deschis. Durează doar 18 secunde și puteți vedea întregul proces de primire a unui mesaj.
Rezumat
Ghidul de mai sus a explicat pașii pentru trimiterea SMS-urilor din Python Flask. După cum se poate observa, Ozeki vă oferă toate instrumentele necesare pentru livrarea mesajelor, așa că, dacă pașii au fost urmăriți cu atenție, trimiterea mesajelor din Python nu mai este o problemă. Ozeki SMS Gateway joacă un rol enorm în livrare, fără acest program nu ați putea ajunge la utilizatorii de telefoane mobile. Este important de menționat că Ozeki SMS Gateway funcționează în orice țară, astfel încât mesajele pot fi trimise la nivel internațional cu această soluție.
Nu încheiați citirea aici, navigați pe pagina de tutoriale Ozeki și aflați despre primirea SMS-urilor în Python.
Următorul lucru pe care trebuie să-l faceți este să descărcați Ozeki SMS Gateway și să începeți lucrul!
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