Přeskočit obsah

Integrace Pythonu

Integrace SMSBAT API do vaší Python aplikace je přímočará pomocí vestavěné urllib nebo populární knihovny requests.

Používání požadavků (doporučeno)

Nejprve nainstalujte knihovnu requests:

pip install requests

Poté pomocí následujícího kódu odešlete zprávu:

import requests
import json

url = 'https://api.smsbat.com/bat/messagelist'
api_key = 'YOUR_API_KEY_HERE'

headers = {
    'Content-Type': 'application/json',
    'X-Authorization-Key': api_key
}

payload = {
    "messages": [
        {
            "from": "ALPHANAME",
            "to": "380501234567",
            "text": "Hello from Python and SMSBAT!",
            "type": "sms"
        }
    ]
}

try:
    response = requests.post(url, headers=headers, json=payload, timeout=10)
    response.raise_for_status() # Raise an exception for HTTP errors

    print(f"Status Code: {response.status_code}")
    print(f"Response: {response.json()}")

except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")
    if hasattr(e, 'response') and e.response is not None:
        print(f"Error Details: {e.response.text}")

Použití aiohttp (asynchronní)

Pokud vytváříte asynchronní aplikaci (např. pomocí FastAPI nebo asyncio), můžete použít aiohttp:

pip install aiohttp
import aiohttp
import asyncio

async def send_message():
    url = 'https://api.smsbat.com/bat/messagelist'
    api_key = 'YOUR_API_KEY_HERE'

    headers = {
        'Content-Type': 'application/json',
        'X-Authorization-Key': api_key
    }

    payload = {
        "messages": [
            {
                "from": "ALPHANAME",
                "to": "380501234567",
                "text": "Hello from Async Python!",
                "type": "sms"
            }
        ]
    }

    async with aiohttp.ClientSession() as session:
        try:
            async with session.post(url, headers=headers, json=payload) as response:
                print(f"Status Code: {response.status}")
                result = await response.json()
                print(f"Response: {result}")
        except Exception as e:
            print(f"An error occurred: {e}")

# Run the async function
if __name__ == '__main__':
    asyncio.run(send_message())