专栏首页知晓程序开发者自述:我如何用云函数快速搞定「模板消息推送功能」

开发者自述:我如何用云函数快速搞定「模板消息推送功能」

作者:Rebecca Qian

在知晓云云函数公测开放一周后,我们收到了用户 @Rebecca Qian 的使用反馈,他利用云函数完成了模板消息推送功能。以下就是他的开发过程,同时云函数第二批公测名额已经开放。戳 ? 报名

用知晓云做小程序开发已经有几个月的时间了,目前在做的是一个旅游线路类的小程序。

从开始的旅游线路展示,到后来相对复杂的预订,费用支付,邮件通知等功能,感觉使用知晓云开发小程序是很方便快捷的,稍有遗憾的是我所需的定时通知用户信息的功能还不能满足。因此当得知知晓云开放了云函数服务,了解后感觉刚好可以满足我这方面的需求,我第一时间申请成为了第一批云函数公测用户。

作为上手的第一个云函数,我写的是一个模板消息推送功能。升级了知晓云触发模板只能通过后台数据表更新和支付行为即时触发的功能,使其更加灵活。

看过文档说明后,开始了我的第一次云函数尝试:

1. 编写云函数

登陆知晓云账号, 在知晓云控制台,进入引擎,选择添加云函数。知晓云提供了基础的函数模板供用户使用,选择创建后,一个简单的函数就自动在代码编辑器生成了,在它的基础上我写进了自己的代码。

exports.main = function helloWorld(event, callback) {
  callback(null, "hello world")
}

云函数中已经提供了 BaaS.sendTemplateMessage(data) 用于发送模板消息,我在这里指定了使用的模板 ID 和触发条件为表单提交(form id),接收模板信息的用户 ID 等则通过参数传递。具体的代码在云函数文档中已经说明了,按照自己的需求稍作修改即可。

2. 测试函数

知晓云提供了云函数测试功能,完成代码后可以直接在编辑页面进行调试,我感觉是很直观方便的。

因为我设置的模板触发条件是表单提交,而微信模板要求需有 form id 的提交,所以在测试前我先到微信开发工具中,用手机预览方法在小程序里提交了一次 form id。

回到云函数的编辑页面,点击右上角的“测试”,打开测试窗口,选择选择触发源为 SDK,然后输进了我自己的知晓云用户 ID,跳转链接等作为参数。在这里,如果你选择的触发源是微信支付或者数据表,会给你提供默认的测试数据,按照自己的需要修改后就可以测试,可以节省不少时间。

点击「执行」,「执行结果」栏显示成功,同时我的微信也收到了推送的模板消息。所以我的这个云函数已经成功创建啦。

3. 小程序内调用函数

函数成功创建后我准备在小程序端进行调用了。看了一下文档,在 SDK 中调用云函数只需使用 wx.BaaS.invokeFunction(functionName, params, sync) 方法即可。

这里有个小 tips 分享给大家:参数 functionName,即云函数名,实际指的是一开始创建云函数时填写的名称,即下面左侧栏位的名字,而我在开发时误以为是代码中的 function 名,所以调用一直报错。之后向知晓云的工程师咨询了解后,调用就成功通过了。

我就顺利完成了第一个云函数的尝试了。因为首次使用,在测试和调用中碰到了一些小阻碍,但除此外总体感觉都是比较流畅的,使用云函数实现业务,正常服务量级,大概可以节省 60%~70% 的成本。而通过这次尝试,我以后就可以灵活的在小程序里面发送模板消息了,接下来我准备继续使用云函数开发我的新功能啦!

本文分享自微信公众号 - 知晓程序(zxcx0101),作者:让你更知微信的

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 云函数正式上线!帮你节约 70% 小程序开发成本(内含福利)

    知晓君
  • 云函数公测!小程序开发节省 60% 的成本

    知晓君
  • 教会父母用这 5 个小程序,不在身边,也能呵护他们的身体健康

    顾名思义这是一个帮我们「管好嘴」的小程序,主页提供了不同分类的食物类别和醒目的时令宜忌,很直观地帮我们制定近期的菜谱计划。

    知晓君
  • 弱鸡的代码审计之旅

    作为一只审计菜鸡,在前台没发现什么大漏洞,只在后台找到两个,不过代码审计过程还是很香的。接下来就掰扯一下菜鸡的审计过程。另外分享的两个漏洞已经通报给 CNVD。

    信安之路
  • Excel常用函数有哪些?这五个你都用得上

    我们在利用Excel表格录入数据的时候,经常会用到一些函数对表格中的数据进行再编辑。那么有哪些函数是我们常用的呢?大家可以学习一下这五个函数的使用方法,大家在录...

    高效办公
  • JS高级测试: 这段javascript实例对象代码的执行结果是多少?

    考核内容: javascript 实例对象取值函数(getter)和存值函数(setter)

    舒克
  • D12-Android自定义控件之--二分搜索树

    张风捷特烈
  • 封装数组之实现在数组中查询元素和修改元素

    前言:在上一小节中,我们已经对如何往数组中添加一个元素的方法进行了编写,此节中我们就如何查询出数组中元素与修改元素的方法进行编写。

    wfaceboss
  • 【Python基础】在pandas中使用pipe()提升代码可读性

    我们在利用pandas开展数据分析时,应尽量避免过于「碎片化」的组织代码,尤其是创建出过多不必要的「中间变量」,既浪费了「内存」,又带来了关于变量命名的麻烦,更...

    黄博的机器学习圈子
  • 在pandas中使用pipe()提升代码可读性

    我们在利用pandas开展数据分析时,应尽量避免过于碎片化的组织代码,尤其是创建出过多不必要的中间变量,既浪费了内存,又带来了关于变量命名的麻烦,更不利于整体分...

    Feffery

扫码关注云+社区

领取腾讯云代金券