阿里大鱼是阿里云旗下的短信发送平台,它提供了多种发送短信的方式,包括API、SDK和控制台等。在使用阿里大鱼发送短信时,需要先在控制台上创建一个应用,并获取到App Key、App Secret以及短信模板等信息。本文将介绍如何使用 .NET Core 版本的阿里大鱼 SDK 实现简单的发送短信功能。
准备工作
- 创建阿里云账号,进入阿里云控制台:https://home.console.aliyun.com/new#/
- 创建短信签名和短信模板,获取短信模板ID。
- 创建阿里大鱼应用,获取 App Key 和 App Secret。
- 安装阿里大鱼 SDK:使用命令
Install-Package Aliyun.SDK.Acs
安装。
配置阿里大鱼 SDK
在使用阿里大鱼 SDK 之前,需要在 appsettings.json 中配置 App Key、App Secret 和短信模板。
{
"Aliyun": {
"AccessKeyId": "your-access-key-id",
"AccessKeySecret": "your-access-key-secret",
"RegionId": "cn-hangzhou",
"SmsSignName": "your-sms-sign-name",
"SmsTemplateCode": "your-sms-template-code"
}
}
发送短信
以下是发送短信的代码示例:
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Requests;
using Aliyun.Acs.Core.Responses;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Text;
namespace Aliyun.Demo
{
public class SmsHelper
{
private readonly IAcsClient acsClient;
public SmsHelper(IConfiguration configuration)
{
var accessKeyId = configuration["Aliyun:AccessKeyId"];
var accessKeySecret = configuration["Aliyun:AccessKeySecret"];
var profile = DefaultProfile.GetProfile(configuration["Aliyun:RegionId"], accessKeyId, accessKeySecret);
acsClient = new DefaultAcsClient(profile);
}
public bool SendSms(string mobile, string code)
{
var request = new SendSmsRequest
{
PhoneNumbers = mobile,
SignName = "your-sms-sign-name",
TemplateCode = "your-sms-template-code",
TemplateParam = "{\"code\":\"" + code + "\"}"
};
try
{
var response = acsClient.GetAcsResponse(request);
if (response.Code != "OK")
{
throw new Exception($"SMS sending error: {response.Message}");
}
return true;
}
catch (ServerException e)
{
Console.WriteLine("Server Error: " + e.ErrorCode + e.ErrorMessage);
return false;
}
catch (ClientException e)
{
Console.WriteLine("Client Error: " + e.ErrorCode + e.ErrorMessage);
return false;
}
}
}
}
在程序中调用 SmsHelper.SendSms() 方法,可以向指定手机号码发送短信。其中,mobile 参数为目标手机号码,code 参数为短信验证码。
以下是在 ASP.NET Core 中调用 SendSms() 方法的示例:
using Aliyun.Demo;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
namespace WebApplication.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class SmsController : ControllerBase
{
private readonly IConfiguration configuration;
private readonly SmsHelper sms;
public SmsController(IConfiguration configuration)
{
this.configuration = configuration;
this.sms = new SmsHelper(configuration);
}
[HttpGet]
public IActionResult Get(string mobile, string code)
{
if (string.IsNullOrEmpty(mobile) || string.IsNullOrEmpty(code))
{
return BadRequest();
}
var result = sms.SendSms(mobile, code);
return Ok(result);
}
}
}
在上面的代码中,控制器接收 mobile 和 code 两个参数,并调用 SmsHelper.SendSms() 方法发送短信。发送成功后,返回 Ok() 响应。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:阿里大鱼简单发送短信功能.net core版 - Python技术站