اتصال بک‌اند به بک‌اند

API ارسال و پیگیری پیام برای سایت و نرم‌افزار

برنامهٔ شما از سرور خودش به ITFA SMS درخواست HTTPS می‌فرستد. API با کلید اختصاصی احراز هویت می‌کند، پیام معتبر را در صف ثبت می‌کند و شناسه می‌دهد تا همان برنامه بتواند وضعیت پیام را پیگیری کند.

مراحل اتصال API پیامک

  1. برای سایت یک کلید جدا بسازید

    از پنل مدیر کلید مخصوص همان برنامه را بسازید. اگر چند وب‌سایت دارید، برای هرکدام کلید جدا نگه دارید تا دسترسی را مستقل لغو کنید.

  2. کلید را در بک‌اند محرمانه نگه دارید

    کلید باید در متغیر محیطی یا مخزن امن سرور برنامه باشد. آن را داخل JavaScript، اپلیکیشن قابل دانلود، HTML، مخزن عمومی یا گزارش خطا قرار ندهید.

  3. درخواست ثبت پیام بفرستید

    برای ثبت پیام از POST به مسیر /api/v1/messages و هدر X-API-Key استفاده کنید. بدنه شامل شمارهٔ مقصد و متن است. برای جلوگیری از ثبت تکراری در retry، Idempotency-Key یکتا و ثابت همان عملیات را بفرستید.

  4. وضعیت را با شناسهٔ پاسخ بخوانید

    پاسخ 202 شناسهٔ پیام و وضعیت اولیه را برمی‌گرداند. سپس GET به /api/v1/messages/{id} وضعیت همان پیام متعلق به همان کلید را ارائه می‌کند.

POST /api/v1/messages HTTP/1.1
Host: itfa-sms.ir
Content-Type: application/json
X-API-Key: itsms_<SERVER_SIDE_SECRET>
Idempotency-Key: order-10452

{
  "to": "09XXXXXXXXX",
  "text": "پیام نمونه برای مخاطب مجاز"
}

HTTP/1.1 202 Accepted
{
  "id": "<message-id>",
  "status": "queued"
}

محدودیت‌ها و معنی وضعیت‌های API

سقف درخواست

مقدار پیش‌فرض سرویس ۶۰ درخواست در دقیقه و ۱۰۰۰ پیام صف‌شده برای هر کلید است. با رسیدن به سقف، پاسخ 429 دریافت می‌شود؛ حد صف قابل تنظیم است.

تکرار امن درخواست

اگر درخواست به‌علت قطع شبکه تکرار شد، همان Idempotency-Key را برای همان مقصد و متن نگه دارید؛ برای محتوای جدید کلید تازه بسازید.

رسید تحویل

وضعیت queued ثبت در صف را نشان می‌دهد و accepted پاسخ دستگاه را. delivered تنها با رسید معتبر و قابل تطبیق گزارش می‌شود و همهٔ دستگاه‌ها آن را پشتیبانی نمی‌کنند.

مخاطب و رضایت: درخواست API برای شمارهٔ موجود در فهرست لغو یا عدم‌ارسال رد می‌شود. ارسال باید فقط برای مخاطب مجاز و دارای مبنای معتبر انجام شود.

امنیت اتصال سایت به API پیامک

API را فقط از بک‌اند سایت فراخوانی کنید. HTTPS را فعال نگه دارید، کلید را در خروجی مرورگر یا کد سمت کاربر قرار ندهید و دسترسی شبکه به پنل را محدود کنید. ارتباط مستقیم سایت با پورت مدیریتی مودم یا MikroTik لازم نیست؛ پنل مسیر دستگاه را از شبکهٔ سرور مدیریت می‌کند.

پرسش‌های متداول API

آیا می‌توان API Key را در مرورگر سایت گذاشت؟

خیر. بازدیدکننده می‌تواند کلید داخل JavaScript را استخراج کند. درخواست باید از بک‌اند سایت به پنل فرستاده شود.

آیا پاسخ 202 به معنی تحویل پیام است؟

خیر. 202 یعنی درخواست در پنل پذیرفته و ثبت شده است؛ وضعیت ارسال و رسید تحویل بعداً با شناسهٔ پیام بررسی می‌شوند.

چطور درخواست را پس از timeout تکرار کنم؟

برای همان پیام از Idempotency-Key یکسان استفاده کنید. پاسخ خطا را بررسی کنید و برای متن یا مقصد تازه کلید دیگری بسازید.