为了更好的提供服务,我们决定修改产品的模式。一开始我们考虑用户提交翻译,团队进行审核的模式,但是考虑到没有管理端和开发成本的问题。我们决定调整一下模式,改为社区自净化。我们完全开放编辑的能力,任何用户都可以提交数据。同时,也可以在国内实践一个完全由社区维护的应用。
但是,这种任何人都可以提交数据很有可能被人所利用,所以,我们引入了微信小程序官方提供的内容安全接口,来进行文本的安全检测,从而,尽可能的规避一些违法违规内容对小程序的影响。
如果你用这个接口,你就会知道,接口的调用时需要使用 access_token ,而微信的 access_token 获取接口既有发起调用的地址限制(不能在小程序中调用),也有接口请求频率的限制(请求过快可能会导致无法获取到 Token),因此,我们决定使用云函数来处理这部分的功能。
我们在云函数内使用 got 这个库来请求微信提供的接口,进行 access_token 的获取,以及内容安全的检测。并且,为了确保 access_token 的请求不会频率过快,所以我们加入了一些代码,来进行 token 的缓存。
const result = await cache.get(); // cache 为对应 collection 的引用 const now = (new Date).valueOf(); const nextTime = now + 5400000; let accessToken = '' if (!result.data.length) { console.log("进入初次获取的流程") const result = await got(accessTokenUrl) accessToken = JSON.parse(result.body).access_token await cache.add({ data: { token: accessToken, time: nextTime } }) } else { if (result.data[0].time > now) { console.log("已有 token 有效") accessToken = result.data[0].token } else { console.log("已有 token 无效") const tokenResult = await got(accessTokenUrl) accessToken = JSON.parse(tokenResult.body).access_token await cache.doc(result.data[0]._id).update({ data:{ token: accessToken, time: nextTime } }) } }
通过上述代码,实现了在云数据库中存储一个 token ,并比对其过期时间,如果发现 token 即将过期,就更新 token ,确保可以正常请求。
总结
回顾整个小程序的开发过程,WePY 的便利使得整个开发的过程无比的流畅,云开发的快速迭代的优势,帮助整个应用快速上线。Linux 小程序到正式发布时,总体的开发时长不超过 24 小时! 【编辑推荐】 - 在Linux终端下生成随机/强密码的五种方法
- Linux运维如何从初级进阶为高级?需要掌握哪些必备技能?
- 如何在Linux下监控磁盘IO?
- 查看 Linux 系统服务的 5 大方法
- 如何在Linux中添加新磁盘
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:南京站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|