Jak wysłać SMS z Pythona
Najprostszym sposobem wysyłania SMS-ów z Pythona jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, będziesz wysyłać wiadomości SMS poprzez wysłanie żądania HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość w formacie JSON. Bramka SMS wyśle tę wiadomość na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.
Kod Pythona do wysyłania SMS-ów na telefon
Poniższy przykładowy kod Pythona do wysyłania SMS-ów demonstruje, jak możesz wysyłać SMS-y za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, korzystając z biblioteki Python ozekilibsrest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z Twoich projektów.
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="Hello world!" ) api = MessageApi(configuration) result = api.send(msg) print(result)
Jak używać przykładu SMS w Pythonie:
Ten przykład SMS w Pythonie może być używany w dowolnej aplikacji Python. Aby go użyć, musisz zainstalować pakiet ozekilibsrest za pomocą polecenia pip install ozekilibsrest. Po zainstalowaniu pakietu musisz dodać dyrektywę from ozekilibsrest import Configuration, Message, MessageApi do sekcji nagłówkowej swojego kodu źródłowego Pythona. To pozwoli Ci korzystać z klas dostarczonych przez bibliotekę ozekilibsrest. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi do wysyłania SMS-ów do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej albo poprzez połączenie bezprzewodowe, albo przez Internet.
Pobierz SendSms.py
Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendSms.py.zip (355B)
Co znajduje się w folderze SendSms.py?
Folder SendSms.py zawiera skrypt przykładu SMS w Pythonie, który pokaże Ci, jak wysyłać wiele wiadomości SMS za pomocą Pythona.
Jak zainstalować bibliotekę ozekilibsrest
Aby zainstalować bibliotekę ozekilibsrest, musisz otworzyć wiersz poleceń i użyć następującego polecenia. Spowoduje to zainstalowanie biblioteki ozekilibsrest oraz potrzebnych zależności.
pip install ozekilibsrest
Jak wysłać SMS z Pythona (Proste wskazówki)
Aby wysłać SMS z Pythona:
- Zainstaluj użytkownika HTTP API
- Włącz opcję Loguj zdarzenia komunikacyjne w zakładce Zaawansowane
- Pobierz SendSMS.py
- Otwórz plik SendSMS.py w notatniku
- Zmień dane na swoje
- Uruchom aplikację Ozeki SMS Gateway
- Uruchom kod Pythona SendSMS.py, otwierając go
- Sprawdź logi, aby zobaczyć, czy SMS został wysłany
Zainstaluj Ozeki SMS Gateway i utwórz użytkownika HTTP API
Aby móc wysyłać SMS-y z Pythona, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Pythona w Python IDLE lub Notatniku. Po instalacji następnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMS-a z interfejsu Ozeki, aby sprawdzić, czy Twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest utworzenie użytkownika HTTP SMS API. Utwórz użytkownika z nazwą "User1" i hasłem "qwe123", aby przykład działał bez modyfikacji.
Po skonfigurowaniu środowiska możesz uruchomić swój kod Pythona.
URL API HTTP do wysyłania SMS-ów z Pythona
Aby wysłać SMS z Pythona, Twój Python będzie musiał wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Pamiętaj, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP Twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowany na tym samym komputerze, na którym działa aplikacja SMS w Pythonie, może to być 127.0.0.1. Jeśli jest zainstalowany na innym komputerze, powinien to być adres IP tego komputera.
http://127.0.0.1:9509/api?action=rest
Uwierzytelnianie HTTP do wysyłania SMS-ów z Pythona
Aby uwierzytelnić klienta SMS w Pythonie, musisz wysłać nazwę użytkownika i hasło w zakodowanym ciągu base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W Pythonie możesz użyć następującego kodu do wykonania tego kodowania:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
Na przykład, jeśli zakodujesz nazwę użytkownika 'http_user' i hasło 'qwe123', otrzymasz następujący zakodowany ciąg base64: aHR0cF91c2VyOnF3ZTEyMw==. Aby wysłać
Nagłówek żądania HTTP do wysyłania SMS z Pythona
Aby wysłać wiadomości SMS, należy dołączyć następujące linie jako nagłówki w żądaniu HTTP. Należy zauważyć, że zawieramy typ zawartości i nagłówek autoryzacji.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Żądanie HTTP do wysyłania SMS z Pythona
Aby przesłać SMS, Twoja aplikacja Python wyśle żądanie HTTP podobne do poniższego. Należy zauważyć, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w formacie JSON. Zawiera numer odbiorcy i tekst wiadomości.
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": [] } ] }
Odpowiedź HTTP otrzymana przez przykład SMS w Pythonie
Po otrzymaniu tego żądania, brama SMS wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, aby wskazać, czy żądanie wysłania SMS zakończyło się sukcesem, czy nie. Zwróci również strukturę zakodowaną w formacie JSON, aby dostarczyć przydatne informacje o przesłaniu wiadomości.
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" } ] } }
Podłącz swoją bramkę SMS do sieci komórkowej i utwórz konto użytkownika HTTP API
Zakładamy, że masz już zainstalowaną bramkę SMS Ozeki i podłączoną do sieci komórkowej. Aby móc wysyłać SMS-y na telefon komórkowy z Pythona, musisz skonfigurować konto użytkownika HTTP API w bramce SMS Ozeki.
Utwórz nowego użytkownika (Samouczek wideo)
Ten film prezentuje, jak skonfigurować nowe konto użytkownika HTTP API. Zaczyna się od strony głównej bramki SMS Ozeki i kończy na zakładce Zdarzenia nowego użytkownika. Film pokaże Ci, jak utworzyć i skonfigurować nowego użytkownika. Wspaniałą rzeczą w tym filmie jest to, że trwa tylko 30 sekund, ale zawiera wszystkie informacje potrzebne do utworzenia nowego użytkownika HTTP API.
Jak wysłać SMS z Pythona przy użyciu API SMS w Pythonie (Samouczek wideo)
Ten film pokazuje, jak pobrać plik SendSms.py.zip z tej strony i jak otworzyć zawartość załączonego pliku w dowolnym edytorze tekstu, takim jak Windows Notepad. Jeśli obejrzysz film, zauważysz, że zawartość pliku SendSms.py zip jest umieszczana na pulpicie Windows.
Przykład SMS w Pythonie: SendSms.py
Poniższy przykładowy kod jest częścią pliku SendSms.py.zip.
Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP (Samouczek wideo)
Po przesłaniu SMS-a warto sprawdzić w swojej bramce SMS, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP z konsoli zarządzania bramki SMS Ozeki. Poniższy film pokazuje, na co zwrócić uwagę. Film zaczyna się od otwartego kodu i kończy na szczegółach wysłanej wiadomości. Dowiesz się, jak uruchomić projekt, jak wygląda projekt podczas działania i jak wygląda plik logów po jego zakończeniu. Film trwa tylko 42 sekundy i jest łatwy do zrozumienia. Nie będziesz miał problemu z jego śledzeniem.
Jak sprawdzić, czy SMS został wysłany do sieci komórkowej
Ostatnim krokiem weryfikacji procedury jest sprawdzenie logów połączenia z siecią komórkową. Może być konieczne włączenie logowania w konfiguracji połączenia przed wysłaniem wiadomości, aby zobaczyć logi. Jeśli logowanie jest włączone, zobaczysz numer telefonu i treść wysłanej wiadomości.
Sprawdź, czy żądanie zostało zaakceptowane (Samouczek wideo)
W poniższym filmie zobaczysz, jak sprawdzić, czy klient SMPP pomyślnie wysłał wiadomość. Dowiesz się, jak otworzyć zakładkę zdarzeń użytkownika SMPP i na co zwrócić uwagę. Film trwa tylko 18 sekund, ale będzie bardzo pomocny.
SMS odebrany na telefonie (Samouczek wideo)
Na poniższym filmie zobaczysz, jak wygląda przychodząca wiadomość wysłana z Ozeki SMS Gateway. Zacznie się od ekranu głównego telefonu z systemem Android, a zakończy otwarciem wiadomości. Film trwa tylko 18 sekund i pokazuje cały proces odbierania wiadomości.
Podsumowanie
Powyższy przewodnik wyjaśnił kroki wysyłania SMS-ów z Pythona. Jak widać, Ozeki zapewnia wszystkie niezbędne narzędzia do dostarczania wiadomości, więc jeśli kroki zostały wykonane starannie, wysyłanie wiadomości z Pythona nie jest już problemem. Ozeki SMS Gateway odgrywa ogromną rolę w dostarczaniu wiadomości – bez tego programu nie można by dotrzeć do użytkowników mobilnych. Warto zauważyć, że Ozeki SMS Gateway działa w każdym kraju, więc wiadomości można wysyłać międzynarodowo za pomocą tego rozwiązania.
Nie kończ czytania tutaj, przejrzyj stronę z samouczkami Ozeki i dowiedz się więcej o odbieraniu SMS-ów w Pythonie.
Następnym krokiem jest pobranie Ozeki SMS Gateway i rozpoczęcie pracy!
More information
- Python wyślij SMS za pomocą REST API HTTP (przykład kodu)
- Python wyślij wiele SMS za pomocą REST API HTTP (przykład kodu)
- Python zaplanuj SMS za pomocą REST API HTTP (przykład kodu)
- Python odbierz SMS za pomocą REST API HTTP (przykład kodu)
- Python usuń SMS za pomocą REST API HTTP (przykład kodu)
- Jak pobrać najnowszą bibliotekę Python SMS z Github