- 云函数获取openid
代码如下: app.js: //如果担心openid的安全,就用这个函数 getCloudOpenid: async function () { return this.openid = this.openid || (await wx.cloud.callFunction({name: 'login'})).result.OPENID }, //最佳方案。 getOpenid: async function () { (this.openid = this.openid || wx.getStorageSync('openid')) || wx.setStorageSync('openid', await this.getCloudOpenid()) return this.openid }, 任何page: onLoad: async function () { console.log(this.openid = await getApp().getOpenid()) }, //在本page的其他函数里获得openid。 yourFunc: function(){ console.log(this.openid) } 云函数login: const cloud = require('wx-server-sdk') cloud.init() exports.main=async()=>{return cloud.getWXContext()}
2020-10-18 - 发现开源项目之美一,博客类小程序
从今天开始会找一些优秀的开源小程序项目,每一个开源项目,我都会通过我本人主体小程序进行发布,将个人主体不允许的功能砍掉,审核通过后,才写文章,有一点时间,计划每周出一篇 发现开源小程序之美一,个人博客小程序 https://developers.weixin.qq.com/community/develop/article/doc/000a40e13ec550274e2a9addd56413发现开源小程序之美二,微慕WordPress小程序 https://developers.weixin.qq.com/community/develop/article/doc/000c44945dc728ab9c2aff2a55b013 发现开源小程序之美三,维修上报小程序发现开源小程序之美四,在线答题小程序发现开源小程序之美五,营销组件库 https://developers.weixin.qq.com/community/develop/article/doc/000c4235c98740a1dc2a1a6045b013 第一个开源小程序为个人博客类小程序, 该小程序实现的功能很多,但是我觉得几个核心出彩功能有 1、富文本展示 2、海报生成 3、留言之后自动推送订阅消息 4、留言已经做过内容安全检查 5、版本更新机制,这个功能还是第一次体验到,虽然官方文档有介绍,但是这时第一次体验到这种热更新方式 [图片] 2 [图片] 3 [图片] 4 [图片] 4 特色 该小程序有一点非常棒,就是可以同步公众号文章,通过公众号提供的素材api,可以将公众号的文章定时拉取到小程序云开发数据库 从功能上讲,已经非常完善,从技术角度,涉及到了海报生成、富文本展示、订阅消息、云函数 项目开源地址: https://github.com/CavinCao/mini-blog 具体数据库集合如下所示 [图片] [图片] 这样,为方便大家看数据库的结构,我把这个项目在码云传了一份,数据库文件在data目录里面,这里面仅仅是包含了有数据的集合,没有数据的集合不在,总共有这么11个集合 1、//缓存小程序or公众号的accessToken access_token //小程序文章集合 2、mini_posts //小程序评论内容集合 3、mini_comments //小程序用户操作文章关联(收藏、点赞) 4、mini_posts_related //小程序博客相关配置集合 5、mini_config //小程序博客相关操作日志 6、mini_logs //小程序博客用户FormID(用于模板消息推送)[已经废弃] 7、mini_formids //会员信息表 8、mini_member //签到明细表 9、mini_sign_detail //积分明细表 10、mini_point_detail //订阅消息记录表 11、mini_subcribute 正式一些的话,应该是绑定公众好,通过云函数把公众号的图文数据拉下来,如果不做,可以用我data目录的数据集合,展示的时候也有数据。 上面是数据库,下面我截图下云函数 [图片] 环境变量配置 [图片] 具体通过syncService云函数来同步公众号文章到小程序,直接点击云端测试就可以。 [图片] 部署过程中会遇到各种问题,我应该是花了两个晚上调通了,具体问题我大致回忆下 1、公众号素材拉取的时候要设置白名单 2、有几个云函数要设置环境变量 3、在我的模块有个后台管理,是通过环境变量来配置openid来展示的 4、海报生成要安装npm第三方组件,这个不清楚的,规矩要琢磨半天 5、海报生成模块,必须要等小程序上线之后才可以的 6、留言需要配置订阅消息,订阅消息id记得要变更下 大致记着这么多 为了方便大家部署,我在码云重新创建了下,里面有个data目录,存放着云开发数据库有数据的集合json文件,如果集合中的没有数据,是导不出json文件的,所以建议先手工把集合都创建下,然后,将有数据的集合json导入进去,并改下数据库权限,就能正常跑起来了 如果部署过程中还遇到其他问题,或者遇到问题过不去,都欢迎通过社区私信跟我联系,由于社区运营规范要求,微信联系方式暂不方便在社区发布。 https://gitee.com/xiaofeiyang3369/blog 解决的问题: 2018年之后申请的公众号都不会开放留言功能,通过这个方式,可以将公众号文章通过公众号开放的api,整体拉取下来,到云开发的数据库,然后通过这种方式留言, 注意留言一定要做内容安全检查 从规则来说,除了留言这里有风险之外,技术层面是通的。 2020-04-19更新 新增集合 mini_point_detail 用于积分模块
2020-06-08