Jak naplánovat SMS v Pythonu

Nejjednodušší způsob, jak odesílat naplánované SMS z Pythonu, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto API budete odesí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é odešle tuto SMS příjemci a vrátí HTTP 200 OK odpověď na váš požadavek.

jak naplánovat sms v pythonu
Obrázek 1 - Jak naplánovat SMS v Pythonu

Python kód pro odeslání naplánované SMS na mobil

Ukázka Python kódu pro SMS níže ukazuje, jak můžete odesílat naplánované SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím Python knihovny ozekilibsrest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli vašem projektu.

SendScheduledSms.py

		from ozekilibsrest import Configuration, Message, MessageApi
		from datetime import datetime
		
		configuration = Configuration(
		    username="http_user",
		    password="qwe123",
		    api_url="http://127.0.0.1:9509/api"
		)
		
		msg = Message(
		    to_address="+3620111111",
		    text="Hello world!",
		    time_to_send=datetime.strptime("2021-09-10 14:25:00", "%Y-%m-%d %H:%M:%S")
		)
		
		api = MessageApi(configuration)
		
		result = api.send(msg)
		
		print(result)
	

Jak použít Python příklad pro SMS:

Tento Python příklad pro SMS lze použít v jakékoli Python aplikaci. Pro jeho použití je nutné nainstalovat balíček ozekilibsrest pomocí příkazu pip install ozekilibsrest. Po instalaci balíčku musíte přidat direktivu from ozekilibsrest import Configuration, Message, MessageApi do hlavičky 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 SendScheduledSms.py

Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendScheduledSms.py.zip (458B)

Co obsahuje složka SendScheduledSms.py?

Složka SendScheduledSms.py obsahuje skript Python příkladu pro SMS, který vám ukáže, jak odesílat naplánované SMS zprávy pomocí Pythonu.

složka send scheduled sms py
Obrázek 2 - Co obsahuje SendScheduledSms.py.zip

Jak nainstalovat knihovnu ozekilibsrest

Pro instalaci knihovny ozekilibsrest je nutné otevřít příkazový řádek a použít následující příkaz. Tím se nainstaluje knihovna ozekilibsrest a její závislosti.

		pip install ozekilibsrest
	

Kód 2 - Příkaz pro instalaci knihovny ozekilibsrest

Jak odeslat naplánovanou SMS z Pythonu (Rychlé kroky)

Pro odeslání naplánované SMS z Pythonu:

  1. Stáhněte a nainstalujte Python
  2. Nainstalujte knihovnu ozekilibsrest pomocí pip nebo conda
  3. Stáhněte soubor SendScheduledSms.py.zip
  4. Rozbalte .zip soubor ze složky Stažené
  5. Otevřete soubor SendScheduledSms.py v libovolném textovém editoru
  6. Spusťte Ozeki SMS Gateway
  7. Vytvořte HTTP API uživatele v Ozeki
  8. Spusťte kód SendScheduledSms.py pomocí příkazového řádku pro odeslání testovacích SMS zpráv
  9. Zkontrolujte složku Odeslané v Ozeki SMS Gateway

Instalace Ozeki SMS Gateway a vytvoření HTTP API uživatele

Pro odesílání SMS z Pythonu je nejprve nutné nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj Python kód. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z Ozeki GUI pro ověření, ž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 "http_user" a heslem "qwe123", aby příklad fungoval 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 odesílá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 být použita 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 je třeba odeslat uživatelské jméno a heslo jako řetězec zakódovaný v base64 na server v HTTP požadavku. Použitý formát je: base64(uživatelské_jméno+":"+heslo). 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í řetězec zakódovaný v base64: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP hlavička požadavku pro odesílá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 odesílání SMS z Pythonu

Pro odeslání SMS zpráv bude vaše Python aplikace odesílat HTTP požadavek podobný níže uvedenému. Všimněte si, že tento požadavek obsahuje část s HTTP hlavičkou a část s tělem požadavku. Tělo HTTP je řetězec dat zakódovaný v JSON. Obsahuje čísla příjemců a texty zpráv.

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: 349

{
	"messages": [
		{
			"message_id": "cd0067bf-0797-489e-8796-325dacc68552",
			"to_address": "+3620111111",
			"text": "Hello world!",
			"create_date": "2021-09-17T08:20:15",
			"valid_until": "2021-09-24T08:20:15",
			"time_to_send": "2021-09-17T08:25:00",
			"submit_report_requested": true,
			"delivery_report_requested": true,
			"view_report_requested": true,
			"tags": []
		}
	]
}
	

HTTP odpověď přijatá Python SMS příkladem

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ý nebo ne. Také vrátí strukturu zakódovanou v JSON, která poskytuje užitečné detaily o odeslání zprávy.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf8
Last-Modified: Thu, 16 Sep 2021 09:14:44 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, 17 Sep 2021 06:20:15 GMT

{
  "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": "cd0067bf-0797-489e-8796-325dacc68552",
        "from_station": "%",
        "to_address": "+3620111111",
        "to_station": "%",
        "text": "Hello world!",
        "create_date": "2021-09-17 08:20:15",
        "valid_until": "2021-09-24 08:20:15",
        "time_to_send": "2021-09-17 08:25:00",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
	

Python SMS příklad: SendScheduledSms.py

Jak stáhnout projekt SendScheduledSMS.py (Video návod)

V následujícím videu se dozvíte, jak můžete použít Python projekt SendScheduledSms.py. Video začíná na stránce ke stažení a provede vás až k otevřenému panelu editoru kódu. Dozvíte se, jak stáhnout a otevřít soubor s kódem. Video je dlouhé pouze 54 sekund, ale obsahuje všechny potřebné informace, které potřebujete k úspěšnému použití příkladu kódu.

Video 1 - Jak stáhnout a otevřít výše uvedené řešení (Video návod)

Příklad kódu níže je součástí složky SendScheduledSms.py.zip.

Obrázek 3 - SendScheduledSms.py

Jak použít projekt (Video návod)

V následujícím klipu uvidíte, jak můžete spustit Python kód SendScheduledSms.py. Video začíná otevřeným kódem a provede vás až k záložce událostí s protokolem odeslané zprávy. Uvidíte, jak spustit kód a co se stane, pokud byl kód proveden. Video je o něco kratší než 1 minuta, ale obsahuje všechny informace, které jsou nutné pro spuštění projektu.

Video 2 - Jak použít skript SendScheduledSms.py (Video návod)

Závěr

Tento článek ukázal kroky plánovaného odesílání SMS v jednom požadavku z Pythonu.

S těmito znalostmi a poskytnutými nástroji byste měli být schopni oslovit několik zákazníků jediným kódem. Ozeki SMS Gateway hraje v tomto procesu důležitou roli, protože tento program organizuje doručování zpráv. Ozeki SMS Gateway pracuje s vysokou kvalitou a výkonem, což vám umožňuje odesílat až 1000 SMS za sekundu.

Pokračujte ve svém vzdělávání na tutoriálových stránkách Ozeki, kde se můžete dočíst o tématech jako Příjem SMS v Pythonu.

Teď už zbývá jen stáhnout Ozeki SMS Gateway a začít pracovat!

More information