# 消息通知
# 能力介绍
“消息通知”是云开发工作台提供的一种消息通知能力,开发者可根据自定义通知策略,在满足相关通知触发规则时,进行包括不限于站内信、短信等渠道的消息通知发送。
# 能力特征
# 通知策略管理
- 包含当前环境下所有消息通知策略,可进行策略的启停、编辑、删除(通知策略失效并不可恢复)。
- 通知策略主要构成部分包含监控类型、触发动作、触发条件、通知内容、通知对象、通知渠道。
# 通知触发历史
- 成功触发的通知消息记录,支持以时间维度进行消息通知的记录查询。
- 支持历史通知消息的查看与删除(不可恢复)。
# 使用说明
# 1.自动触发
- 前往工作台-数据管理,新建目标监控数据模型“消息通知”,以姓名(name)和年龄(age)字段为触发条件示例。
- 前往工作台-消息通知管理,新建通知策略。
- 编辑通知策略相关信息,例如设置数据模型触发动作为新增数据,触发条件为“name=rocky并且age >55“,那么当目标数据模型新增的数据满足此条件时,才会触发通知消息。
- 触发方式:自动触发和手动触发(默认为自动触发)。
- 监控类型:目前支持“数据模型”,模型名选择预先创建好的数据模型,触发动作包含数据的增删改,触发条件支持同时设置多个字段。
- 通知机制:实时推送。
- 通知内容:根据多行输入框里面的提示内容,填写相应的文案,其中双大括号“{{}}”表示模板变量,用来引用数据模型字段值。
- 通知用户:表示可接收到通知消息的用户对象,可在工作台-用户权限管理添加更多用户。
- 通知渠道:目前支持工作台站内信和短信(以通知用户绑定的手机号为推送对象)通知。
- 配置好相关信息后,保存通知策略。
- 前往数据模型管理界面,在模板模型中新增数据,进行消息通知推送测试。
- 通知策略触发成功后,工作台会收到站内通知。
- 站内信消息面板,可以查询全部类型消息,包括监控告警和业务消息。
- 手机短信通知展示。
- 可以在消息通知管理界面,查询消息通知触发历史。
# 2.手动触发(SDK触发)
# 1. 接口介绍
- 接口描述:可在 微信云开发云后台 / 消息通知管理 模块配置消息策略,触发方式选择“手动触发”,需要在业务代码中主动调用,才会触发消息通知。
- 接口功能:发送通知消息。
- 接口声明:
sendTemplateNotification(params: ITemplateNotifyReq, opts?: ICustomReqOpts)
。
# 2. 输入参数
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
params | ITemplateNotifyReq | 是 | 请求参数 |
opts | ICustomReqOpts | 否 | 自定义配置,目前支持 SDK 请求超时时间设置,{timeout: number} |
ITemplateNotifyReq
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
notifyId | string | 是 | 告警策略 Id |
data | Record | 否 | 告警策略中模板变量键值对 |
url | string | 否 | 用户收到告警消息后点击打开的页面地址 |
# 3. 返回结果
Promise<CallFunctionResult<ResultT>>
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
result | ResultT | 否 | 执行结果 |
requestId | string | 否 | 请求唯一 Id,用于错误排查 |
代码执行报错,将通过异常抛出
# 4. 示例代码
// 云函数入口文件
const tcb = require("@cloudbase/node-sdk");
const app = tcb.init({
secretId: "", // 腾讯云 API 固定密钥对,在云函数内执行可不填
secretKey: "", // 同上
env: "", // 云开发环境id
});
exports.main = async (event, context) => {
const result = await app.sendTemplateNotification({
notifyId: "xxx",
data: { orderId: "aaa", amount: 200 },
url: "https://cloud.tencent.com/solution/la",
});
return result;
};