راهنمای کامل استفاده از API
مقدمه
این مستندات راهنمای کامل استفاده از وبسرویس پیامکی است که امکان ارسال و دریافت پیامک، بررسی وضعیت ارسال، و مدیریت حساب کاربری را فراهم میکند.
نکته مهم: تمام درخواستها باید شامل کلید API در هدر باشند.
ویژگیهای اصلی:
- ارسال پیامک با قابلیت تنظیم اولویت
- دریافت وضعیت ارسال پیامها
- دریافت پیامهای ورودی از طریق Webhook
- مدیریت تراز حساب
مفاهیم
JSON: فرمتی ساده و قابل فهم برای ذخیره و انتقال پیام است. در این فرمت معمولاً از ساختار value:key استفاده میشود.
مثال: {کلید: مقدار}
مثال: {کلید: مقدار}
کلید: کلیدها عناوین مقادیری هستند که باید در Header هر درخواست وبسرویس ارسال شوند.
Request HTTP: درخواستی که در قالب پروتکل http ارسال میشود. این درخواست در سادهترین حالت شامل دو بخش Header و Body میشود.
Response HTTP: پاسخی که در پاسخ به درخواست http به کاربر داده میشود. این مورد یک پیام و یک کد وضعیت دارد. کد وضعیت بهطور کلی مشکل اصلی را به شما نشان میدهد:
- کد وضعیت 200: همه چیز درست است و شما پاسخ نرمال دریافت کردهاید
- کد 404: اشتباه بودن آدرس URL
- کد 401: عدم دسترسی کافی
Key API: یک کلید امنیتی است که باید در حفظ و محرمانگی آن کوشا باشید. این کلید شرط دسترسی به وبسرویس و ارسال پیام از طریق آن است.
Header: همان Header HTTP است که بر روی بستههای HTTP قرار میگیرد و مواردی از جمله نوع داده، کلید دسترسی و... را در آن تعیین میکنند.
Type-Content: یک مقدار اجباری در Header HTTP و تعیینکننده نوع محتوا است:
- در وبفرمها: data-form/multipart
- در ارسال دادهها در قالب JSON: json/application
Request POST: نوعی از درخواست HTTP که تعیینکننده هدف درخواست است. در استفاده از وبسرویسهای این مستند همواره درخواستهای از نوع POST استفاده میگردد.
تعیین کلید
نیاز به کلید: برای بهرهمندی از وبسرویس یک کلید داشته باشید. این کلید باید در قسمت هدر درخواست شما قرار گیرد.
نحوه ارسال کلید در هدر
curl -X POST https://api.example.com/endpoint \\
-H "key-api-x: YOUR_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{
"data": "your_data"
}'
هشدار: در صورتیکه کلید در درخواست HTTP شما شناسایی نشود یا غلط باشد، با خطای 401 مواجه خواهید شد.
تولید کلید: کلید در پنل کاربری هر کاربر قابل تولید و نمایش است.
ارسال پیامک
پارامترها: همواره مقادیری هستند که برای ارسال پیامک نیاز است. برای ارسال پیام میبایست از آدرس زیر استفاده نمایید:
آدرس API
https://<your-provider-domain>/api/v3.0.1/send
جدول پارامترهای ارسال پیامک:
عنوان پارامتر | شرح | نوع داده | اجباری/اختیاری |
---|---|---|---|
srcNum | شماره مبدا که قرار است با آن ارسال انجام شود | string | اجباری |
recipient | شماره گیرنده/مخاطب | string | اجباری |
body | بدنه پیام/پیام اصلی | string | اجباری |
customerId | شناسه پیام (CheckingId) | long | اختیاری |
type | نوع پیام | int | اختیاری |
retryCount | تعداد دفعات تکرار در صورت موفق نبودن ارسال | int | اختیاری |
validityPeriod | زمان انقضای پیام به ثانیه | int | اختیاری |
نکته مهم: در ابتدای شماره تلفنها و شماره ارسالکننده کد کشور (98 برای ایران)، باید قرار گیرد.
نمونه درخواست ارسال CURL:
درخواست ارسال پیامک
curl -X POST -H "Content-Type: application/json" -H "x-api-key: <YOUR_API_KEY>" -d '[{"srcNum":"value1", "recipient":"value2","body":"message","customerId":id}]' https://<your-provider-domain>/api/v3.0.1/send
نکات مهم:
- مقادیر از نوع رشته یا string الزاماً داخل " قرار میگیرند. مثال: "پیام من"
- در وارد کردن عناوین (یا بهعبارتی همان key) باید حروف بزرگ و کوچک رعایت شود
- فراموش نکنید که در صورت وارد نکردن کلید در هدر پیام، با وضعیت 401 مواجه خواهید شد
- حتماً Type-Content را در Header خود بهصورت json/application قرار دهید
- امکان ارسال چندین پیام در یک درخواست وجود دارد، اما مؤکداً توصیه میشود در هر درخواست حداکثر 100 پیام وجود داشته باشد. به این منظور باید بدنه درخواست را بهصورت آرایهای از Object JSON ها ارسال کنید. به این شکل:
فرمت آرایه برای چندین پیام
[{M1},{M2},{M3}]
نمونه body ارسال تک پیام:
JSON Body - تک پیام
[
{
"srcNum": "982142750000",
"recipient": "98912*******",
"body": "تست پیام وب سرویس",
"customerId": 1,
"type": 5,
"retryCount": 2,
"validityPeriod": 10
}
]
نمونه body ارسال چند پیام (چند به چند):
JSON Body - چندین پیام
[
{
"srcNum": "982142750000",
"recipient": "98912*******",
"body": "تست پیام وب سرویس",
"customerId": 1,
"type": 5,
"retryCount": 2,
"validityPeriod": 10
},
{
"srcNum": "982142750000",
"recipient": "98912*******",
"body": "تست پیام وب سرویس",
"customerId": 2,
"type": 5,
"retryCount": 2,
"validityPeriod": 10
}
]