一. 阿里云SMS服务开通及准备工作
在阿里云官网上完成这部分的工作
- 申请资质 个人or企业
我这里是用的企业资质
- 申请签名
企业资质认证成功后,会自动赠送一个用于测试的短信签名
也可以自己再进行申请,需要等待审核。
- 申请短信模板
企业资质认证成功后,会自动赠送一个用于测试的验证类短信模板,内容是发送一个验证码。
我这里又自己申请了一个通知类短信进行测试,需要等待审核。
注意,申请短信模板时一定要写清楚场景说明,写明测试的目的,和短信内容的关联,不然会审核不通过。
4.申请短信试用
个人用户和企业用户都可以免费试用的,记得申请。
- 绑定测试手机号
在快速学习和测试中,添加测试用的手机号码,最多可以加5个。
6.生成并保存自己的ACCESS_KEY_ID和ACCESS_KEY_SECRET
通过以上6步骤,即完成网页端的申请和配置。
二. 阿里云SDK编译
在阿里云API门户(阿里云OpenAPI开发者门户)上搜索短信服务,可以找到相关所有的开发技术支持。
- 选择V1.0版本的SDK,git下载到本地
- CMAKE正常Configure成功后,BUILD_PRODUCT配置为dysmsapi,Generate生成工程alibabacloud-sdk.sln
CMAKE相关知识
【CMake】15分钟带你入门CMake_cmake原理-CSDN博客
- 打开工程alibabacloud-sdk.sln,选择INSTALL为启动项,分别在debug和release x64下生成解决方案,得到bin目录和lib目录
此过程中,个人笔记本电脑直接生成成功,但用个人工作电脑生成解决方案时出现curl lib cmake相关的报错,应为cmake过程出现错误,手动讲curl的include lib dll目录拷贝到工程目录下的3rdparty\curl-prefix\文件夹下后,不再报错。
完成以上工作后,SDK相关的准备工作即完成。
三. 测试
- 新建工程
新建SMSTest工程
- 拷贝依赖项到工程
将编译生成的bin目录和lib目录都拷贝到新工程目录下,将core目录和dysmsapi目录下的include文件夹拷贝并合并到新工程目录下
最终工程目录如下:
-
配置工程的include目录和lib目录
-
根据API编写代码
有一个偷懒的方法,在API门户中 选择调式 > 选择发送短信 > 填写发送的信息 > 选择SDK示例 > 选择V1.0 > 选择C++ 后,就会自动生成代码。
复制代码到工程中,需要填入自己的ACCESS_KEY_ID和ACCESS_KEY_SECRET,然后改一下模板中需要填写的参数就好了。
- 调试工程
跑一下代码,根据报错修改程序,我这里是报了"error: Request parameters has malformed encoded characters."这个错,中文编码的问题,需要设置编码方式为utf-8,这里参考了VS2022设置编码方式为utf-8的三种方式_vs utf8-CSDN博客的方法3后,发送成功。