دسته بندی ها
01:44 1399/07/11

ارسال sms از طریق وب سرویس در Asp.net Core

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 518     رتبه کاربر : 4
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 7124
هوش مصنوعی

پاسخ هوش مصنوعی

برای ارسال SMS از طریق وب سرویس در ASP.NET Core، شما می توانید از یک API ارسال پیامک استفاده کنید. این مراحل را دنبال کنید تا SMS را ارسال کنید:

1. **انتخاب یک سرویس ارسال SMS:** یکی از سرویس های محبوب شامل Twilio، Nexmo یا یک وب سرویس محلی مانند پیامکی اقدام است.

2. **ثبت نام و دریافت API Key:** پس از انتخاب سرویس، در آن ثبت نام کرده و API Key یا Token دریافتی را ذخیره کنید.

3. **نصب پکیج های لازم:** برای ارتباط با API، ممکن است بخواهید بسته NuGet مناسب را نصب کنید. به عنوان مثال، اگر از Twilio استفاده می کنید:

dotnet add package Twilio

4. **پیکربندی پروژه:** به فایل appsettings.json بروید و اطلاعات مربوط به سرویس SMS خود را اضافه کنید:


{
  "SmsSettings": {
    "AccountSid": "YOUR_ACCOUNT_SID",
    "AuthToken": "YOUR_AUTH_TOKEN",
    "FromNumber": "YOUR_FROM_NUMBER"
  }
}

5. **ایجاد یک سرویس SMS:** یک کلاس خدمات برای ارسال SMS ایجاد کنید:

using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Microsoft.Extensions.Options;

public class SmsService
{
    private readonly SmsSettings _smsSettings;

    public SmsService(IOptions smsSettings)
    {
        _smsSettings = smsSettings.Value;
        TwilioClient.Init(_smsSettings.AccountSid, _smsSettings.AuthToken);
    }

    public void SendSms(string to, string message)
    {
        var messageOptions = new CreateMessageOptions(new PhoneNumber(to))
        {
            From = new PhoneNumber(_smsSettings.FromNumber),
            Body = message
        };

        var messageResource = MessageResource.Create(messageOptions);
    }
}

public class SmsSettings
{
    public string AccountSid { get; set; }
    public string AuthToken { get; set; }
    public string FromNumber { get; set; }
}

6. **استفاده از سرویس SMS در کنترلر:** حالا می توانید از این سرویس در کنترلر خود استفاده کنید:

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("[controller]")]
public class SmsController : ControllerBase
{
    private readonly SmsService _smsService;

    public SmsController(SmsService smsService)
    {
        _smsService = smsService;
    }

    [HttpPost("send")]
    public IActionResult SendSms([FromBody] SmsRequest request)
    {
        _smsService.SendSms(request.To, request.Message);
        return Ok("SMS sent successfully!");
    }
}

public class SmsRequest
{
    public string To { get; set; }
    public string Message { get; set; }
}

7. **راه اندازی DI:** فراموش نکنید که در Startup.cs سرویس SMS خود را ثبت کنید:

services.Configure(Configuration.GetSection("SmsSettings"));
services.AddSingleton();

با این مراحل، شما می توانید به راحتی از وب سرویس برای ارسال SMS استفاده کنید. حتماً جزییات مستندات API انتخابی خود را بررسی کنید تا از روش های خاص تر و پارامترهای موجود آگاه شوید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : Hamidyeza 11:59 1399/07/11

از شرکتی که وب سرویس رو خریداری میکنین، خودشون کدهایی که باید استفاده کنین رو در اختیارتون میذارن.

من خودم از شرکت کاوه نگار وب سرویس رو گرفتم. 

1000 تومان هم اعتبار آزمایشی رایگان در اختیارتون میذارن تا سرویس رو تست کنین

ویرایش شده در جمعه 11 مهر 1399 ساعت 13:11:04
به این پاسخ امتیاز بدهید    1
امتیاز: 15 رتبه: 48
پاسخ دهنده : saedbfd 13:33 1399/07/11

ارسال sms از طریق وب سرویس در Asp.net Core

 

ارسال پیامک در Asp

 

برای ارسال پیامک در Asp.net Core ابتدا نیاز هست که از شرکتهای ارائه دهنده یک پنل پیامکی خریداری کنید. برای این منظور سایتهای زیادی هستن که خدمات پیامکی ارائه میدن. مثل کاوه نگار، sms.ir، و ... که با یک سرچ ساده در گوگل میتونید لیستی از اونها رو پیدا کنید.

 

ارسال sms از طریق وب سرویس در Asp.net Core به صورت عملی

خب حالا یک مثال عملی از ارسال پیامک در Asp.net Core رو با هم می بینیم. در ابتدا شما باید یک پروژه از نوع وب و با Asp.net Core ایجاد کرده باشید. فرض می کنیم که از سایت کاوه نگار هم یک پنل تهیه کرده اید.

 

  • ابتدا یک پوشه به نام CommonServices در پروژه خود ایجاد کنید. در این پوشه یک کلاس به نام SmsSender و یک Interface به نام ISmsSender ایجاد کنید.

ارسال پیامک

 

  • در کلاس SmsSender برای ارسال پیامک کدهای زیر را بنویسید.
public class SmsSender : ISmsSender
{
    public async Task<string> SendSmsAsync(string message, string PhoneNumber)
    {
        try
        {
           HttpClient httpClient = new HttpClient();
           var httpResponse = await httpClient.GetAsync($"https://api.kavenegar.com/v1/YourCode/sms/send.json?receptor={PhoneNumber}&sender=YourNumber&message={message}");
        if (httpResponse.StatusCode == HttpStatusCode.OK)
              return "Success";
        else
              return "Failed";
        }
        catch
        {
           return "Error";
        }
    }
}

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

 

  •  در اینترفیس ISmsSender هم کدهای زیر را بنویسید.
public interface ISmsSender
{
   Task<string> SendSmsAsync(string message, string PhoneNumber);
}

 

  • خب در اینجا یک کلاس و یک اینترفیس داریم که تشکیل یک Service را می دهند. بنابراین باید در کلاس startup این سرویس را تعریف و راه اندازی کنیم. در کلاس startup و در متد ConfigureService کد زیر را قرار دهید:
public void ConfigureServices(IServiceCollection services)
{
    services.AddScoped<ISmsSender, SmsSender>();
    services.AddControllersWithViews();
}
  • خب در حال حاضر شما به راحتی میتوانید از ارسال پیامک در پروژه خودتون استفاده کنید. کافیه که در هر کنترلی که میخواید پیامک ارسال کنید یک نمونه از Interface رو ایجاد کنید و پیامک خودتون رو ارسال کنید:
public class HomeController : Controller
{
    private readonly ISmsSender _smsSender;
    public HomeController(ISmsSender smsSender)
    {
        _smsSender = smsSender;
    }

    [HttpPost]
    public async Task<IActionResult> Register(string message, string PhoneNumber)
    {
        //
        await _smsSender.SendAuthSmsAsync(message, PhoneNumber);
    }

}

 

به این ترتیب شما میتونید عملیات ارسال sms از طریق وب سرویس در Asp.net Core رو به راحتی انجام بدید.

ویرایش شده در پنج شنبه 25 دی 1399 ساعت 14:06:49
به این پاسخ امتیاز بدهید    4
امتیاز: 1664 رتبه: 1
2 نظر
vahideh : با سلام اگه پنل خودمون رو از یه سایت دیگه گرفته باشیم مثل sibsms اون موقع در کلاس SmsSender خط 6 چی باید بنویسیم؟ ممنون

امتیاز کاربر : ‎−1   رتبه کاربر : 7118   تاریخ ثبت : 10:21 1400/03/31
mahmoodi : ممنونم توضیحات این قسمت کامل بود. میشه مرحله بعد رو هم توضیح بدهید بعد از اینکه پیام اومد و کاربر باید کد رو وارد کنه, این کد چگونه در سمت سرور تایید میشود؟

امتیاز کاربر : 0   رتبه کاربر : 7080   تاریخ ثبت : 02:04 1401/09/29
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود