Jak wysłać wiele wiadomości 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, wysyłając żądanie HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość sformatowaną w formacie json. Bramka SMS wyśle tę wiadomość SMS 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, używając interfejsu HTTP REST SMS API Ozeki SMS Gateway z biblioteką Pythona ozekilibsrest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z Twoich projektów.
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="Hello world 1!" ) msg2 = Message( to_address="+36202222222", text="Hello world 2!" ) msg3 = Message( to_address="+36203333333", text="Hello world 3!" ) api = MessageApi(configuration) result = api.send([msg1, msg2, msg3]) print(result)
Jak używać przykładu wysyłania SMS-ów w Pythonie:
Ten przykład wysyłania SMS-ów w Pythonie może być używany w dowolnej aplikacji Pythona. 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 używać 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 poprzez połączenie bezprzewodowe lub przez Internet.
Pobierz SendMultipleSms.py
Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendMultipleSms.py.zip (423B)
Co znajduje się w folderze SendMultipleSms.py?
Folder SendMultipleSms.py zawiera skrypt przykładu wysyłania SMS-ów 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 jej zależności.
pip install ozekilibsrest
Jak wysłać wiele wiadomości SMS z Pythona (Szybkie kroki)
Aby wysłać wiele wiadomości SMS z Pythona:
- Pobierz i zainstaluj Pythona
- Zainstaluj bibliotekę ozekilibsrest za pomocą pip lub conda
- Pobierz plik SendMultipleSms.py.zip
- Wypakuj plik .zip z folderu Pobrane
- Otwórz plik SendMultipleSms.py w dowolnym edytorze tekstu
- Uruchom Ozeki SMS Gateway
- Utwórz użytkownika HTTP API w Ozeki
- Uruchom kod SendMultipleSms.py za pomocą wiersza poleceń, aby wysłać testowe wiadomości SMS
- Sprawdź skrzynkę Wysłane w Ozeki SMS Gateway
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. 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ą "http_user" 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 wysyłać SMS-y 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 Pythona do wysyłania SMS-ów, 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, należy 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==.
Nagłówek żądania HTTP do wysyłania SMS-ów z Pythona
Aby wysłać wiadomości SMS, należy uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Zwróć uwagę, że zawieramy typ zawartości i nagłówek Authorization.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Żądanie HTTP do wysyłania SMS-ów z Pythona
Aby przesłać wiadomości SMS, Twoja aplikacja Python wyśle żądanie HTTP podobne do poniższego. Zauważ, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to zakodowany ciąg danych JSON. Zawiera numery odbiorców i teksty wiadomości.
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": [] } ] }
Odpowiedź HTTP otrzymana przez przykład SMS w Pythonie
Gdy brama SMS otrzyma to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod stanu, aby wskazać, czy żądanie wysłania SMS-a zakończyło się sukcesem, czy nie. Zwróci również zakodowaną strukturę JSON, aby dostarczyć Ci przydatne szczegóły dotyczące przesłania wiadomości.
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" } ] } }
Przykład SMS w Pythonie: SendMultipleSms.py
Jak pobrać projekt SendMultipleSMS.py (Samouczek wideo)W poniższym filmie dowiesz się, jak możesz wykorzystać projekt SendMultipleSms.py w Pythonie. Film rozpocznie się od strony pobierania i przeprowadzi Cię przez cały proces aż do otwarcia panelu edytora kodu. Nauczysz się, jak pobrać i otworzyć plik z kodem. Film trwa tylko 54 sekundy, ale zawiera wszystkie niezbędne informacje, aby skutecznie wykorzystać przykładowy plik kodu.
Przykładowy kod poniżej jest częścią folderu SendMultipleSms.py.zip.
Jak używać projektu (Samouczek wideo)
W poniższym klipie zobaczysz, jak można uruchomić kod Python SendMultipleSms.py. Film rozpocznie się od otwartego kodu i przeprowadzi Cię przez cały proces aż do zakładki zdarzeń z logiem wysłanej wiadomości. Zobaczysz, jak uruchomić kod i co się stanie, gdy kod zostanie wykonany. Film jest nieco krótszy niż 1 minuta, ale zawiera wszystkie informacje niezbędne do uruchomienia projektu.
Podsumowanie
W tym artykule pokazano kroki wysyłania wielu SMS-ów w jednym żądaniu z Pythona.
Dzięki tej wiedzy i dostarczonym narzędziom powinieneś być w stanie dotrzeć do
wielu klientów za pomocą jednego kodu. Ozeki SMS Gateway odgrywa ważną rolę
w tym procesie, ponieważ ten program organizuje dostarczanie wiadomości.
Ozeki SMS Gateway działa z wysoką jakością i wydajnością, umożliwiając wysyłanie
do 1000 SMS-ów na sekundę.
Kontynuuj naukę na stronach samouczków Ozeki, gdzie możesz przeczytać o
tematach takich jak
usuwanie w Pythonie.
Teraz jedyne, co musisz zrobić, to pobrać Ozeki
SMS Gateway i zacząć pracę!
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