作者:Yellowsun
清明小长假就要来了,今天你可以按时下班吗?
开发阿杰早在假期前就计划好了和女友的巴厘岛之旅,也提前订好了机票。可偏偏就在放假前一天,因公司接待需要得紧急上线一个访客预约的小程序解决自主预约及访客通知的需求,由于没有通过小程序发通知的经验沉淀,从阅读文档到产品发布可能需要耗费不少的时间,这使阿杰犯了难,原定于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 的开发者可以直接使用云调用能力,具体使用方法详见《微信小程序开发文档》。
可不可以把微信小店的API弄到云调用呀
这个小程序就用了云调用
云调用发送模版消息报openapi.templateMessage.send:fail Invalid request param 错是什么问题?之前通过https方式调用没有任何问题,改用云调用就一直提示请求参数错误,没有成功过。
ide:1.02.1903251
wx-server-sdk: latest
估计是你们没有处理好触发器的配置项和云调用的权限配置项引起的bug
在定时触发器中暂时无法使用云调用的,我们后续会尽快支持上
????? 为啥把我的问题删了????
那么这个费用...多少?貌似调用数量一多,也是一笔超级大的开销
悄悄告诉你,目前我们提供足够的免费配额供广大开发者使用噢,详见:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference/quota.html
如有雷同,那就是雷同
所以你是“阿杰“”么
我是阿啊
我遇到了定时触发器中使用云调用概率性失败的bug,可以解决一下吗
可以讲得具体一点么
我发了一篇帖子https://developers.weixin.qq.com/community/develop/doc/0006a81d7dc8a0911c68d3be35f400
在定时触发器中暂时无法使用云调用的
有时可以成功有时失败,希望修复一下
然而你还是要研究云开发...
但是我没有加班呀~