مستندات فنی برای توسعه‌دهندگان

وب‌سرویس‌ها برای اشتراک‌گذاری منابع بین کامپیوترها بسیار مفید و کاربردی هستند. یک وب‌سرویس امکان فراخوانی و تبادل داده بین دو برنامه مستقل را از طریق پروتکل‌های شبکه و استانداردهای داده‌ای مانند XML فراهم می‌کند. واسط برنامه‌نویسیِ تحت وب (به‌اختصار، واسط وب) نوعی از وب‌سرویس است که صرفاً از استانداردهای وب و اینترنت مانند REST و JSON استفاده می‌کند. در این مستند روش فراخوانی واسط‌های وب برای ارسال پیامک با توکن‌های عادی و خدماتی تشریح می‌شود.

تعاریف

۱) درخواست (Request): یک درخواست HTTP(S) برای فراخوانی واسط وب.

نکته مهم: هر درخواست باید توکن اختصاصی مربوطه را به‌همراه داشته باشد (در سرآیند یا همان header).

۲) واسط برنامه‌نویسی تحت وب (Web API): یک پل ارتباطی میان برنامه‌های مستقل (روی سرورهای مستقل) است که از طریق پروتکل‌های شبکه و استانداردهای وب با هم تبادل اطلاعات می‌کنند. در این مستند به‌اختصار آن را «واسط وب» می‌نامیم.

۳) توکن (Token): یک قلم داده متشکل از یک رشته (توالی) از کاراکترها است که برای احراز هویت و تعیین سطح دسترسی کلاینت استفاده می‌شود. این توکن از بخش تعریف توکن قابل تعریف و دریافت است.

نکته مهم: به‌ازای هر فراخوانی یک واسط وب، بایستی توکن اختصاصی مربوطه در سرآیند یا همان header درخواست قرار بگیرد.

۴) متدهای HTTP: یکی از متدهای استاندارد در HTTP(S) است مانند GET یا POST.

نکته مهم: در این مستند فقط از متد POST استفاده می‌کنیم.

۵) استاندارد جِیسان (JSON): یک استاندارد اینترنت است که برای توصیف اشیاء داده‌ای (یا همان data objects) استفاده می‌شود. این استاندارد قابلیت توصیف انواع داده‌ها و روابط میان آن‌ها را دارد. واسط‌های وب که در بخش ۶ معرفی می‌شوند، از این استاندارد برای تبادل اطلاعات استفاده می‌کنند.

نکته مهم: داده‌ها در استاندارد جیسان در قالب یک شیء به زبان برنامه‌نویسی جاواسکریپت ارائه می‌شوند.

نمونه کد :

 
				
					{

"message": "متن پیام شما",

"recipient": "0912xxxxxxx"

}
				
			
احراز هویت

واسط‌های وب و همچنین وب‌سرویس‌ها اغلب از روش‌هایی برای حفاظت استفاده می‌کنند تا فقط کاربران مجاز امکان استفاده از منابع را داشته باشند. در این مستند، هر واسط وب یک توکن اختصاصی دارد که از بخش تعریف توکن قابل تعریف و دریافت است. هنگام فراخوانی واسط‌های وب، بایستی توکن اختصاصی و مربوط به آن واسط را در «سرآیند درخواست» یا همان

«HTTP(S) Request Header» قرار دهید تا فرآیند احراز هویت و تعیین سطح دسترسی شما به‌درستی انجام شود. بنابراین کافی است هنگام ارسال هر درخواست به سرور، یک سرآیند از نوع «Authorization Bearer» به آن اضافه نمایید و توکن اختصاصی را در آن قرار دهید.

روال درخواست و پاسخ

فرآیند درخواست و پاسخ از استاندارد درخواست‌های HTTP(S) در قالب جیسان پیروی می‌کند.

فراخوانی یک واسط وب از طریق یک درخواست HTTP(S) با متد POST انجام می‌شود.

بایستی توکن اختصاصی را که از بخش مدیریت توکن ها دریافت کرده‌اید، در سرآیند درخواست یا همان «HTTP(S) header» درخواست خود قرار دهید.

نکته مهم: نوع این سرآیند «Authorization Bearer» است.

هر واسط وب با توجه به کارکرد خود، ورودی‌هایی را دریافت می‌کند (مانند شماره گیرنده پیام و متن پیام). ورودی‌ها در قالب استاندارد جیسان در بدنه درخواست HTTP(S) قرار می‌گیرند و به سرور فرستاده می‌شوند. چنانچه واسط وب مقادیر خروجی داشته باشد، آن‌ها را نیز در قالب یک شیء مبتنی بر استاندارد جیسان به کلاینت برمی‌گرداند.

پس از یک فراخوانی موفق، یک کد وضعیت HTTP(S) با مقدار ۲۰۰ به کلاینت برگردانده می‌شود که به‌معنای اجرای موفق درخواست است. هر کد غیر از ۲۰۰ به‌معنی اجرای ناموفق است. شرح کدهای خطا در جدول (۱) ارایه شده‌اند.

در صورت بروز خطا در فراخوانی واسط وب، یک شیء جیسان به کلاینت برگردانده می‌شود که توصیف‌کننده خطا است. در این شیء علاوه بر کد وضعیت خطا (status)، یک پیام جزئیات خطا (detail) نیز در کنار شناسه درخواست (traceId) وجود دارد.

نمونه کد:

				
					{

"status": 461,

"detail": "متن پیام حاوی لینک نامعتبر است.",

"traceId": "0HMAUU3BB2N5K:00000003"

}
				
			

راهنمای واسط‌ها

واسط ارسال عادی

برای ارسال یک پیامک به یک شماره غیر لیست سیاه استفاده می‌شود.

آدرس واسط وب: https://app.sms1.ir:7001/api/service/send

متغیرهای ورودی : 
نام متغیر نوع داده‌ای ملاحظات
messageرشته‌ایحداکثر ۱۵۳۰ کاراکتر انگلیسی یا ۶۶۰ کاراکتر فارسی
recipientرشته‌ایحداکثر ۲۰ رقم انگلیسی

نتیجه فراخوانی: چنانچه فراخوانی موفقیت‌آمیز باشد، کد وضعیت ۲۰۰ در قالب پاسخ HTTP(S) برگردانده می‌شود. کد وضعیت غیر از ۲۰۰ به‌معنای بروز خطا در اجرای درخواست است.

واسط ارسال خدماتی

برای ارسال یک پیامک به یک شماره عادی یا لیست سیاه استفاده می‌شود.

آدرس واسط وب: https://app.sms1.ir:7001/api/service/patternSend

متغیرهای ورودی : 
نام متغیر نوع داده‌ای ملاحظات
patternIdعددیشناسه الگوی تایید شده در پنل کاربری
recipientرشته‌ایحداکثر ۲۰ رقم انگلیسی
pairsشیء جیسان متغیرهای ثبت و تایید شده در الگو بایستی در قالب «کلید-مقدار» در یک شیء جیسان با نام pairs قرار بگیرند.
جدول (۱) کدهای خطا
کد خطانوع خطاملاحظات
۴۰۰درخواست نامعتبر درخواست نامعتبر است.
۴۰۱هویت نامعتبرهویت نامعتبر است.
۴۰۳عملیات غیر مجاز عملیات غیر مجاز
۴۲۲مقادیر ورودی نامعتبر مقادیر ورودی نامعتبر هستند.
۴۶۰درخواست نامعتبر متن پیام دارای کلمات غیر مجاز است.
۴۶۱درخواست نامعتبر متن پیام دارای لینک نامعتبر است.
۴۶۲ درخواست نامعتبر لطفا حساب کاربری خود را شارژ نمایید.
۴۶۳درخواست نامعتبر شناسه الگو نامعتبر است.
۴۶۴درخواست نامعتبر الگوی وارد شده هنوز توسط مدیر سامانه تایید نشده است.
۴۶۵درخواست نامعتبر متن الگو با متغیرهای وارد شده در Pairs همخوانی ندارد.
۵۰۰خطای سرور خطایی در اجرای درخواست رخ داده است، لطفا با پشتیبانی تماس بگیرید.
۵۷۰خطای سرویس‌دهنده خارجی خطایی در اجرای درخواست رخ داده است، لطفا با پشتیبانی تماس بگیرید.
۵۷۱خطای سرویس‌دهنده خارجی شماره گیرنده مسدود یا در لیست سیاه است.
۵۹۰خطای ناشناخته خطایی در اجرای درخواست رخ داده است، لطفا با پشتیبانی تماس بگیرید.

نمونه کدهای فراخوانی در زبان‌های مختلف

کلاینت به زبان جاوا

کلاینت به زبان سی‌شارپ

کلاینت به زبان پایتون

کلاینت به زبان PHP

کلاینت به زبان ویژوال بیسیک

بالا