清明小长假就要来了,今天你可以按时下班吗?
开发阿杰早在假期前就计划好了和女友的巴厘岛之旅,也提前订好了机票。可偏偏就在放假前一天,因公司接待需要得紧急上线一个访客预约的小程序解决自主预约及访客通知的需求,由于没有通过小程序发通知的经验沉淀,从阅读文档到产品发布可能需要耗费不少的时间,这使阿杰犯了难,原定于19:00起飞的飞机,他还能赶上吗?
好在继云函数、云存储、云数据库之后,又一提高开发效率的神器——云调用上线了!
啥是云调用?
云调用简单来说是一种免Token调用微信API的能力。传统的微信小程序开发,如果需要调用服务端的API,需要拿着 appid 和 appsecret 换取微信小程序全局唯一后台接口调用凭证 access_token ,而且有效期仅有2小时,有了这个凭证才能开始调用诸如模版消息、客服消息等API。而云调用的诞生,大大简化了调用微信API的鉴权步骤,实现一行代码即调即用。
为什么要用云调用?
微信小程序使用云调用能力后,开发者能够——
1、一行代码调用API
云调用允许在没有获取 access_token 的情况下调用大部分小程序服务端的API,开发者只需关心业务逻辑本身及调用API的时机,真正实现一行代码调用API。
2、无需担心凭证安全
支持云调用的接口无需获取 access_token 即可调用,换句话说,就是开发者无需关心 access_token 的保管及失效问题,即可获得天然、安全、可靠的接口调用条件,一切接口调用的鉴权机制都交由云开发处理。
如何使用云调用?
阿杰阅读了云调用的文档后,瞬间理解了云调用的实现方法。结合实际产品需求,公司预期的小程序需要在用户输入预约信息提交后,向用户推送模板消息进行通知。
就微信小程序推送模板消息,传统实现路径:用户预约成功 - 检查 access_token 是否在有效期内 - 获取 access_token - 调用 templateMessage.send - 推送模板消息。
而云调用实现路径:用户预约成功 - 调用templateMessage.send - 推送模板消息,完全无需关心 access_token 的获取、保管、失效等问题。
结合 wx-server-sdk 提供的 getWXContext 方法获取登录用户的 openid ,调用 templateMessage.send 这个方法,传入接收者 openid 、模板消息内容、模板消息id等参数,即可完成模板消息的下发。发送模板消息的核心代码如下:
将写好的云函数部署至云端,当用户预约成功后就能收到模板消息通知了。至此大功告成,自测无误提审!
阿杰巧借云开发的云调用能力,免除了 access_token 获取、校验、保管等相关处理机制的设计,在不到一下午的时间完成了整个项目。最后也如期赶到了机场,阿杰将经过转述给了在机场没等多久的女友,看着女友膜拜的眼神,阿杰拉着女友的手开心地走向了登机口... (故事纯属虚构,如有雷同... 那就是雷同)
巧用云开发,不加班不是梦
云调用的上线将进一步降低微信小程序的开发门槛,提升开发效率。免 access_token 调用 API ,距离早点下班又进了一步!
除了云调用外,云开发同时还免费提供云函数、云数据库、云存储等Serverless(无服务器计算)能力,助力微信小程序开发者!
(微信开发者工具内置的云开发入口)
目前 微信开发者工具版本 >= 1.02.1903251 且 云函数 wx-server-sdk >= 0.4.0 的开发者可以直接使用云调用能力,具体使用方法详见《微信小程序开发文档》,直通车:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/openapi.html
小哥醒醒,不要骗自己了,你没有女朋友也没有巴厘岛之行,快更新文档吧
文档已更新,详见:云调用 · 小程序
好了不跟你说了,我要去跟女朋友去巴厘岛了
这个错,怎么解决?
有在config.json下声明这个云函数需要调用的接口吗?
是这个吗
你这个错了,要在云函数的 index.js 一个目录下面加 config.json
这样 我试试
你的成功了?
2019进度: ▓▓▓▓░░░░░░░░░░░ 27%
试了一下生成二维码的云调用,本地调试是可以的,云函数发布到线上,就报权限不够的错误
检查下是否在当前云函数的config.json中已经声明了需要调用的接口
声明了~要不然本地应该也会有问题的,错误跟上面的 苏儿 碰到的一样。
您在微信开放社区里发表个提问,最好带上详细点的信息,我让我们开发同学看下
把开发工具升级了就可以了,感谢。
自卖自夸