Cum să trimiți mai multe SMS-uri din Python

Cea mai simplă metodă de a trimite SMS-uri din Python 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 numărul de telefon al destinatarului și va returna un răspuns HTTP 200 OK la cererea ta.

cum să trimiți mai multe sms-uri din python
Figura 1 - Cum să trimiți mai multe SMS-uri din Python

Cod Python pentru a trimite SMS pe mobil

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 o poți folosi și modifica în oricare dintre proiectele tale.

SendMultipleSms.py

		from ozekilibsrest import Configuration, Message, MessageApi
		
		configuration = Configuration(
		    username="http_user",
		    password="qwe123",
		    api_url="http://127.0.0.1:9509/api"
		)
		
		msg1 = Message(
		    to_address="+3620111111",
		    text="Salut lume 1!"
		)
		
		msg2 = Message(
		    to_address="+36202222222",
		    text="Salut lume 2!"
		)
		
		msg3 = Message(
		    to_address="+36203333333",
		    text="Salut lume 3!"
		)
		
		api = MessageApi(configuration)
		
		result = api.send([msg1, msg2, msg3])
		
		print(result)
	

Cum să folosești exemplul Python pentru SMS:

Acest exemplu Python pentru SMS poate fi folosit în orice aplicație Python. Pentru a-l utiliza, trebuie să instalezi pachetul ozekilibsrest cu comanda pip install ozekilibsrest. După ce pachetul este instalat, trebuie să adaugi directiva from ozekilibsrest import Configuration, Message, MessageApi în secțiunea de antet a codului sursă Python. Aceasta îț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ă SendMultipleSms.py

Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendMultipleSms.py.zip (423B)

Ce conține folderul SendMultipleSms.py?

Folderul SendMultipleSms.py conține scriptul exemplului Python pentru SMS care îți va arăta cum să trimiți mai multe mesaje SMS folosind Python.

director send multiple sms py
Figura 2 - Ce conține SendMultipleSms.py.zip

Cum să instalezi biblioteca ozekilibsrest

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
	

Codul 2 - Comanda pentru a instala biblioteca ozekilibsrest

Cum să trimiți mai multe SMS-uri din Python (Pași rapizi)

Pentru a trimite mai multe SMS-uri din Python:

  1. Descarcă și instalează Python
  2. Instalează biblioteca ozekilibsrest folosind pip sau codna
  3. Descarcă fișierul SendMultipleSms.py.zip
  4. Extrage fișierul .zip din folderul Downloads
  5. Deschide fișierul SendMultipleSms.py în orice editor de text
  6. Lansează Ozeki SMS Gateway
  7. Creează un utilizator HTTP API în Ozeki
  8. Rulează codul SendMultipleSms.py folosind promptul de comandă pentru a trimite mesajele SMS de test
  9. Verifică căsuța Trimise în Ozeki SMS Gateway

Instalează Ozeki SMS Gateway și creează un utilizator HTTP API

Pentru a putea trimite SMS din Python, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același calculator unde dezvolți codul Python. După instalare, următorul pas este să conectezi Ozeki SMS Gateway la rețeaua mobilă. Poți trimite un SMS de test din interfața grafică Ozeki pentru a verifica dacă conexiunea ta la rețeaua mobilă funcționează. Ultimul pas pentru a-ți pregăti mediul este să creezi un utilizator HTTP SMS API. Creează un utilizator cu numele de utilizator "http_user" și parola "qwe123" pentru a face exemplul să funcționeze fără modificări.

După ce mediul este configurat, poți rula codul Python.

URL API HTTP pentru a trimite SMS din Python

Pentru a trimite SMS din Python, aplicația ta Python va trebui să emită o cerere HTTP către gateway-ul SMS. URL-ul API este afișat mai jos. Reține că adresa IP (127.0.0.1) ar trebui să fie înlocuită cu adresa IP a gateway-ului tău SMS. Dacă Ozeki SMS Gateway este instalat pe același calculator unde rulează aplicația Python pentru SMS, aceasta poate fi 127.0.0.1. Dacă este instalat pe un alt calculator, ar trebui să fie adresa IP a acelui calculator.

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

Autentificare HTTP pentru a trimite SMS din Python

Pentru a autentifica clientul SMS în Python, trebuie să trimiteți numele de utilizator și parola într-un șir codat base64 către server într-o cerere HTTP. Formatul utilizat este: base64(nume_utilizator+":"+parolă). În Python, puteți utiliza 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==.

Antetul cererii HTTP pentru a trimite SMS din Python

Pentru 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==
	
Cererea HTTP pentru a trimite SMS din Python

Pentru a trimite mesajele SMS, aplicația dvs. 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 numerele destinatarilor și textele mesajelor.

		POST /api?action=sendmsg 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: 1027
		
		{
			"messages": [
				{
					"message_id": "cf609600-7269-46e3-ab6e-87ef5a99f848",
					"to_address": "+3620111111",
					"text": "Hello world 1!",
					"create_date": "2021-09-10T15:19:20",
					"valid_until": "2021-09-17T15:19:20",
					"time_to_send": "2021-09-10T15:19:20",
					"submit_report_requested": true,
					"delivery_report_requested": true,
					"view_report_requested": true,
					"tags": []
				},
				{
					"message_id": "8d93e43a-b4dc-493f-a243-10db358a58ec",
					"to_address": "+36202222222",
					"text": "Hello world 2!",
					"create_date": "2021-09-10T15:19:20",
					"valid_until": "2021-09-17T15:19:20",
					"time_to_send": "2021-09-10T15:19:20",
					"submit_report_requested": true,
					"delivery_report_requested": true,
					"view_report_requested": true,
					"tags": []
				},
				{
					"message_id": "35e56437-15e4-4ee7-9ad4-dfc00a8f7c3a",
					"to_address": "+36203333333",
					"text": "Hello world 3!",
					"create_date": "2021-09-10T15:19:20",
					"valid_until": "2021-09-17T15:19:20",
					"time_to_send": "2021-09-10T15:19:20",
					"submit_report_requested": true,
					"delivery_report_requested": true,
					"view_report_requested": true,
					"tags": []
				}
			]
		}
	
Răspunsul HTTP primit de exemplul Python SMS

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
		Transfer-Encoding: chunked
		Content-Type: application/json; charset=utf8
		Last-Modified: Fri, 10 Sep 2021 10:22:37 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, 10 Sep 2021 13:19:19 GMT
		
		{
		  "http_code": 200,
		  "response_code": "SUCCESS",
		  "response_msg": "Messages queued for delivery.",
		  "data": {
		    "total_count": 3,
		    "success_count": 3,
		    "failed_count": 0,
		    "messages": [
		      {
		        "message_id": "cf609600-7269-46e3-ab6e-87ef5a99f848",
		        "from_station": "%",
		        "to_address": "+3620111111",
		        "to_station": "%",
		        "text": "Hello world 1!",
		        "create_date": "2021-09-10 15:19:20",
		        "valid_until": "2021-09-17 15:19:20",
		        "time_to_send": "2021-09-10 15:19:20",
		        "submit_report_requested": true,
		        "delivery_report_requested": true,
		        "view_report_requested": false,
		        "tags": [
		          {
		            "name": "Type",
		            "value": "SMS:TEXT"
		          }
		        ],
		        "status": "SUCCESS"
		      },
		      {
		        "message_id": "8d93e43a-b4dc-493f-a243-10db358a58ec",
		        "from_station": "%",
		        "to_address": "+36202222222",
		        "to_station": "%",
		        "text": "Hello world 2!",
		        "create_date": "2021-09-10 15:19:20",
		        "valid_until": "2021-09-17 15:19:20",
		        "time_to_send": "2021-09-10 15:19:20",
		        "submit_report_requested": true,
		        "delivery_report_requested": true,
		        "view_report_requested": false,
		        "tags": [
		          {
		            "name": "Type",
		            "value": "SMS:TEXT"
		          }
		        ],
		        "status": "SUCCESS"
		      },
		      {
		        "message_id": "35e56437-15e4-4ee7-9ad4-dfc00a8f7c3a",
		        "from_station": "%",
		        "to_address": "+36203333333",
		        "to_station": "%",
		        "text": "Hello world 3!",
		        "create_date": "2021-09-10 15:19:20",
		        "valid_until": "2021-09-17 15:19:20",
		        "time_to_send": "2021-09-10 15:19:20",
		        "submit_report_requested": true,
		        "delivery_report_requested": true,
		        "view_report_requested": false,
		        "tags": [
		          {
		            "name": "Type",
		            "value": "SMS:TEXT"
		          }
		        ],
		        "status": "SUCCESS"
		      }
		    ]
		  }
		}
	
Exemplu Python SMS: SendMultipleSms.py

Cum să descărcați proiectul SendMultipleSMS.py (Tutorial video)

În următorul videoclip, veți afla cum puteți utiliza proiectul Python SendMultipleSms.py. Videoclipul va începe cu pagina de descărcare și vă va conduce până la panoul deschis al editorului de cod. Veți învăța cum să descărcați și să deschideți fișierul de cod. Videoclipul durează doar 54 de secunde, dar conține toate informațiile necesare pentru a utiliza cu succes fișierul de cod exemplu.

Video 1 - Cum să descărcați și să deschideți soluția de mai sus (Tutorial video)

Exemplul de cod de mai jos face parte din folderul SendMultipleSms.py.zip.

cum să trimiteți mai multe SMS-uri folosind Python
Figura 3 - SendMultipleSms.py

Cum să utilizați proiectul (Tutorial video)

În următorul clip, veți vedea cum puteți lansa codul Python SendMultipleSms.py. Videoclipul va începe cu codul deschis și vă va conduce până la fila de evenimente cu jurnalul mesajului trimis. Veți vedea cum să lansați codul și ce s-a întâmplat dacă codul a fost executat. Videoclipul este puțin mai scurt de 1 minut, dar conține toate informațiile necesare pentru a rula proiectul.

Video 2 - Cum să utilizați scriptul SendMultipleSms.py (Tutorial video)

Concluzie

Acest articol a prezentat pașii pentru trimiterea mai multor SMS-uri într-o singură solicitare din Python.

Cu aceste cunoștințe și instrumentele furnizate, ar trebui să puteți contacta mai mulți clienți cu un singur cod. Ozeki SMS Gateway joacă un rol important în acest proces, deoarece acest program organizează livrarea mesajelor. Ozeki SMS Gateway funcționează cu o calitate și performanță ridicate, permițându-vă să trimiteți până la 1000 de SMS-uri pe secundă.

Continuați învățarea pe paginile de tutoriale Ozeki, unde puteți citi despre subiecte precum ștergerea în Python.

Acum, singurul lucru pe care trebuie să-l faceți este să descărcați Ozeki SMS Gateway și să începeți să lucrați!

More information