Jak poslat SMS z Pythonu
Nejjednodušší způsob, jak poslat SMS z Pythonu, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Když použijete toto API, budete posílat SMS zprávy vytvořením HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu ve formátu JSON. SMS brána poté pošle tuto SMS na cílové telefonní číslo a vrátí HTTP 200 OK odpověď na váš požadavek.
Python kód pro odeslání SMS na mobil
Níže uvedený ukázkový kód Pythonu pro SMS demonstruje, jak můžete odeslat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny Python ozekilibsrest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli z vašich projektů.
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 použít ukázku Pythonu pro SMS:
Tato ukázka Pythonu pro SMS může být použita v jakékoli Python aplikaci. Pro její použití je nutné nainstalovat balíček ozekilibsrest pomocí příkazu pip install ozekilibsrest. Po instalaci balíčku musíte vložit direktivu from ozekilibsrest import Configuration, Message, MessageApi do hlavičkové části vašeho Python zdrojového kódu. To vám umožní používat třídy poskytované knihovnou ozekilibsrest. Třídu Message můžete použít k vytvoření SMS. Třídu MessageApi můžete použít k odeslání SMS na SMS bránu. SMS brána poté přepošle vaši zprávu do mobilní sítě buď přes bezdrátové připojení nebo přes internet.
Stáhnout SendSms.py
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendSms.py.zip (355B)
Co je ve složce SendSms.py?
Složka SendSms.py obsahuje skript ukázky Pythonu pro SMS, který vám ukáže, jak odeslat více SMS zpráv pomocí Pythonu.
Jak nainstalovat knihovnu ozekilibsrest
Pro instalaci knihovny ozekilibsrest musíte otevřít příkazový řádek a použít následující příkaz. Tím nainstalujete knihovnu ozekilibsrest a její závislosti.
pip install ozekilibsrest
Jak poslat SMS z Pythonu (Jednoduchý návod)
Pro odeslání SMS z Pythonu:
- Nainstalujte HTTP API uživatele
- Povolte Logování komunikačních událostí na záložce Pokročilé
- Stáhněte si SendSMS.py
- Otevřete soubor SendSMS.py v poznámkovém bloku
- Změňte data na vlastní
- Spusťte aplikaci Ozeki SMS Gateway
- Spusťte Python kód SendSMS.py jeho otevřením
- Zkontrolujte logy, zda byla SMS odeslána
Nainstalujte Ozeki SMS Gateway a vytvořte HTTP API uživatele
Abyste mohli posílat SMS z Pythonu, musíte nejprve nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj Python kód v Python IDLE nebo Notepadu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z Ozeki GUI a ověřit, že vaše připojení k mobilní síti funguje. Posledním krokem přípravy prostředí je vytvoření HTTP SMS API uživatele. Vytvořte uživatele s uživatelským jménem "User1" a heslem "qwe123", aby ukázka fungovala bez úprav.
Po nastavení prostředí můžete spustit svůj Python kód.
HTTP API URL pro odesílání SMS z Pythonu
Pro odeslání SMS z Pythonu musí váš Python vytvořit HTTP požadavek na SMS bránu. API URL je uvedeno níže. Poznámka: IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží Python SMS aplikace, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by to být IP adresa tohoto počítače.
http://127.0.0.1:9509/api?action=rest
HTTP autentizace pro odesílání SMS z Pythonu
Pro autentizaci Python SMS klienta musíte odeslat uživatelské jméno a heslo v base64 kódovaném řetězci na server v HTTP požadavku. Použitý formát je: base64(username+":"+password). V Pythonu můžete pro toto kódování použít následující kód:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
Například, pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', získáte následující base64 kódovaný řetězec: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání
HTTP hlavička požadavku pro odeslání SMS z Pythonu
Pro odeslání SMS zpráv je třeba do HTTP požadavku zahrnout následující řádky jako hlavičky. Všimněte si, že zahrnujeme typ obsahu a autorizační hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požadavek pro odeslání SMS z Pythonu
Pro odeslání SMS váš Python aplikace odešle HTTP požadavek podobný níže uvedenému. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část HTTP těla. HTTP tělo je řetězec dat zakódovaný ve formátu JSON. Obsahuje číslo příjemce a text zprávy.
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 odpověď přijatá Python příkladem pro SMS
Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný či nikoliv. Také vrátí strukturu zakódovanou ve formátu JSON, která vám poskytne užitečné informace o odeslání zprávy.
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" } ] } }
Připojte svou SMS bránu k mobilní síti a vytvořte účet HTTP API uživatele
Předpokládáme, že jste již nainstalovali Ozeki SMS Gateway a že jste připojili ji k mobilní síti. Abyste mohli odesílat SMS na mobilní telefon z Pythonu, musíte nastavit účet HTTP API uživatele v Ozeki SMS Gateway.
Vytvoření nového uživatele (Video návod)
Toto video vám ukáže, jak nastavit nový účet HTTP API uživatele. Začíná na domovské stránce Ozeki SMS Gateway a končí na kartě Události nového uživatele. Video vám ukáže, jak vytvořit a nakonfigurovat nového uživatele. Skvělé na tomto videu je, že trvá pouze 30 sekund, ale obsahuje všechny informace, které potřebujete k vytvoření nového HTTP API uživatele.
Jak odeslat SMS z Pythonu pomocí Python SMS API (Video návod)
Toto video vám ukáže, jak stáhnout soubor SendSms.py.zip z této stránky a jak otevřít obsah tohoto souboru v libovolném textovém editoru, jako je například Windows Notepad. Pokud se podíváte na video, všimnete si, že obsah SendSms.py zip je umístěn na ploše Windows.
Příklad Python SMS: SendSms.py
Níže uvedený příklad kódu je součástí souboru SendSms.py.zip.
Jak ověřit, že SMS byla přijata HTTP uživatelem (Video návod)
Po odeslání SMS je dobré zkontrolovat vaši SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením detailů HTTP uživatele v konzoli pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit. Video začíná otevřeným kódem a končí detaily odeslané zprávy. Dozvíte se, jak spustit projekt, jak projekt vypadá během běhu a jak vypadá soubor protokolu po jeho dokončení. Video trvá pouze 42 sekund a je snadno srozumitelné. Nebudete mít problém ho sledovat.
Jak ověřit, že SMS byla odeslána do mobilní sítě
Posledním krokem při ověřování postupu je prohlédnout si záznamy připojení k mobilní síti. Možná budete muset před odesláním zprávy zapnout protokolování v nastavení připojení, abyste viděli záznamy. Pokud je protokolování povoleno, uvidíte telefonní číslo a text odeslané zprávy.
Test, zda byla žádost přijata (Video návod)
V následujícím videu uvidíte, jak zkontrolovat, zda byl SMPP klient úspěšný při odesílání vaší zprávy. Dozvíte se, jak otevřít záložku událostí uživatele SMPP a na co se zaměřit. Video trvá pouze 18 sekund, ale bude velmi užitečné.
SMS přijatá na telefonu (Video návod)
V následujícím videu uvidíte, jak vypadá příchozí zpráva odeslaná z Ozeki SMS Gateway. Začíná domovskou obrazovkou telefonu Android a končí otevřenou zprávou. Video trvá pouze 18 sekund a můžete vidět celý proces přijetí zprávy.
Shrnutí
Výše uvedený průvodce vysvětluje kroky pro odesílání SMS z Pythonu. Jak je vidět, Ozeki vám poskytuje všechny nástroje potřebné pro doručování zpráv, takže pokud byly kroky pečlivě dodrženy, odesílání zpráv z Pythonu již není problém. Ozeki SMS Gateway hraje obrovskou roli v doručování, bez tohoto programu byste se k mobilním uživatelům nedostali. Důležité je poznamenat, že Ozeki SMS Gateway funguje v jakékoli zemi, takže zprávy lze s tímto řešením odesílat mezinárodně.
Nezastavujte se zde, projděte si stránku s návody Ozeki a naučte se více o příjmu SMS v Pythonu.
Vaším dalším krokem je stáhnout Ozeki SMS Gateway a začít pracovat!
More information
- Python odeslání SMS pomocí HTTP REST API (ukázka kódu)
- Python odeslání více SMS pomocí HTTP REST API (ukázka kódu)
- Python naplánování SMS pomocí HTTP REST API (ukázka kódu)
- Python příjem SMS pomocí HTTP REST API (ukázka kódu)
- Python smazání SMS pomocí HTTP REST API (ukázka kódu)
- Jak stáhnout nejnovější Python SMS knihovnu z Githubu