Kako poslati SMS putem SMPP API-ja koristeći Python
SMPP API (Short Message Peer-to-Peer) je moćan protokol za razmjenu SMS poruka između vanjskih entiteta za kratke poruke (ESME) i centara za usluge kratkih poruka (SMSC). Za programere koji koriste Ozeki SMS Gateway, korištenje SMPP API-ja s Pythonom omogućuje besprijekornu integraciju SMS-a u aplikacije. Ovaj opsežni vodič pruža korak-po-korak upute, praktične primjere Python koda i najbolje prakse za uspostavljanje, održavanje i korištenje SMPP API veze za učinkovito slanje SMS poruka.
Zašto koristiti Python s SMPP API-jem za slanje SMS poruka?
Pythonova jednostavnost i robusne biblioteke, poput smpplib
, čine ga idealnim izborom za integraciju s SMPP API-jem. SMPP protokol omogućuje visokoučinkovitu isporuku SMS-a, izvješća o isporuci u stvarnom vremenu i pouzdano upravljanje vezom. Kombiniranjem Pythona s SMPP API-jem, programeri mogu stvoriti skalabilna SMS rješenja za aplikacije poput obavijesti, marketinških kampanja ili dvofaktorske autentifikacije (2FA).
Kako poslati SMS putem SMPP API-ja koristeći Python (Brzi koraci)
- Provjerite SMPP vjerodajnice: Osigurajte da imate ispravan host, port, korisničko ime i lozinku za vašeg SMPP korisnika u Ozeki SMS Gateway.
- Napišite i izvršite Python kod: Koristite biblioteku
smpplib
za kreiranje skripte za povezivanje s SMPP serverom i slanje SMS-a. - Provjerite rezultate: Potvrdite uspješno slanje poruke putem logova u Ozeki SMS Gateway sučelju.
Kako poslati SMS putem SMPP API-ja koristeći Python (Video tutorial)
Pogledajte ovaj korak-po-korak video tutorial kako biste naučili kako poslati SMS poruke koristeći Python i SMPP API s Ozeki SMS Gateway. Tutorial pokriva postavljanje SMPP korisnika, povezivanje s bibliotekom smpplib
, slanje poruka, održavanje veze i rukovanje izvješćima o isporuci.
Korak-po-korak vodič za slanje SMS-a s Pythonom i SMPP API-jem
Korak 1: Odaberite svog SMPP korisnika
U Ozeki SMS Gateway sučelju, idite na odjeljak "Korisnici i aplikacije". Odaberite ili kreirajte SMPP korisnika kako biste uspostavili vezu iz vaše Python skripte. Ovaj korisnik će autentificirati vašu aplikaciju s SMPP serverom.
Korak 2: Dohvatite podatke za povezivanje
Nakon što odaberete svog SMPP korisnika, idite na karticu "Pomoć" u Ozeki SMS Gateway sučelju. Ovdje ćete pronaći ključne podatke za povezivanje, uključujući IP adresu, broj porta, korisničko ime i lozinku. Ove vjerodajnice su ključne za konfiguriranje vaše Python skripte za povezivanje s SMPP serverom.
Korak 3: Napišite Python SMPP kod
Otvorite svoj omiljeni Python IDE ili editor i zalijepite SMPP kod za povezivanje koji je naveden u nastavku. Ovaj kod koristi biblioteku smpplib
za uspostavljanje veze s Ozeki SMS Gateway i pripremu okruženja za slanje SMS poruka.
Korak 4: Ažurirajte SMPP vjerodajnice
Zamijenite zamjenske vrijednosti u Python kodu (host, port, korisničko ime, lozinka i telefonski brojevi) s vašim stvarnim SMPP vjerodajnicama i telefonskim brojem primatelja. Ovo osigurava da se vaša skripta povezuje s ispravnim SMPP serverom i šalje poruke namijenjenom primatelju.
Korak 5: Potvrdite uspješno povezivanje
Pokrenite svoju Python skriptu. Ako je ispravno konfigurirana, Ozeki SMS Gateway sučelje će zabilježiti uspješno povezivanje za vašeg SMPP korisnika. Ovo potvrđuje da je vaša Python skripta spremna za slanje SMS poruka putem SMPP API-ja.
Za slanje SMS poruka pomoću SMPP API-ja, prvo morate postaviti SMPP korisnika
u Ozeki SMS Gateway i povezati vaš Python klijent s SMPP serverom.
Biblioteka smpplib
pojednostavljuje ovaj proces rukovanjem detaljima niskog nivoa protokola.
Ispod je primjer Python koda za uspostavljanje SMPP veze:
import smpplib # SMPP parametri veze HOST = 'your.ozeki.server' PORT = 2775 SYSTEM_ID = 'your_username' PASSWORD = 'your_password' # Inicijalizacija SMPP klijenta client = smpplib.client.Client(HOST, PORT) # Povezivanje kao transceiver za slanje SMS-a client.connect() client.bind_transmitter( system_id=SYSTEM_ID, password=PASSWORD, ) print("Uspješno povezan s SMPP serverom koristeći Python")
Ključne SMPP Protocol Data Units (PDU)
SMPP protokol se oslanja na Protocol Data Units (PDU) za upravljanje vezama i porukama. Ispod je tablica koja sažima ključne PDU-e korištene u Pythonu za SMPP API integraciju:
PDU | Python metoda | Svrha |
---|---|---|
bind_transmitter |
client.bind_transmitter() |
Inicira vezu za slanje SMS poruka |
bind_receiver |
client.bind_receiver() |
Uspostavlja vezu za primanje SMS poruka |
bind_transceiver |
client.bind_transceiver() |
Omogućuje dvosmjernu SMS komunikaciju (slanje i primanje) |
Održavanje stabilne SMPP API veze u Pythonu za slanje SMS-a
SMPP veze zahtijevaju periodične "keep-alive" signale kako bi se spriječili prekidi veze.
PDU enquire_link
se šalje svakih 30 sekundi kako bi se održala veza.
Ispod je Python primjer koji koristi pristup s nitima za slanje keep-alive signala:
import time import threading def send_enquire_link(): while True: try: client.enquire_link() print("Poslan enquire_link PDU za održavanje SMPP veze") except Exception as e: print(f"Greška pri slanju enquire_link: {e}") time.sleep(30) # Šalje se svakih 30 sekundi # Pokretanje keep-alive niti keepalive_thread = threading.Thread(target=send_enquire_link) keepalive_thread.daemon = True keepalive_thread.start()Slanje SMS-a putem Python-a kroz SMPP API
Nakon uspostave veze, možete slati SMS poruke koristeći submit_sm
PDU. Sljedeći Python kod pokazuje kako poslati SMS i upravljati
odgovorom:
def send_sms(source_addr, destination_addr, message): try: # Pošalji submit_sm PDU pdu = client.send_message( source_addr_ton=smpplib.consts.SMPP_TON_INTL, source_addr_npi=smpplib.consts.SMPP_NPI_ISDN, source_addr=source_addr, dest_addr_ton=smpplib.consts.SMPP_TON_INTL, dest_addr_npi=smpplib.consts.SMPP_NPI_ISDN, destination_addr=destination_addr, short_message=message, data_coding=0x00, # GSM 7-bitno kodiranje ) print(f"SMS uspješno poslan, ID poruke: {pdu.message_id}") except smpplib.exceptions.PDUError as e: print(f"SMPP PDU greška: {e}") except Exception as e: print(f"Greška pri slanju SMS-a: {e}") # Primjer korištenja send_sms( source_addr="12345", destination_addr="+1234567890", message="Pozdrav iz Python SMPP klijenta!" )
Upravljanje izvješćima o isporuci SMS-a u Pythonu
Za praćenje statusa isporuke poslanih SMS poruka, možete upravljati izvješćima o isporuci
koristeći deliver_sm
PDU. Ispod je Python primjer za obradu
izvješća o isporuci:
def handle_delivery_report(pdu): print(f"Primljeno izvješće o isporuci za poruku {pdu.receipted_message_id}") print(f"Status: {pdu.message_state}") # Postavljanje rukovatelja izvješća o isporuci client.set_message_received_handler(lambda pdu: handle_delivery_report(pdu))
Potpuni primjer Python SMPP API klijenta za slanje SMS-a
Ispod je potpuni, produkcijski spreman Python skript koji se integrira sa SMPP API-jem za slanje SMS poruka, održavanje stabilne veze i upravljanje izvješćima o isporuci:
import smpplib import threading import time class SMPPClient: def __init__(self, host, port, system_id, password): self.client = smpplib.client.Client(host, port) self.client.set_message_received_handler(self.handle_message) # Poveži se na SMPP server self.client.connect() self.client.bind_transceiver( system_id=system_id, password=password, ) # Pokreni thread za održavanje veze self.start_keepalive() def start_keepalive(self): def _keepalive(): while True: try: self.client.enquire_link() print("Signal održavanja veze poslan") except Exception: try: self.client.connect() self.client.bind_transceiver( system_id=system_id, password=password, ) print("Ponovno spojen na SMPP server") except Exception as e: print(f"Ponovno povezivanje nije uspjelo: {e}") time.sleep(30) thread = threading.Thread(target=_keepalive) thread.daemon = True thread.start() def send_sms(self, from_addr, to_addr, message): try: return self.client.send_message( source_addr=from_addr, destination_addr=to_addr, short_message=message, ) except Exception as e: print(f"Slanje SMS-a nije uspjelo: {e}") return None def handle_message(self, pdu): if pdu.command == "deliver_sm": print(f"Izvješće o isporuci: {pdu.receipted_message_id} - {pdu.message_state}") else: print(f"Primljena poruka: {pdu.short_message}") # Primjer korištenja if __name__ == "__main__": client = SMPPClient( host="your.ozeki.server", port=2775, system_id="your_username", password="your_password" ) # Pošalji SMS client.send_sms( from_addr="12345", to_addr="+1234567890", message="Pozdrav iz Python SMPP klijenta!" ) # Održavaj skriptu pokrenutom while True: time.sleep(1)
Najbolje prakse za integraciju SMPP API-ja s Pythonom
- Upravljanje greškama: Uvijek implementirajte robusno upravljanje iznimkama za upravljanje greškama veze, PDU greškama i vremenskim ograničenjima.
- Ponovno uspostavljanje veze: Uključite logiku za automatsko ponovno povezivanje ako se SMPP veza prekine.
- Evidencija: Evidentirajte status veze, poslane poruke i izvješća o isporuci za otklanjanje grešaka i praćenje.
- Sigurnost: Pohranite SMPP vjerodajnice sigurno, koristeći varijable okruženja ili konfiguracijsku datoteku.
- Skalabilnost: Za aplikacije s velikim volumenom SMS poruka, razmislite o korištenju asinkronih biblioteka ili grupiranja veza.
Zaključak
Ovaj vodič pruža detaljan pregled integracije
SMPP API-ja s Pythonom koristeći Ozeki SMS Gateway.
Korištenjem biblioteke smpplib
, programeri mogu uspostaviti pouzdane
SMPP veze, slati SMS poruke i upravljati izvješćima o isporuci s lakoćom.
Pruženi Python primjeri koda i najbolje prakse osiguravaju robusne i skalabilne SMS
aplikacije za različite slučajeve upotrebe, od obavijesti do marketinških kampanja.
Napomena: Za produkcijska okruženja, poboljšajte pruženi kod s sveobuhvatnim upravljanjem greškama, logikom ponovnog povezivanja i evidencijom kako biste osigurali maksimalnu pouzdanost i performanse.
More information
- Kako postaviti SMPP API klijentsku vezu s Vašim SMSC
- Kako postaviti SMPP API poslužitelj za slanje i primanje SMS-a iz više aplikacija
- Kako odabrati pravog SMPP API pružatelja za vaš posao
- Kako poslati SMS koristeći SMPP API na razini protokola
- Kako poslati SMS putem SMPP API-a koristeći Python
- Kako poslati SMS putem SMPP API-a koristeći Javascript
- Kako poslati SMS putem SMPP API-a koristeći Java
- Kako poslati SMS putem SMPP API-a koristeći PHP
- Kako poslati SMS putem SMPP API-ja koristeći C#
- Kako poslati SMS putem SMPP API-a koristeći C/Cpp
- Kako primiti SMS koristeći SMPP API
- Kako primiti izvješće o isporuci SMS-a koristeći SMPP API
- SMPP API FAQ