触发器实战教程
Last updated
Was this helpful?
Last updated
Was this helpful?
我们打开应用的引擎模块,默认就进入到了触发器模块,在这个页面我们可以很方便进行的查询、编辑,禁用等操作。
触发器相关文档请移步这里
下面我们先以数据表作为触发条件,方便大家实操。
我们先在数据页面,创建一个product表,然后添加如下一个字段:
name
string
我们新建一个触发类型为数据表的触发器,条件卡片的配置如下:
数据表
product
事件类型
create
满足条件
任一
条件一
name = "我的第一件商品"
接下来我们编辑邮件内容:
收件人
test-trigger@ifanr.com
邮件标题
您的商品被创建啦
邮件内容
商品{{name}}被创建啦
了解 BaaS JS SDK 的使用方法。
绑定小程序。去应用设置页面绑定小程序,如果已经绑定可以忽略此步。
获取 appSecret。
在小程序后台选择微信消息模板。
准备一个小程序用于测试。
info 发送模板消息必须提前提交 formId
搭建一个 HTTP 服务器用于接收 POST 请求。这里以 Node.js 为例,写一个简单的 demo:
准备一台具有公网 IP 的服务器。
安装 Node.js 环境。
在当前目录下新建 index.js
,并将下方代码块内容粘贴至index.js
。然后执行npm i koa jsonwebtoken
,安装依赖包。
执行node index.js
,启动 HTTP 服务。
我们新建一个触发类型为数据表的触发器,条件卡片的配置如下
数据表
product
事件类型
create
满足条件
任一
条件一
name = 1
URL 格式如下
示例
info 这里为了方便演示,将 JWT KEY 放入了query string 中,生产环境不推荐这么操作。
新建两张数据表:A 表,B 表。A 表用于激活触发器,然后将结果写入 B 表。
在 A 表新建一个名称为 name,类型为 string 的字段;在 B 表新建一个名称为 result ,类型为 string 的字段。
我们创建一个触发类型为数据表的触发器。 条件卡片如下:
数据表
A
事件类型
create
满足条件
任一
条件一
name != 1
接着我们添加一个数据表操作的动作
动作类型
数据表操作
频率
可重复触发
数据表
B
操作
创建
操作1
result = {{name}}
info 这里我们使用了模板变量,result = {{name}} 的意思是将数据表 A 中 name 字段赋值给数据表 A 的 result 字段。
创建云函数
代码如下:
创建触发器
测试触发器
我们新建一个小程序,在小程序入口加载 BaaS JS SDK,请求用户授权:代码如下
我们在首页增加一个按钮,在按钮上绑定 click 回调,在回调函数中使用 wx.BaaS.pay
来发起支付请求
下文创建的触发器都是以微信支付回调作为触发类型,相关描述将会被省略
动作创建参照上文创建邮件小节,只是这里我们把邮件相关参数改成如下:
邮件标题
用户支付成功
邮件内容
用户支付了{{total_cost}}元, 订单号:{{trade_no}}
info 这里我们使用了
{{total_cost}}
模板变量,用于拿到用户支付的具体金额。
动作创建参照上文创建微信模板消息小节。只是这里我们把参数 keyword1
改为 {{total_cost}}
,这样就可以拿到用户支付的具体金额。
info 发送模板消息必须提前提交 formId
动作创建参照上文创建 WebHook 小节。唯一要注意的是,请求 Body 参数会不同。
动作创建参照上文创建数据表操作小节。注意这里可选的模板变量有所不同。
我们创建一个云函数 verifyPayment
,函数内容如下
我们创建一个触发类型为定时任务的触发器,触发周期为每小时,动作内容选择我们上面创建的云函数。
我们创建一个触发类型为文件操作的触发器,触发条件为上传文件且上传成功,动作内容选择我们上面创建的云函数。
我们在控制台中上传一个文件:
文件上传操作相关文档请移步这里
我们创建一个触发类型为IncomingWebhook的触发器,动作内容选择我们上面创建的云函数。
info 假如你已开通客服消息功能,微信消息推送中的「客服消息事件」将统一转送至该服务处理, 如需单独处理客服消息事件,请重新授权小程序并取消「帮助小程序接受和发送客服消息」。
我们创建一个触发类型为微信消息推送的触发器,填入小程序或公众号的 AppID,具体参数值请参考微信文档,动作内容选择我们上面创建的云函数。
我们在小程序页面中添加进入客服消息按钮
在小程序页面中点击按钮进入客服会话,并发送文字消息:
我们创建一个触发类型为支付宝支付回调的触发器,触发条件为支付成功,触发动作下文只讨论支付宝模板消息
动作类型,其他动作类型请参考上文微信支付回调。
info 发送模板消息必须提前提交 formId
我们新建一个小程序,在小程序入口加载 BaaS JS SDK,请求用户授权:代码如下
我们在首页增加一个按钮,在按钮上绑定 click 回调,在回调函数中使用 my.BaaS.pay
来发起支付请求
支付成功结果:
检查触发器日志,调用触发器成功,并成功发送模板消息:
邮件动作填写完成后如下图:
编辑动作完成后点击保存后,我们切换到数据表模块,创建一条数据,name 字段为"我的第一件商品",如下图:
保存后,检查邮箱,发现收到知晓云发来的邮件了
如果忘记了 appSecret,可以先去微信小程序后台,重置后即可获取 appSecret,如下图: 配置模板消息列表如下图:
我们重新创建一个触发器,这次动作类型选择微信,这时候会出现一个弹窗,要求我们输入小程序的 appSecret,如下图:
配置 appSecret 完毕后,进入编辑动作页面,填写参数,如下图:
保存后,我们打开微信开发者工具,新建一个小程序项目,开始编写小程序代码。 第一步:在 app.js 引入 BaaS JS SDK,SDK 文档请参考这里
第二步:在index.wxml中添加一个form组件,注意这里form组件需要添加 report-submit属性,否则在回调事件对象中无法获取formId。
第三步:在index.js文件中添加addProduct回调,保存数据行,同时提交formId。
最后一步,预览小程序,然后点击添加商品,不一会就可以收到微信模板消息了。
我们以数据表product
为例,在触发器中添加一个 WebHook 动作。
####测试触发器 我们在 product 表中创建一行 name
字段为 1 的记录,然后在我们搭建的 HTTP 服务器查看输出结果,可以看到我们成功收到了 POST 请求:
我们在数据表 A 中创建一行 name = test123 的记录。 添加成功后,检查数据表 B,发现触发器成功地为我们添加了一行记录
我们先创建一个云函数,如下图所示:
我们创建一个触发器,如下图所示
我们在数据表 A 新增一条 name='123' 的记录,稍等几秒后,我们查看下 firstFunction
的任务日志
可以看到我们的云函数被成功执行了,event.data 的内容为数据表记录
支付成功结果:
随后我们测试微信支付,支付成功后,查看收件箱,如图:
支付成功后,我们查看 verifyPayment
的任务日志如下:
我们首先创建一个云函数,如下图所示:
过几个小时后,我们查看云函数的任务日志,可以看到云函数被成功执行了
我们首先创建一个云函数,如下图所示:
之后,我们查看云函数的任务日志,可以看到云函数被成功执行了
我们首先创建一个云函数,如下图所示:
在创建好触发器之后,在这里会有一个特定的 URL:
点击复制,然后在新浏览器窗口访问这个 URL:
上面返回了 status: 'ok'; 说明执行成功了。我们查看云函数的任务日志,如下:
我们首先创建一个云函数,如下图所示:
之后,我们查看云函数的任务日志,可以看到云函数被成功执行了: