Jak přijímat SMS z Pythonu

Nejjednodušší způsob, jak přijímat SMS z Pythonu, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto API budete přijímat SMS zprávy vydáním HTTP GET požadavku na SMS bránu. HTTP Post odpověď bude obsahovat zprávy formátované ve formátu JSON. SMS brána odešle SMS zprávy do pythonové konzolové aplikace a vrátí odpověď HTTP 200 OK na váš požadavek.

jak přijímat sms z pythonu
Obrázek 1 - Jak přijímat SMS z Pythonu

Python kód pro přijímání SMS

Ukázka kódu Pythonu pro SMS níže ukazuje, jak můžete přijímat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s použitím knihovny Pythonu ozekilibsrest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakýchkoli svých projektech.

ReceiveSms.py

		from ozekilibsrest import Configuration, MessageApi
		
		configuration = Configuration(
		    username="http_user",
		    password="qwe123",
		    api_url="http://127.0.0.1:9509/api"
		)
		
		api = MessageApi(configuration)
		
		results = api.download_incoming()
		
		print(results)
		
		for result in results.messages:
			print(result)
	

Jak použít příklad SMS v Pythonu:

Tento příklad SMS v Pythonu lze použít v jakékoli aplikaci Python. Chcete-li jej použít, musíte 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 zdrojového kódu Pythonu. 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 přepošle vaši zprávu do mobilní sítě buď prostřednictvím bezdrátového připojení nebo přes internet.

Stáhnout ReceiveSms.py

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

Co je ve složce ReceiveSms.py?

Složka ReceiveSms.py obsahuje skript příkladu SMS v Pythonu, který vám ukáže, jak přijímat SMS zprávy pomocí Pythonu.

složka receive sms py
Obrázek 2 - Co je uvnitř ReceiveSms.py.zip

Jak nainstalovat knihovnu ozekilibsrest

Chcete-li nainstalovat knihovnu ozekilibsrest, musíte otevřít příkazový řádek a použít následující příkaz. Tím nainstalujete knihovnu ozekilibsrest a závislosti, které potřebuje.

		pip install ozekilibsrest
	

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

Jak přijímat SMS z Pythonu (Rychlé kroky)

Pro přijímání SMS z Pythonu:

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

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

Abyste mohli odesí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 kód Pythonu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z grafického rozhraní Ozeki a ověřit, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě vašeho prostředí je vytvoření uživatele HTTP SMS API. 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 kód Pythonu.

URL HTTP API pro odesílání SMS z Pythonu

Chcete-li odesílat SMS z Pythonu, váš Python bude muset vydat HTTP požadavek na SMS bránu. URL API je uvedeno níže. Všimněte si, že 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ěží aplikace SMS v Pythonu, 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 ověření klienta SMS v Pythonu musíte odeslat uživatelské jméno a heslo v řetězci zakódovaném v base64 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í řetězec zakódovaný v base64: aHR0cF91c2VyOnF3ZTEyMw==.

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 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 HTTP hlavičky, kde jsme definovali složku, ze které chceme stáhnout zprávy, a akci. Také jsme odeslali uživatelské jméno a heslo zakódované v Base64 pro ověření požadavku.

GET /api?action=receivemsg&folder=inbox 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==
	

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 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: Fri, 17 Sep 2021 08:36:07 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 07:08:11 GMT

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "",
  "data": {
    "folder": "inbox",
    "limit": "1000",
    "data": [
      {
        "message_id": "31bc2fe0-c2a6-4ebe-afcd-6bcd9ea341fb",
        "from_connection": "admin@localhost",
        "from_address": "",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "Hello world 1!",
        "create_date": "2021-09-17 09:07:14",
        "valid_until": "2021-09-24 09:07:14",
        "time_to_send": "2021-09-17 09:07:14",
        "submit_report_requested": true,
        "delivery_report_requested": false,
        "view_report_requested": false,
        "tags": []
      },
      {
        "message_id": "b7b8d592-e182-4e96-a375-b4a6aa73e483",
        "from_connection": "admin@localhost",
        "from_address": "",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "Hello world 2!",
        "create_date": "2021-09-17 09:07:23",
        "valid_until": "2021-09-24 09:07:23",
        "time_to_send": "2021-09-17 09:07:23",
        "submit_report_requested": true,
        "delivery_report_requested": false,
        "view_report_requested": false,
        "tags": []
      },
      {
        "message_id": "b0308970-a3c9-45c4-bf97-14a914a66f57",
        "from_connection": "admin@localhost",
        "from_address": "",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "Hello world 3!",
        "create_date": "2021-09-17 09:07:33",
        "valid_until": "2021-09-24 09:07:33",
        "time_to_send": "2021-09-17 09:07:33",
        "submit_report_requested": true,
        "delivery_report_requested": false,
        "view_report_requested": false,
        "tags": []
      }
    ]
  }
}	
	

Python příklad pro SMS: ReceiveSms.py

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

V následujícím videu se dozvíte, jak můžete použít Python projekt ReceiveSms.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 pro úspěšné použití ukázkového souboru s kódem.

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

Ukázkový kód níže je součástí složky ReceiveSms.py.zip.

Obrázek 3 - ReceiveSms.py

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

V následujícím klipu uvidíte, jak můžete spustit Python kód ReceiveSms.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, když byl kód proveden. Video je o něco kratší než minuta, ale obsahuje všechny informace potřebné pro spuštění projektu.

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

Závěr

Tento článek ukázal kroky pro přijímá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 výukových stránkách Ozeki, kde si můžete přečíst o tématech, jako je mazání SMS v Pythonu.

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

More information