在C#代码里调用阿里云的短信服务,用于推送消息
以下介绍具体的步骤主要分为配置和代码调用
服务管理和配置
在控制台首页进入短信服务
使用流程
跟随快速学习和测试
1.申请签名
签名必须为企业名字或者对应网站、应用的名称,其他名称则无法通过校验
2.模版管理
编辑模版内容
3.授权码
如果要使用api必须得有AccessKey,如果已有就跳过,没有的要需要自己创建,在右上角用户头像处,出现下拉菜单,点击AccessKey管理
使用子用户AccessKey
创建一个新用户
确定添加之后需要保存,记住accessKeyId和accessKeySecret,关闭之后无法再查看accessKeySecret
增加授权
调用短信服务
public class Sample {/*** 使用AK&SK初始化账号Client* @param accessKeyId* @param accessKeySecret* @return Client* @throws Exception*/public static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret){AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config{// 必填,您的 AccessKey IDAccessKeyId = accessKeyId,// 必填,您的 AccessKey SecretAccessKeySecret = accessKeySecret,};// 访问的域名config.Endpoint = "dysmsapi.aliyuncs.com";return new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);}public static void Main(string[] args){// 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378671.htmlAlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient("accessKeyId", "accessKeySecret");AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest{PhoneNumbers = "",SignName = "",TemplateParam = "{\"code\":\"1234\"}",};AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();try{// 复制代码运行请自行打印 API 的返回值client.SendSmsWithOptions(sendSmsRequest, runtime);}catch (TeaException error){// 如有需要,请打印 errorAlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);}catch (Exception _error){TeaException error = new TeaException(new Dictionary<string, object>{{ "message", _error.Message }});// 如有需要,请打印 errorAlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);}}}
对代码进行修改,封装接口:
/// <summary>/// 发送告警信息/// </summary>/// <param name="msg">故障告警/报错消息</param>/// <param name="phoneNumber">手机号(支持对多个手机号码发送短信,手机号码之间以半角逗号(,)分隔。上限为1000个手机号码。)</param>/// <param name="accessKeyId">授权码accessKeyId</param>/// <param name="accessKeySecret">授权密码accessKeySecret</param>/// <returns>调用反馈消息,如果成功返回OK,失败返回失败信息</returns>public static string SendSmsAlarm(string msg,string phoneNumber,string accessKeyId,string accessKeySecret){AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient(accessKeyId, accessKeySecret);//填入授权码AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest{SignName = "XX的应用",//短信签名TemplateCode = "SMS_1111111",//短信模板PhoneNumbers = phoneNumber,//手机号TemplateParam = "{\"message\":\"" + msg + "\"}", //模板参数};AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();var resMessage = "";try{// 复制代码运行请自行打印 API 的返回值var res = client.SendSmsWithOptions(sendSmsRequest, runtime);resMessage = res.Body.Message;}catch (TeaException error){// 如有需要,请打印 errorresMessage = AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);}catch (Exception _error){TeaException error = new TeaException(new Dictionary<string, object>{{ "message", _error.Message }});// 如有需要,请打印 errorresMessage = AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);}return resMessage;}