Zum Inhalt

Python-Integration

Die Integration der SMSBAT-API in Ihre Python-Anwendung ist mithilfe der integrierten „urllib“ oder der beliebten „requests“-Bibliothek unkompliziert.

Anfragen verwenden (empfohlen)

Installieren Sie zunächst die „requests“-Bibliothek:

pip install requests

Verwenden Sie dann den folgenden Code, um eine Nachricht zu senden:

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}")

Verwendung von aiohttp (asynchron)

Wenn Sie eine asynchrone Anwendung erstellen (z. B. mit FastAPI oder asyncio), können Sie „aiohttp“ verwenden:

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())