从零开始实现发送云短信


有一天,一个叫小明的男孩子,想给一个他喜欢很久的女孩子发一段匿名告白短信。


小明需要准备的东西有:

  • Node.js Node.js 中文网下载
    下载安装完成之后在CLI执行node -v即可查看看对应Node.js版本号
  • 编辑器 Vscode or WebStorm
    作者这里用的是Vscode
  • 腾讯云账号 腾讯云
  • 创建短信签名时小明需要使用下图任一一个凭证
  • 耐心 + 恒心

  1. 登录腾讯云,标题栏 => 产品 => 通信服务 => 短信 => 立即申请

  1. 添加应用
    a.创建方式选择新建应用
    b.应用名称、应用类型、应用简介根据需要填写
    Notice: 你需要记住你的SDK AppIDApp Key,下面会用到

  1. 应用配置 => 国内短信

  1. 国内短信 => 短信内容配置 => (创建签名 && 创建正文模板)
  • 签名:
    a.签名内容:要与下面填写的签名类型主体一样,比如我的公众号叫做"环球科技频道",这里就填写"环球科技频道"。
    b.签名类型/凭证:根据提示上传材料(不能超过5M)
  • 模板:
    a.模板名称:根据需要填写,如"测试模板"
    b.短信内容:根据提示填写,笔者这里填写的测试内容是"在天愿作比翼鸟,在地愿为连理枝。" (模板不允许特殊符号如:^_^)

NOTICE: 你需要记住你的 短信签名ID短信正文ID,在下面会用到

腾讯云短信可以发送100条免费短信。超过额度需要续费


  1. 新建一个文件夹,进入CLI执行以下命令
npm init // 生成package.json文件
复制代码
npm install qcloudsms_js --save-dev //安装腾讯云短信SDK并保存信息到package.json中
复制代码

  1. 新建一个JS文件index.js,内容如下
//引入腾讯SDK模块
let QcloudSms = require("qcloudsms_js");
//短信SDK AppID
let appid = "***"; // ***为你申请的SDK AppID
//短信应用SDK Appkey
let appkey = "***"; // ***为你申请的SDK AppKey
//填写接收短信的号码
let phoneNumbers = ["***"]; // 这是一个数组,你可以填写多个手机号实现群发短信
//短信模板ID
let templateId = ***; // 这里没有“”!切记
//签名
let smsSign = "***"; // 这里要为你申请的短信签名名称

//实例化QcloudSms
let qcloudsms = QcloudSms(appid, appkey);

//单发短信通知
let ssender = qcloudsms.SmsSingleSender();
let params = [];//这个变量是模板中对应的变量,如果模板里有{1}{2},这里填写["我是变量1","我是变量2"],没有则不填
ssender.sendWithParam(86, phoneNumbers[0], templateId,
params, smsSign, "", "", callback);  // 签名参数未提供或者为空时,会使用默认签名发送短信

//设置请求回调处理 
function callback(err, res, resData) {
    if (err) {
        console.log("err: ", err);
    }
    else {
        console.log("request data: ", res.req);
        console.log("response data: ", resData);
    }
}

复制代码

7.使用下列命令

node index.js
复制代码

一切正常的话会出现下图所示的响应

手机也正常接收到短信


8.如果你想接收到短信回执状态和短信回复
你需要联系腾讯云短信技术支持开通并且在控制台设置回调URL
并在index.js中加入以下内容

let beginTime = 1535032882;  // 开始时间(unix timestamp)
let endTime = 1535209822;    // 结束时间(unix timestamp)
let maxNum = 10;             // 单次拉取最大量
let mspuller = qcloudsms.SmsMobileStatusPuller();
// 拉取短信回执
mspuller.pullCallback("86", phoneNumbers[0], beginTime, endTime, maxNum, callback);
// 拉取回复
mspuller.pullReply("86", phoneNumbers[0], beginTime, endTime, maxNum, callback);
复制代码

CLI中运行

node index.js
复制代码

正常的话就会返回响应信息了。


9.结束语:
码字不易,感谢你这么漂亮/帅的你还点一次喜欢。^_^。 欢迎下方评论。

猜你喜欢

转载自juejin.im/post/5b81141df265da433e79527f