Kako poslati SMS iz Pythona

Najjednostavniji način za slanje SMS-a iz Pythona je korištenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gatewaya. Kada koristite ovaj API, slati ćete SMS poruke slanjem HTTP POST zahtjeva SMS gatewayu. HTTP POST zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS na telefonski broj primatelja i vratiti HTTP 200 OK odgovor na vaš zahtjev.

kako poslati sms koristeći python
Slika 1 - Kako poslati SMS iz Pythona

Python kod za slanje SMS-a na mobitel

Python SMS primjer koda ispod pokazuje kako možete poslati SMS koristeći HTTP REST SMS API Ozeki SMS Gatewaya s Python ozekilibsrest bibliotekom. Ova biblioteka vam je dostupna besplatno i možete je koristiti i mijenjati u bilo kojem od vaših projekata.

SendSms.py

		from ozekilibsrest import Configuration, Message, MessageApi
		
		configuration = Configuration(
		    username="http_user",
		    password="qwe123",
		    api_url="http://127.0.0.1:9509/api"
		)
		
		msg = Message(
		    to_address="+3620111111",
		    text="Pozdrav svijete!"
		)
		
		api = MessageApi(configuration)
		
		result = api.send(msg)
		
		print(result)
	

Kako koristiti Python SMS primjer:

Ovaj Python SMS primjer može se koristiti u bilo kojoj Python aplikaciji. Da biste ga koristili, morate instalirati ozekilibsrest paket s naredbom pip install ozekilibsrest. Nakon što je paket instaliran, morate staviti direktivu from ozekilibsrest import Configuration, Message, MessageApi u zaglavlje vašeg Python izvornog koda. To će vam omogućiti korištenje klasa koje pruža ozekilibsrest biblioteka. Možete koristiti klasu Message za kreiranje SMS-a. Možete koristiti klasu MessageApi za slanje SMS-a SMS gatewayu. SMS gateway će proslijediti vašu poruku mobilnoj mreži bilo putem bežične veze ili putem interneta.

Preuzmite SendSms.py

Izvorni kod objašnjen u ovom članku može se besplatno preuzeti, koristiti i mijenjati.
Preuzmi: SendSms.py.zip (355B)

Što se nalazi u mapi SendSms.py?

Mapa SendSms.py sadrži skriptu Python SMS primjera koja će vam pokazati kako poslati više SMS poruka koristeći Python.

send sms py direktorij
Slika 2 - Što se nalazi unutar SendSms.py.zip

Kako instalirati ozekilibsrest biblioteku

Da biste instalirali ozekilibsrest biblioteku, morate otvoriti naredbeni redak i koristiti sljedeću naredbu. Ovo će instalirati ozekilibsrest biblioteku i ovisnosti koje su joj potrebne.

		pip install ozekilibsrest
	

Kod 2 - Naredba za instalaciju ozekilibsrest biblioteke

Kako poslati SMS iz Pythona (Jednostavne smjernice)

Da biste poslali SMS iz Pythona:

  1. Instalirajte HTTP API korisnika
  2. Omogućite bilježenje komunikacijskih događaja na kartici Napredno
  3. Preuzmite SendSMS.py
  4. Otvorite SendSMS.py datoteku u Notepadu
  5. Promijenite podatke na svoje
  6. Pokrenite Ozeki SMS Gateway aplikaciju
  7. Pokrenite SendSMS.py Python kod otvaranjem
  8. Provjerite zapisnike da vidite je li SMS poslan

Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli slati SMS iz Pythona, prvo morate instalirati Ozeki SMS Gateway. SMS gateway se može instalirati na istom računalu gdje razvijate svoj Python kod u Python IDLE-u ili Notepadu. Nakon instalacije, sljedeći korak je povezivanje Ozeki SMS Gatewaya s mobilnom mrežom. Možete poslati testni SMS iz Ozeki GUI-a kako biste potvrdili da vaša mobilna mrežna veza radi. Konačni korak za pripremu vašeg okruženja je kreiranje HTTP SMS API korisničkog računa. Kreirajte korisnika s korisničkim imenom "User1" i lozinkom "qwe123" kako bi primjer radio bez izmjena.

Nakon što je okruženje postavljeno, možete pokrenuti svoj Python kod.

HTTP API URL za slanje SMS-a iz Pythona

Da biste poslali SMS iz Pythona, vaš Python će morati poslati HTTP zahtjev SMS gatewayu. API URL je prikazan ispod. Imajte na umu da IP adresa (127.0.0.1) treba biti zamijenjena IP adresom vašeg SMS gatewaya. Ako je Ozeki SMS Gateway instaliran na istom računalu gdje se pokreće Python SMS aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računalu, treba biti IP adresa tog računala.

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

HTTP autentifikacija za slanje SMS-a iz Pythona

Da biste autentificirali Python SMS klijent, morate poslati korisničko ime i lozinku u base64 kodiranom stringu na poslužitelj u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U Pythonu možete koristiti sljedeći kod za ovo kodiranje:

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

Na primjer, ako kodirate korisničko ime 'http_user' i lozinku 'qwe123', dobit ćete sljedeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Za slanje

HTTP zaglavlje zahtjeva za slanje SMS-a iz Pythona

Za slanje SMS poruka, potrebno je uključiti sljedeće retke kao zaglavlja u HTTP zahtjev. Imajte na umu da uključujemo vrstu sadržaja i zaglavlje za autorizaciju.

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

HTTP zahtjev za slanje SMS-a iz Pythona

Za slanje SMS-a, vaša Python aplikacija će poslati HTTP zahtjev sličan donjem primjeru. Imajte na umu da ovaj zahtjev sadrži dio HTTP zaglavlja i dio HTTP tijela. HTTP tijelo je JSON kodirani niz podataka. Sadrži broj primatelja i tekst poruke.

		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": "Hello, World!",
		      "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": []
		    }
		  ]
		}
	

HTTP odgovor primljen u Python SMS primjeru

Nakon što SMS pristupnik primi ovaj zahtjev, generirat će HTTP odgovor. HTTP odgovor će sadržavati statusni kod kako bi naznačio je li zahtjev za slanje SMS-a bio uspješan ili ne. Također će vratiti JSON kodiranu strukturu kako bi vam pružio korisne pojedinosti o slanju poruke.

		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": "Messages queued for delivery.",
		  "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": "Hello, World!",
		        "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"
		      }
		    ]
		  }
		}
	

Povežite svoj SMS pristupnik s mobilnom mrežom i kreirajte HTTP API korisnički račun

Pretpostavljamo da ste već instalirali Ozeki SMS pristupnik, i da ste ga povezali s mobilnom mrežom. Kako biste mogli slati SMS na mobilni telefon iz Pythona, potrebno je postaviti HTTP API korisnički račun u Ozeki SMS pristupniku.

Kreirajte novog korisnika (Video tutorijal)

Ovaj video prikazuje kako postaviti novi HTTP API korisnički račun. Počet će s početnom stranicom Ozeki SMS pristupnika i završit će s karticom Događaji novog korisnika. Video će vam pokazati kako kreirati i konfigurirati vašeg novog korisnika. Sjajna stvar u vezi ovog videa je da traje samo 30 sekundi ali sadrži sve informacije koje su vam potrebne za kreiranje novog HTTP API korisnika.

Video 1 - Kako postaviti HTTP API korisnički račun (Video tutorijal)

Kako poslati SMS iz Pythona koristeći Python SMS API (Video tutorijal)

Ovaj video pokazuje kako preuzeti datoteku SendSms.py.zip s ove stranice i kako otvoriti sadržaj uključene datoteke u bilo kojem uređivaču teksta kao što je Windows Notepad. Ako pogledate video, primijetit ćete da su sadržaji SendSms.py zipa smješteni na Windows radnu površinu.

Video 2 - Kako preuzeti i otvoriti primjer projekta (Video tutorijal)

Python SMS primjer: SendSms.py

Primjer koda u nastavku dio je datoteke SendSms.py.zip.

kako poslati sms s python skriptom
Slika 3 - SendSms.py

Kako provjeriti je li SMS prihvaćen od strane HTTP korisnika (Video tutorijal)

Nakon što je SMS poslan, dobro je provjeriti vaš SMS pristupnik kako biste vidjeli što je primio. Dnevnik možete provjeriti otvaranjem detalja HTTP korisnika iz upravljačke konzole Ozeki SMS pristupnika. Sljedeći video pokazuje što trebate tražiti. Video će započeti s otvorenim kodom i završit će s detaljima poslane poruke. Naučit ćete kako pokrenuti projekt, kako projekt izgleda tijekom rada i kako izgleda datoteka dnevnika nakon toga. Video traje samo 42 sekunde i lako ga je razumjeti. Nećete imati problema s praćenjem.

Video 3 - Kako poslati SMS s gornjom Python skriptom (Video tutorijal)

Kako provjeriti je li SMS poslan na mobilnu mrežu

Završni korak u provjeri postupka je pogledati zapisnike mobilne mrežne veze. Možda ćete morati uključiti bilježenje u konfiguraciji veze prije slanja poruke kako biste vidjeli zapisnike. Ako je bilježenje omogućeno, vidjet ćete telefonski broj i tekst poruke koju ste poslali.

Testirajte je li zahtjev prihvaćen (Video tutorial)

U sljedećem videu vidjet ćete kako provjeriti je li SMPP klijent uspješno poslao vašu poruku. Naučit ćete kako otvoriti karticu događaja SMPP korisnika i na što obratiti pažnju. Video traje samo 18 sekundi ali će vam biti vrlo koristan.

Video 4 - Kako testirati je li zahtjev prihvaćen od strane SMPP klijenta (Video tutorial)

SMS primljen na telefonu (Video tutorial)

U sljedećem videu vidjet ćete kako izgleda dolazna poruka poslana iz Ozeki SMS Gatewaya. Počet će s početnim ekranom android telefona i završit će s otvorenom porukom. Traje samo 18 sekundi i možete vidjeti cijeli proces primanja poruke.

Video 5 - Kako izgleda dolazna poruka iz Ozeki SMS Gatewaya (Video tutorial)

Sažetak

Gore navedeni vodič objasnio je korake slanja SMS-a iz Pythona. Kao što se vidjelo, Ozeki vam daje sve potrebne alate u isporuci poruka, pa ako su koraci pažljivo slijedeni, slanje poruka iz Pythona više nije problem. Ozeki SMS Gateway igra ogromnu ulogu u isporuci, bez ovog programa ne biste mogli doći do mobilnih korisnika. Važno je napomenuti da Ozeki SMS Gateway radi u bilo kojoj zemlji, tako da se poruke mogu slati internacionalno s ovim rješenjem.

Ne završavajte čitanje ovdje, pregledajte Ozekijevu stranicu s tutorijalima i naučite o primanju SMS-ova u Pythonu.

Sljedeće što trebate učiniti je preuzeti Ozeki SMS Gateway i neka počne rad!

More information