# 消息通知

# 能力介绍

“消息通知”是云开发工作台提供的一种消息通知能力,开发者可根据自定义通知策略,在满足相关通知触发规则时,进行包括不限于站内信、短信等渠道的消息通知发送。

# 能力特征

# 通知策略管理

  • 包含当前环境下所有消息通知策略,可进行策略的启停、编辑、删除(通知策略失效并不可恢复)。
  • 通知策略主要构成部分包含监控类型、触发动作、触发条件、通知内容、通知对象、通知渠道。

# 通知触发历史

  • 成功触发的通知消息记录,支持以时间维度进行消息通知的记录查询。
  • 支持历史通知消息的查看与删除(不可恢复)。

# 使用说明

# 1.自动触发

  1. 前往工作台-数据管理,新建目标监控数据模型“消息通知”,以姓名(name)和年龄(age)字段为触发条件示例。 image.png
  2. 前往工作台-消息通知管理,新建通知策略。 image.png
  3. 编辑通知策略相关信息,例如设置数据模型触发动作为新增数据,触发条件为“name=rocky并且age >55“,那么当目标数据模型新增的数据满足此条件时,才会触发通知消息。 image.png
  • 触发方式:自动触发和手动触发(默认为自动触发)。
  • 监控类型:目前支持“数据模型”,模型名选择预先创建好的数据模型,触发动作包含数据的增删改,触发条件支持同时设置多个字段。
  • 通知机制:实时推送。
  • 通知内容:根据多行输入框里面的提示内容,填写相应的文案,其中双大括号“{{}}”表示模板变量,用来引用数据模型字段值。
  • 通知用户:表示可接收到通知消息的用户对象,可在工作台-用户权限管理添加更多用户。
  • 通知渠道:目前支持工作台站内信和短信(以通知用户绑定的手机号为推送对象)通知。
  1. 配置好相关信息后,保存通知策略。 image.png
  2. 前往数据模型管理界面,在模板模型中新增数据,进行消息通知推送测试。 image.png
  3. 通知策略触发成功后,工作台会收到站内通知。 image.png
  4. 站内信消息面板,可以查询全部类型消息,包括监控告警和业务消息。 image.png
  5. 手机短信通知展示。 image.png
  6. 可以在消息通知管理界面,查询消息通知触发历史。 image.png

# 2.手动触发(SDK触发)

# 1. 接口介绍

  • 接口描述:可在 微信云开发云后台 / 消息通知管理 模块配置消息策略,触发方式选择“手动触发”,需要在业务代码中主动调用,才会触发消息通知。 image.png
  • 接口功能:发送通知消息。
  • 接口声明: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;
};