Overview
استدعِ BroadNet REST API من Python باستخدام مكتبة requests أو httpx. لا توجد حزمة BroadNet للغة Python: حزمة SDK الرسمية الوحيدة مخصّصة لـ TypeScript وNode.js فقط. إذا أردت عميل Python بأنواع محددة، فأنشئه من مواصفات OpenAPI باستخدام openapi-generator؛ وإلا فإن استدعاءات HTTP البسيطة أدناه تكفي.
معالجة الأخطاء
تُعيد الأخطاء رمز حالة HTTP وجسم JSON لاستجابة الاستثناء (status, error, message, errorCode, requestUri). تقوم الدالة resp.raise_for_status() بتحويلها إلى استثناءات. أعد المحاولة فقط عند أخطاء الشبكة واستجابات 5xx، مع تأخير تدريجي (backoff)؛ فبمجرد أن يُعيد الاستدعاء معرّف رسالة يكون الإرسال قد قُبل، لذا لا تُعِد إرساله دون تحقق.
متطلبات
أي إصدار مدعوم من Python 3. يستخدم المثال المتزامن requests، بينما يستخدم المثال غير المتزامن httpx؛ قم بتثبيت المكتبة التي تستخدمها.
أمثلة
انسخ والصق واستبدل القيم النائبة — هذه الأمثلة تستدعي واجهة API لبيئة الإنتاج كما هي مكتوبة.
pip install requests httpximport os, requests
r = requests.post(
"https://api.broadnet.me/sms/sendSms",
headers={"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"},
json={
"senderId": "BroadNet",
"destinationNumber": "447700900123",
"message": "Your verification code is 482913",
"messageType": "TEXT",
},
)
print(r.status_code, r.text) # message IDimport asyncio
import os
import httpx
URL = "https://api.broadnet.me/sms/sendSms"
HEADERS = {"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"}
async def send(client: httpx.AsyncClient, number: str, text: str) -> str:
resp = await client.post(
URL,
headers=HEADERS,
json={
"senderId": "BroadNet",
"destinationNumber": number,
"message": text,
"messageType": "TEXT",
},
)
resp.raise_for_status()
return resp.text # message ID
async def main() -> None:
recipients = ["447700900123", "447700900124", "447700900125"]
async with httpx.AsyncClient(timeout=10) as client:
ids = await asyncio.gather(
*(send(client, n, "Your code is 482913") for n in recipients)
)
print(ids)
if __name__ == "__main__":
asyncio.run(main())# Optional: generate a typed Python client from the OpenAPI spec
curl -O https://www.broadnet.me/developers/openapi.yaml
npx @openapitools/openapi-generator-cli generate \
-i openapi.yaml -g python -o broadnet-python