ارسال SMS با استفاده از Nexmo API در ASP.NET MVC

در این مقاله نحوه ی ارسال SMS از اپلیکیشن Asp.Net MVC با استفاده از Nexmo SMS API را نشان خواهیم داد. همانطور که می دانید ارسال SMS یک ویژگی است که در همه ی وب اپلیکیشن ها برای تایید رمزعبور ،اعلان ها و غیره استفاده می شود. بنابراین این مقاله فرصتی است که قدم به قدم نحوه ی پیاده سازی Nexmo SMS API را نشان می دهد.

ارسال SMS با استفاده از Nexmo API در ASP.NET MVC

پیش نیاز ها

اطمینان حاصل کنید که Visual Studio 2017 (.NET Framework 4.6.1) و SQL Server را نصب کرده اید.

در این پست می خواهیم:

-اپلیکیشن MVC بسازیم.

Nexmo SMS API- را نصب کنیم.

-فایل appsettings  را اضافه کنیم.

-کنترلر SMSMessage خود را بسازیم.

-صفحه ی HTML به عنوان دمو بسازیم.

ساخت اپلیکیشن MVC

Visual Studio راباز کنید و File را انتخاب کنید >> New Project.

پنجره ی "New Project" باز خواهد شد ASP.NET Web Application (.NET Framework) را انتخاب کنید، پروژه ی خود را نام گذاری کنید و روی  OK کلیک کنید.

بعد یک dialog  جدید برای انتخاب template بازخواهد شد که ما MVC  را انتخاب خواهیم کرد و روی OK کلیک می کنیم.

وقتی که پروژه ی ما ساخته شد گام بعدی نصب Nexmo SMS API می باشد.

نصب Nexmo SMS API

در solution explorer روی References  راست کلیک کنید >> Manage NuGet Packages

حال Nexmo.Csharp.Client را در قسمت جستجو تایپ کنید و روی دکمه ی Install  کلیک کنید.

ساخت اکانت Nexmo 

پس از نصب پکیج های Nexmo  از NuGet حال باید برای اکانت Nexmo برای گرفتن گواهینامه ی API  که به ما اجازه ی ارتباط با Nexmo API  را می دهد، ثبت نام کنیم.

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

اضافه کردن فایل appsettings 

در اینجا نیاز داریم که یک فایل JSON جدید به نام appsettings اضافه کنیم. حال در این فایل باید گواهینامه های API که در تصویر قبل تولید شدند را کپی و paste کنیم.

Appsettings.json

{  
  "appSettings": {  
    "Nexmo.UserAgent": "NEXMOQUICKSTART/1.0",  
    "Nexmo.Url.Rest": "https://rest.nexmo.com",  
    "Nexmo.Url.Api": "https://api.nexmo.com",  
    "Nexmo.api_key": "11549690",  
    "Nexmo.api_secret": "9c9e31d1d207a5da",  
    "NEXMO_FROM_NUMBER": "YOUR_PHONE_NUMBER"  
  }  
}  

ساخت یک controller

حال می خواهیم یک controller بسازیم. روی پوشه ی controllers راست کلیک کنید >> Add >> Controller >> MVC 5 Controller – Empty را انتخاب کنید >> روی Add کلیک کنید. در dialog بعدی نام Controller را SMSMessageController بگذارید و سپس روی Add کلیک کنید.

SMSMessageController.cs

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.Mvc;  
using Nexmo.Api;  
using SendSMSMessages.ViewModels;  
  
namespace SendSMSMessages.Controllers  
{  
    public class SMSMessageController : Controller  
    {  
        // GET: SMSMessage  
        public ActionResult Index()  
        {  
            return View();  
        }  
  
        [HttpGet]  
        public ActionResult SendMessage()  
        {  
            return View();  
        }  
  
        [HttpPost]  
        public ActionResult SendMessage(Message message)  
        {  
            var results = SMS.Send(new SMS.SMSRequest  
            {  
                from = Configuration.Instance.Settings["appsettings:NEXMO_FROM_NUMBER"],  
                to = message.To,  
                text = message.ContentMsg  
            });  
  
  
            return View();  
        }  
    }  
}  

همانطور که می توانید ببینید کنترلر SMSMessage شامل عملیات SendMessage که توسط [httpGet] ساخته شده و برای نشان دادن view مربوط SMSMessage.cshtml می باشد، است بنابراین ما SendMessage ساخته شده به وسیله ی ویژگی [httpPost] که مسئول ارسال SMS به یک شماره تلفن داده شده در شیئ message می باشد را داریم.

لازم به توضیح است که متد send شی های SMSRequest که شامل سه ویژگی اصلی (از ، به ، متن) میباشند را همانطور که در قطعه کد زیر نشان داده شده است، می پذیرد.

View model

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
  
namespace SendSMSMessages.ViewModels  
{  
    public class Message  
    {  
        public string To { get; set; }  
        public string ContentMsg { get; set; }  
    }  
}  

SendMessage.cshtml

@model SendSMSMessages.ViewModels.Message  
  
@{  
    ViewBag.Title = "SendMessage";  
}  
  
<h2>Send Message</h2>  
  
@using (Html.BeginForm())   
{  
    @Html.AntiForgeryToken()  
      
    <div class="form-horizontal">  
        <h4>Message</h4>  
        <hr />  
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })  
        <div class="form-group">  
            @Html.LabelFor(model => model.To, htmlAttributes: new { @class = "control-label col-md-2" })  
            <div class="col-md-10">  
                @Html.EditorFor(model => model.To, new { htmlAttributes = new { @class = "form-control" } })  
                @Html.ValidationMessageFor(model => model.To, "", new { @class = "text-danger" })  
            </div>  
        </div>  
  
        <div class="form-group">  
            @Html.LabelFor(model => model.ContentMsg, htmlAttributes: new { @class = "control-label col-md-2" })  
            <div class="col-md-10">  
                @Html.EditorFor(model => model.ContentMsg, new { htmlAttributes = new { @class = "form-control" } })  
                @Html.ValidationMessageFor(model => model.ContentMsg, "", new { @class = "text-danger" })  
            </div>  
        </div>  
  
        <div class="form-group">  
            <div class="col-md-offset-2 col-md-10">  
                <input type="submit" value="Send SMS" class="btn btn-default" />  
            </div>  
        </div>  
    </div>  
}  
  
<div>  
    @Html.ActionLink("Back to List", "Index")  
</div>  
  
@section Scripts {  
    @Scripts.Render("~/bundles/jqueryval")  
}  

دمو

حال اپلیکیشن ما آماده است و می توانیم آن را اجرا کنیم و نتیجه را در مرورگر ببینیم.

آموزش asp.net mvc