نمونه کد جاوااسکریپت
پیام رسان بلاگ برنامه نویسان راهنمای کامل ارسال پیامک در جاوااسکریپت ( کد تایید ، پیامک تکی و … )

راهنمای کامل ارسال پیامک در جاوااسکریپت ( کد تایید ، پیامک تکی و … )

نوشته ای از سجاد افضلی
انتشار در تاریخ 22 مهر 1403
دسته بندی: برنامه نویسان

Javascript  یا به اختصار JS ، زبانی سطح بالاست که برای برنامه نویسی سمت سرور، اپلیکیشن موبایل و حتی بازی های دسکپتاپ و نیز برنامه نویسی وب استفاده می شود.

یکی از کاربرد های مهم این زبان، استفاده از در برنامه نویسی وب و طراحی سایت است. حال میخواهیم در این مطلب بصورت کامل متدهای ارسال پیامک با زبان جاوااسکریپت را توضیح دهیم.

با مطالعه این مطلب به نمونه کد جاوااسکریپت جهت ارسال پیامک در سایت، اپ یا نرم افزار خود دست پیدا خواهید کرد و نیز همه چیز را راجب وب سرویس پیامکی خواهید آموخت.

وب سرویس پیامکی چیست ؟

وب سرویس پیامکی یک رابط نرم افزاری است که برنامه نویسان با ارسال درخواست به آن در برنامه ی خود قادر به دریافت و یا ارسال یک سری اطلاعات به برنامه ای دیگر هستند.

وب سرویس پیامکی رابط بین کد های برنامه نویسی شده شده با یک سامانه پیامکی مجهز به نام پیام رسان است.  شما با ارسال درخواست GET یا  POST به این API ارسال پیامک قادر هستید تا برای کاربران پیامک کد تایید OTP ، پیامک سفارش ، پیامک اطلاعرسانی و .. ارسال نمایید.

مرحله اول : وب سرویس پیامکی سازگار با JS

برای آنکه با زبان جاوا اسکریپت به وب سرویس پیامکی پیام رسان متصل شوید.. ابتدا باید یک سامانه پیامکی تهیه کنید. با ثبت نام در پنل اس ام اس پیام رسان و خرید پنل پیامکی ، شما به یک وب سرویس پیامکی هوشمند سازگار با زبان جاوااسکریپت دسترسی خواهید داشت.

همچنین یک خط هدیه 5000 رایگان به همراه 100 پیامک تست هدیه دریافت خواهید کرد.

کسب و کار داری و میخوای تبلیغات پیامکی انبوه داشته باشی؟!

ارسال پیامک انبوه با سرعت بالا دریافت گزارش پیامک های ارسال شده بانک شماره موبایل جامع ، به روز و تفکیک شده انواع ارسال منطقه ای، مشاغل، زنده و ... وب سرویس پیامکی رایگان با قابلیت پترن

جهت ثبت نام در سامانه پیامکی پیام رسان، شماره موبایل خود را وارد کنید.

مرحله دوم : با دریافت APIKEY از سامانه پیامکی پیام رسان ، شما قادر هستید درخواست های خود را به این وب سرویس پیامکی بفرستید . ما در ادامه نمونه کد های ارسال پیامک با زبان جاوا اسکریپت را برای شما قرار دادیم . با این پیشفرض که قبلا در پیام رسان ثبت نام کرده و توکن APIKEY خود را دریافت کرده باشید.

دریافت api key

نمونه کد های ارسال پیامک با جاوااسکریپت

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

var apiKey = "YOUR API KEY"; // مقدار API Key شما
var sender = "YOUR SMS SENDER NUMBER"; // شماره فرستنده پیامک شما
var baseUrl = "http://api.sms-webservice.com/api/V3/"; // آدرس Base URL شما

// حالا می‌توانید از این متغیرها در سایر بخش‌های کدتان استفاده کنید
console.log("API Key:", apiKey);
console.log("Sender:", sender);
console.log("Base URL:", baseUrl);

متد ارسال یک متن به یک یا چند شماره با متد Get (Send )

با این متد و نمونه کد زبان برنامه نویسی جاوااسکریپت ، می توانید در یک بار فراخوانی به حداکثر 99 شماره پیام ارسال نمایید. به این معنی که نیازی نیست به ازای هر شماره یک بار متد را فراخوانی نمایید.

می توانید شماره ها را به دسته های 99 تایی تقسیم نموده و هر دسته را توسط یک آرایه با زبان جاوااسکریپت به این وب سرویس پیامکی ارسال کنید.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/Send?ApiKey=YourApiKey&Text=YourSMSText&Sender=5000&Recipients=09123456789";

// باز کردن درخواست GET
xhr.open("GET", url, true);

// ارسال درخواست بدون هیچ بدنه یا هدر خاص
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست
xhr.send(null);

متد ارسال یک متن به یک یا چند شماره با متد post (SendBulk )

کاربرد این متد کاملا شبیه متد بالا است . تنها تفاوت آن در نوع درخواستی که است که با جاوا اسکریپت برای ارسال پیامک ، صادر خواهید کرد.

در متد اول، درخواست شما از نوع GET است ولی در دومی از نوع POST است . اینکه تفاوت POST چیست باید بگوییم امنیت بیشتر و حجم بیشتری برای ارسال اطلاعات دارد.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/SendBulk";
var payload = "ApiKey=YourApiKey&Text=YourSMSText&Sender=5000&Recipients=09123456789";

// تنظیم هدرهای درخواست
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

// وقتی درخواست کامل شد
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست با بدنه payload
xhr.send(payload);

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

متد ارسال چند متن به چند گیرنده (SendMultiple)

اگر می خواهید با زبان جاوااسکریپت برای هر گیرنده یک متن جداگانه ارسال کنید ، این متد و نمونه کد زیر برای شماست. با استفاده از این متد نیازی نیست که به ازای هر گیرنده یک بار درخواست ارسال کنید و می توانید پیامک های خود را در چند گروه 100 تایی با یک ریکوئست به وب سرویس پیامکی JS ارسال کنید.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/SendMultiple";

// بدنه JSON برای ارسال در درخواست
var payload = JSON.stringify({
    "ApiKey": "YourApiKey",
    "Recipients": [
        {
            "Sender": 5000,
            "Text": "YourSMSText",
            "Destination": "09123456789",
            "UserTraceId": 0000
        }
    ]
});

// تنظیم هدرهای درخواست
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");

// مدیریت پاسخ
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست به همراه بدنه JSON
xhr.send(payload);

متد ارسال به یک شماره با استفاده از الگوی تعریف شده (SendTokenSingle)

اگر برنامه نویس حرفه ای باشید ، احتمالا نام ارسال پیامک از طریق پترن را شنیده باشید . این قابلیت یک امکان برای ارسال پیامک از سریع ترین خط خدماتی است! این قابلیت مناسب پیامک هایی است که باید با سرعت بالا و به همه ی شماره ها؛ حتی بلک لیست مخابراتی ارسال شود.

مثلا پیامک هایی از قبیل پیامک کد تایید و احراز هویت کاربران ! در این حالت شما با یک کد جاوااسکریپت می توانید از قابلیت پترن پیام رسان استفاده کنید . البته اگر ویدیوی اول مقاله را مشاهده کرده باشید بیشتر با پترن و قالب آشنا خواهید شد.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/SendTokenSingle";

// تنظیم درخواست GET
xhr.open("GET", url, true);

// تنظیم هدرهای سفارشی
xhr.setRequestHeader("ApiKey", "YourApiKey");
xhr.setRequestHeader("TemplateKey", "YourPattern");
xhr.setRequestHeader("Destination", "09123456789");
xhr.setRequestHeader("P1", "Param1");
xhr.setRequestHeader("P2", "Param2");
xhr.setRequestHeader("P3", "Param3");

// مدیریت پاسخ
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست
xhr.send(null);

متد ارسال یک الگو با متن های مختلف به چند شماره (SendTokenMulti)

اگر میخواهید در برنامه یا سایت خود که با زبان جاواسکریپت در حال توسعه هستید، از قابلیت پترن برای پیامک های متفاوت استفاده کنید ، این متد مناسب شماست .

می توانید با یکبار درخواست برای چندین شماره از یک قالب، ارسال پیامک داشته باشید.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/SendTokenMulti";

// داده‌های فرم URL-encoded
var payload = "ApiKey=YourApiKey&TemplateKey=YourPattern&Destination=09123456789&P1=Param1&P2=Param2&P3=Param3";

// تنظیم درخواست POST
xhr.open("POST", url, true);

// تنظیم هدر Content-Type برای درخواست POST
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

// مدیریت پاسخ
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست به همراه payload
xhr.send(payload);

متد دریافت لیست الگوهای تعریف شده در پنل (TokenList)

در صورتیکه بخواهید لیست الگوهای تعریف شده در پنل را مشاهده نمایید، می توانید ازین متد استفاده نمایید.متد دریافت وضعیت پیام های ارسالی (StatusById)

زمانیکه بخواهیم پس از ارسال پیام، وضعیت پیام ارسالی را داشته باشیم، نیاز است ازاین متد استفاده نماییم، در یک درخواست می توان از وضعیت بیش از یک پیام استعلام گرفت.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/TokenList";

// داده‌های فرم URL-encoded
var payload = "ApiKey=YourApiKey";

// تنظیم درخواست POST
xhr.open("POST", url, true);

// تنظیم هدر Content-Type برای درخواست POST
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

// مدیریت پاسخ
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست به همراه payload
xhr.send(payload);

متد دریافت وضعیت پیام های ارسالی (StatusByTraceId)

زمانیکه بخواهیم پس از ارسال پیام، وضعیت پیام ارسالی را داشته باشیم، و شناسه های پیامک های ارسالی را در اختیار نداشته باشیم، می توانیم ازاین متد استفاده نماییم، در یک درخواست می توان از وضعیت بیش از یک پیام استعلام گرفت.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/StatusByUserTraceId";

// داده‌های JSON برای ارسال در درخواست
var payload = JSON.stringify({
    "ApiKey": "YourApiKey",
    "UserTraceIds": [0]
});

// تنظیم درخواست POST
xhr.open("POST", url, true);

// تنظیم هدر Content-Type برای ارسال JSON
xhr.setRequestHeader("Content-Type", "application/json");

// مدیریت پاسخ
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست به همراه payload
xhr.send(payload);

متد دریافت مقدار اعتبار و لیست خطوط ارسال کننده فعال در پنل (AccountInfo)

در صورتیکه بخواهید از مقدار اعتبار باقیمانده در پنل و یا لیست خطوط فعال در پنل خود گزارشی داشته باشید، ازین متد می توانید استفاده نمایید، برای فراخوانی این متد کافیست کد شناسه پنل خود را در بدنه متد ارسال نمایید.

var xhr = new XMLHttpRequest();
var url = "https://api.sms-webservice.com/api/V3/AccountInfo";

// تنظیم درخواست POST
xhr.open("POST", url, true);

// تنظیم هدرهای سفارشی
xhr.setRequestHeader("ApiKey", "YourApiKey");

// مدیریت پاسخ
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) { // زمانی که درخواست کامل شده
        if (xhr.status === 200) {
            console.log(xhr.responseText); // موفقیت: نمایش پاسخ
        } else {
            console.error('Error:', xhr.status); // خطا: نمایش وضعیت خطا
        }
    }
};

// ارسال درخواست بدون payload
xhr.send();

این مقاله مفید بود ؟

به این مقاله امتیاز دهید

میانگین رتبه 4.8 / 5. تعداد رای : 47

هنوز کسی به این مطلب رای نداده ؛ شما اولین نفر باشید !

تحریریه از سجاد افضلی

سجاد افضلی

سجاد در حال حاضر یک برنامه نویسه که کار سئو و بهینه سازی هم انجام میده ، همیشه در کارش تو فکر خلق ایده های جدیده . به کتاب خوندن و گوش دادن پادکست ها تو حوزه توسعه فردی و رشد کسب و کارم خیلی علاقه داره .

ارسال کامنت

ثبت نام ورود