Ako naplánovať SMS v Pythone

Najjednoduchší spôsob, ako odoslať naplánované SMS z Pythonu, je použiť vstavané HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete odosielať SMS správy vytvorením HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu vo formáte JSON. SMS brána následne odošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako naplánovať sms v pythone
Obrázok 1 - Ako naplánovať SMS v Pythone

Python kód na odoslanie naplánovanej SMS na mobil

Ukážkový Python kód pre SMS nižšie demonštruje, ako môžete odosielať naplánované SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím Python knižnice ozekilibsrest. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.

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)
	

Ako použiť Python SMS príklad:

Tento Python SMS príklad môže byť použitý v akejkoľvek Python aplikácii. Na jeho použitie musíte nainštalovať balík ozekilibsrest príkazom pip install ozekilibsrest. Po inštalácii balíka musíte pridať riadok from ozekilibsrest import Configuration, Message, MessageApi do hlavičkovej časti vášho Python zdrojového kódu. To vám umožní používať triedy poskytované knižnicou ozekilibsrest. Triedu Message môžete použiť na vytvorenie SMS. Triedu MessageApi môžete použiť na odoslanie SMS na SMS bránu. SMS brána následne prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť SendScheduledSms.py

Zdrojový kód vysvetlený v tomto článku je možné stiahnuť, použiť a upravovať bezplatne.
Stiahnuť: SendScheduledSms.py.zip (458B)

Čo obsahuje priečinok SendScheduledSms.py?

Priečinok SendScheduledSms.py obsahuje skript Python SMS príkladu, ktorý vám ukáže, ako odosielať naplánované SMS správy pomocou Pythonu.

priečinok send scheduled sms py
Obrázok 2 - Čo je vo vnútri SendScheduledSms.py.zip

Ako nainštalovať knižnicu ozekilibsrest

Na inštaláciu knižnice ozekilibsrest musíte otvoriť príkazový riadok a použiť nasledujúci príkaz. Tým sa nainštaluje knižnica ozekilibsrest a všetky jej závislosti.

		pip install ozekilibsrest
	

Kód 2 - Príkaz na inštaláciu knižnice ozekilibsrest

Ako odoslať naplánovanú SMS z Pythonu (Rýchle kroky)

Na odoslanie naplánovanej SMS z Pythonu:

  1. Stiahnite a nainštalujte Python
  2. Nainštalujte knižnicu ozekilibsrest pomocou pip alebo conda
  3. Stiahnite súbor SendScheduledSms.py.zip
  4. Rozbaľte .zip súbor z priečinka Stiahnuté
  5. Otvorte súbor SendScheduledSms.py v ľubovoľnom textovom editore
  6. Spustite Ozeki SMS Gateway
  7. Vytvorte používateľa HTTP API v Ozeki
  8. Spustite kód SendScheduledSms.py pomocou príkazového riadku na odoslanie testovacej SMS správy
  9. Skontrolujte priečinok Odoslané v Ozeki SMS Gateway
Nainštalujte Ozeki SMS Gateway a vytvorte používateľa HTTP API

Na odosielanie SMS z Pythonu musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, na ktorom vyvíjate svoj Python kód. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI na overenie, či vaše pripojenie k mobilnej sieti funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie používateľa HTTP SMS API. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.

Po nastavení prostredia môžete spustiť svoj Python kód.

HTTP API URL na odosielanie SMS z Pythonu

Na odosielanie SMS z Pythonu bude váš Python musieť odoslať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaná na rovnakom počítači, na ktorom beží Python SMS aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaná na inom počítači, mala by to byť IP adresa toho počítača.

		http://127.0.0.1:9509/api?action=rest
	

HTTP autentifikácia na odosielanie SMS z Pythonu

Na autentifikáciu Python SMS klienta musíte odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Používaný formát je: base64(username+":"+password). V Pythone môžete na toto kódovanie použiť nasledujúci kód:

	    def create_authorization_header(username, password):
	        username_password = f'{ username }:{ password }'
	        return f'Basic { b64encode(username_password.encode()).decode() }'
	

Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP hlavička požiadavky na odoslanie SMS z Pythonu

Na odoslanie SMS správ musíte do HTTP požiadavky zahrnúť nasledujúce riadky ako hlavičky. Všimnite si, že obsahujeme hlavičku Content-Type a Authorization.

		Content-Type: application/json
		Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	
HTTP požiadavka na odoslanie SMS z Pythonu

Na odoslanie SMS správ vaša Python aplikácia odošle HTTP požiadavku podobnú tej nižšie. Všimnite si, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. Telo HTTP je JSON kódovaný reťazec dát. Obsahuje čísla príjemcov a texty sprá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 odpoveď prijatá Python SMS príkladom

Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Taktiež vráti JSON kódovanú štruktúru, ktorá vám poskytne užitočné detaily o odoslaní sprá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 príklad: SendScheduledSms.py Ako stiahnuť projekt SendScheduledSMS.py (Video návod)

V nasledujúcom videu sa dozviete, ako môžete použiť Python projekt SendScheduledSms.py. Video začne na strane na stiahnutie a prevedie vás až k otvorenému panelu editora kódu. Dozviete sa, ako stiahnuť a otvoriť súbor s kódom. Video je dlhé len 54 sekúnd, ale obsahuje všetky potrebné informácie, ktoré potrebujete na úspešné použitie príkladového súboru s kódom.

Video 1 - Ako stiahnuť a otvoriť riešenie vyššie (Video návod)

Príkladový kód nižšie je súčasťou priečinka SendScheduledSms.py.zip.

Obrázok 3 - SendScheduledSms.py

Ako použiť projekt (Video návod)

V nasledujúcom klipu uvidíte, ako môžete spustiť Python kód SendScheduledSms.py. Video začne s otvoreným kódom a prevedie vás až k záložke udalostí s záznamom odoslanej správy. Uvidíte, ako spustiť kód a čo sa stane, ak bol kód vykonaný. Video je o niečo kratšie ako minúta, ale obsahuje všetky informácie, ktoré sú potrebné na spustenie projektu.

Video 2 - Ako použiť skript SendScheduledSms.py (Video návod)

Záver

Tento článok ukázal kroky naplánovaného odosielania SMS v jednom požiadavku z Pythonu.

S týmito vedomosťami a poskytnutými nástrojmi by ste mali byť schopní osloviť viacerých zákazníkov jedným kódom. Ozeki SMS Gateway zohráva dôležitú úlohu v tomto procese, pretože tento program organizuje doručovanie správ. Ozeki SMS Gateway pracuje s vysokou kvalitou a výkonom, čo vám umožňuje odoslať až 1000 SMS za sekundu.

Pokračujte vo vzdelávaní na stránkach tutoriálov Ozeki, kde si môžete prečítať o témach ako Prijímanie SMS v Pythone.

Teraz už vám stačí len stiahnuť Ozeki SMS Gateway a začať pracovať!

More information