C#/Net调用阿里云的短信服务

在C#代码里调用阿里云的短信服务,用于推送消息

以下介绍具体的步骤主要分为配置和代码调用

服务管理和配置

在控制台首页进入短信服务

使用流程

跟随快速学习和测试

1.申请签名

签名必须为企业名字或者对应网站、应用的名称,其他名称则无法通过校验

2.模版管理

编辑模版内容

3.授权码

如果要使用api必须得有AccessKey,如果已有就跳过,没有的要需要自己创建,在右上角用户头像处,出现下拉菜单,点击AccessKey管理

使用子用户AccessKey

创建一个新用户

确定添加之后需要保存,记住accessKeyId和accessKeySecret,关闭之后无法再查看accessKeySecret

增加授权

调用短信服务

C# 复制代码
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 ID
                AccessKeyId = accessKeyId,
                // 必填,您的 AccessKey Secret
                AccessKeySecret = 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.html
            AlibabaCloud.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)
            {
                // 如有需要,请打印 error
                AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }
            catch (Exception _error)
            {
                TeaException error = new TeaException(new Dictionary<string, object>
                {
                    { "message", _error.Message }
                });
                // 如有需要,请打印 error
                AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }
        }


    }

对代码进行修改,封装接口:

C# 复制代码
  /// <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)
            {
                // 如有需要,请打印 error
                resMessage = AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }
            catch (Exception _error)
            {
                TeaException error = new TeaException(new Dictionary<string, object>
                {
                    { "message", _error.Message }
                });
                // 如有需要,请打印 error
                resMessage = AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            }

            return resMessage;
        }
相关推荐
shelly聊外贸2 小时前
WhatsApp 聊天记录如何导出为 CSV?使用 Python 进行数据分析
开发语言·python·数据分析
octopus_c3 小时前
C++ 模板详解:函数模板、类模板、特化与分离编译
开发语言·c++·算法
椒颜皮皮虾྅4 小时前
让文档不止于文字:DeploySharp + PP-Structure,打通版面分析与表格重建
开发语言·学习·c#·.net·cuda
Eider19984 小时前
Python基础知识之并发相关-2
开发语言·前端·python
第九序言T4 小时前
Python 数据处理进阶(二十二)用 Pandas 做一次完整的用户行为分析
开发语言·python·数据分析·pandas
云和数据.ChenGuang4 小时前
再论深拷贝和浅拷贝
开发语言·人工智能·python·1024程序员节
晚风予卿云月5 小时前
【C++高并发内存池】 2.ThreadCache设计
开发语言·c++·高并发内存池·tcmalloc
Dovis(誓平步青云)6 小时前
拖动关键帧角色就抽动,动画编辑器怎样补齐中间状态
开发语言·前端·javascript·机器学习·编辑器
行走的陀螺仪6 小时前
Claude Code 从入门到实战(二):Bash工具、Plan模式与后台任务
开发语言·bash
努力努力再努力wz6 小时前
【Lua 入门系列】从执行模型到事件驱动:一文理解 Lua 有栈协程、挂起恢复与协作式调度
开发语言·lua