- 一分钟搭建小程序管理后台,借助云开发CMS搭建可视化的数据管理网页平台
我们之前用云开发时,想做个数据管理后台,只能用小程序开发工具自带的操作后台,然后直接在数据库里操作数据。这样对程序员没有什么,可是我们的程序开发出来也要给不懂程序的人使用的。如何让这些人也可以很好的管理我们云开发的数据库呢。这个时候我们就要用vue或者传统web开发实现一个网页管理后台,通过这个直接管理云开发了。但是开发这样一个网页后台,无疑会增加我们的工作量。所以我们今天借助云开发官方推出的CMS功能,来快速的搭建一个云开发的网页管理后台。 CMS的好处如下: [图片] 官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/extensions/cms/introduction.html 开通路径如下图 [图片] 下面就来教大家如何快速的开通这个可视化的内容管理平台。 一,直接开通内容管理系统(CMS) 点击开通内容管理,会有下面所示的弹窗。直接勾选协议,然后点击确定即可 [图片] 这里的按量付费不用担心,官方每月都会给我们一部分免费额度的,我们学习的话,这个免费额度基本上够用了。 这里点击确认后,我们还要再次点击内容管理上面的开通按钮,然后会出现下面的弹窗。直接点击下一步即可。 [图片] 然后需要初始化一个管理员账号,这里自己定义即可,设置好以后,最好记到小本本上,后面会经常用到。 [图片] 设置好账号以后,就会提示开通成功。 [图片] 开通成功以后,我们需要耐心的等待系统为我们初始化环境, [图片] 开通成功以后,会显示注销的按钮。 [图片] 二,进入cms管理后台 我们上面开通好以后,接下来就要拿到进入管理后台的链接了。如果没有下面所示的内容,记得把自己的开发者工具升级到最新版本。 2-1,点击工具栏顶部的更多, [图片] 2-2,然后选中内容管理即可。 [图片] 2-3,拿到后台地址 [图片] 拿到后台地址后,直接在浏览器里打开。 [图片] 输入自己前面设置的用户名和密码即可。登录后的页面如下 [图片] 三,创建项目 我们第一次进入cms后台,需要自己创建一个新的项目。 [图片] 创建成功后,可以看到我们的项目。 [图片] 进入我们的项目 [图片] 到这一步我们的cms管理后台就已经创建成功了,接下来我们要管理我们的数据了。 四,创建内容模型(数据表) 我们上面项目初始化成功以后,我们就要创建我们的内容模型了,内容模型我们云开发里的集合(数据库)是对应的。 如我们这里已创建商品模型为例。 4-1,直接点击创建模型 [图片] 4-2,输入展示名称和数据库名 [图片] 点击创建以后,可以看到我们云开发数据库里增加了一个goods集合。 [图片] 数据表创建成功以后,我们接下来就要往里面添加商品数据了。 五,添加商品数据 我们到内容集合里找到我们上面创建的数据表,就可以往里面添加数据了。 [图片] 5-1,新建数据 这个时候我们直接创建,可以看到只有两个字段 [图片] 到数据库里看也是这样,虽然成功的添加了一条数据,但是这个数据太简单了吧。只有创建时间和修改时间 [图片] 这肯定不是我们想要的,所以我们在上面第四步创建内容模型的时候肯定少设置什么了。 5-2,往数据表里添加字段 [图片] 想一想我们的商品需要什么字段。 商品名 商品价格 商品图片 商品详情 暂且就这些吧,接下来我们就要一个个往数据表里添加字段了。 5-3,添加商品名 我们的商品名,用单行字符串就,并且是必填字段。 [图片] 然后点击添加,可以看到我们的商品表里成功的多了一个商品名的字段。 [图片] 5-4,添加商品价格 商品价格我们用数字类型,必填字段 [图片] 添加成功 [图片] 5-5,添加商品图片 我们的商品图片应该是一组图片,所以我们添加商品图片字段时选择图片类型,然后允许有多个内容,必填项。 [图片] 添加成功 [图片] 5-6,添加商品详情页 商品详情页,我们可以是纯文字,也可以是图文混合。为了让详情页更加美观,我们这里用富文本。 [图片] 添加成功 [图片] 完整的商品表创建成功以后,我们就可以去查看商品表里的具体数据了。 [图片] 可以看到我们除了创建时间和修改时间有值外,其余的都没有值。 5-7,修改表数据 那么我们可以点击编辑按钮,来为空字段添加值。 [图片] 然后添加具体的数据 [图片] 5-8,编辑商品详情 我们商品详情用的是富文本,那么我们最好弄个简单的图文混排。 [图片] 编辑好以后,记得点击一下更新 [图片] 那么我们就创建了一条完整的数据 [图片] 可以看出我们的修改时间也随之发生了变化 [图片] 5-9,添加一条新数据 我们上面的数据是通过修改的,那么我们再来演示一个新增数据。 [图片] 其实新增数据很简单,和我们上面修改数据一样。无非修改是要先有数据,再去修改。新增是直接新加。 填好数据记得点创建 [图片] 这样我们就有两条数据了 [图片] 然后去到我们的数据库,可以看到有两条数据。 [图片] 接下来我们要做的就是在小程序里请求数据,然后展示数据。 六,获取商品列表 首先我们要获取商品列表,新建一个商品列表页面,然后在js的onload方法里请求数据。 6-1,获取数据 [图片] 结果报错,因为我们没有做云开发环境的初始化。这一点我强调过无数遍了。 [图片] 还不知道的同学,去看下我云开发入门的文章和视频。 [图片] 然后可以看到我们请求成功了,但是没有数据,为什么呢?? [图片] 我们需要修改goods表的权限,为所有人可读。 [图片] 这样就可以看到,我们成功的请求到了两条数据。 6-2,把数据填充到页面上 上面数据获取到了,我们接下来就要把数据填充到页面了,其实之前云开发有讲过,我这里不再啰嗦,直接上代码。 wxml和wxss页面比较简单 [图片] js页面其实也没有很复杂 [图片] 6-3,点击跳转到商品详情 我们这里的goDetail方法,主要是点击列表的商品时,跳转到商品详情页。 [图片] 可以看到我们进入详情页时成功的携带了商品id,我们请求详情页的数据,就主要靠这个id了。 七,请求并加载商品详情页 7-1,请求详情页数据 [图片] 7-2,编写wxml和js [图片] 7-3,效果图 最好看下显示的效果 [图片] 当然了,样式比较丑,后面有机会再优化吧。 到这里我们的cms可视化管理后台就完整的搭建好了,也给大家简单的演示了cms添加和修改数据,并且在小程序上展示了这些数据。
2021-01-11 - 请问如何用云开发pull删除数组下标中特定的值?谢谢
[图片] test.doc('我的_id').update({ data: { menu: _.pull({ image: 'testImg' }) } } 我只想删除掉menu[0].image,但如代码所示,微信文档所提供的pull方法会删掉整个menu[0],请问应该怎么写pull方法??谢谢!!!我太难了。。。
2019-12-12 - 云开发中字段为对象数组,如何用变量加字符串表示字段数组的更新条件?
db.collection('todos').doc('test').update({ data: { 'numbers.1': 30 }, }) 上面的'numbers.1'中‘1’,我想用‘numbers' 字符串加上小程序端传过来的变量来表示,可以实现吗
2021-01-11 - 请问一下这个这个数据库记录怎么更新?
我想把这个checked改成true。 update做不出来。谢谢! [图片]
2020-05-04 - 微信小程序class封装http
config.js [代码]var config = { base_api_url:"https://*****/" } export {config} [代码] utils/http.js [代码]import {config} from "../config"; class HTTP{ request(params) { if (!params.method) { params.method = "GET" } wx.request({ url: config.base_api_url + params.url, data: params.data, method:params.method, header: { 'Content-Type': 'json' }, success: function (res) { let statusCode = res.statusCode.toString(); if(statusCode.startsWith("2")){ params.success(res.data); }else{ wx.showToast({ title:"网络错误", icon:"none" }) } }, fail: function() { wx.showToast({ title:"错误", icon:"none" }) } }) } } export{ HTTP } [代码] models/movie.js [代码]import { HTTP } from "../utils/http"; const movie = "movie/"; class MovieModel extends HTTP { getData(callback) { this.request({ url: movie + "getData", success: res => { callback(res); } }) } } export { MovieModel } [代码] index.js 引用 [代码]import {MovieModel} from "../../models/movie" var movie = new MovieModel(); [代码]
2020-03-13 - app.js云开发初始化&引入utils.js 报错 ?
//app.js const util = require("utils/util"); App({ onLaunch: function () { wx.cloud.init({ traceUser:true, env:'add-g8pc9' }) // util.checkVieson() erro: errCode: -1 | errMsg: Cloud API isn't enabled, please call wx.cloud.init first 请先调用 wx.cloud.init() 完成初始化后再调用其他云 API。init 方法可传入一个对象用于设置默认配置,详见文档。 Error: errCode: -1 | errMsg: Cloud API isn't enabled, please call wx.cloud.init first 请先调用 wx.cloud.init() 完成初始化后再调用其他云 API。init 方法可传入一个对象用于设置默认配置,详见文档。
2020-03-28 - Cannot read property 'openid' of null?
[图片] 有没有大佬救救我!这个我找了好多我都没搞明白咋回事! const config = require('/utils/config.js') const util = require('/utils/util.js') App({ onLaunch: function () { if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else { wx.cloud.init({ traceUser: true, env: config.env }) var openid = wx.getStorageSync('openid'); console.log(openid,'-----------------------------------') if (openid) { this.globalData.openid = openid } else { wx.cloud.callFunction({ name: 'login', data:{}, success: res => { console.log('------------------',res) this.globalData.openid = res.result.OPENID wx.setStorageSync('openid', res.result.OPENID); }, fail: err => { console.error('[云函数] [login] 调用失败', err) } }) } this.bindLastLoginDate() } this.updateManager(); this.getAdvertConfig(); }, 云函数那边的login: const cloud = require('wx-server-sdk') cloud.init({ env: 'tangmenhao-1610c6' }) exports.main = (event, context) => { // 这里获取到的 openId、 appId 和 unionId 是可信的,注意 unionId 仅在满足 unionId 获取条件时返回 let { OPENID, APPID, UNIONID } = cloud.getWXContext() return { OPENID, APPID, UNIONID, } }
2020-05-19 - 云开发数据库权限设置提示错误Error: InvalidParameter, rule inva?
为什么设置提示错误?哪里设置不对吗 { "read": true, "create": "doc._openid== auth.openid", "update": "doc._openid== auth.openid || get('database.user.${auth.openid}').isManager", "delete": "doc._openid== auth.openid || get('database.user.${auth.openid}').isManager" } user表 [图片]
2020-01-02 - 抖音播放量突然降低,如何解决播放量忽高忽低的小技巧
抖音如何都是网红的打卡圣地了,现在各大网红商家企业都已经入驻抖音了,不得不感叹,抖音现在捧红的速度真是非常的快,抖音账号的粉丝突然变少,或者消失出现异常情况到底导致的呢,抖音每天掉粉正常吗?第一种可能是由于账号异常而导致的,那么第二种可能就是抖音系统维护而造成的现象。 [图片] 公众号:国仁楠哥 如果说出现账号异常的情况,这肯定是由于你刷过粉丝的原因,如果是那种通过刷粉丝得到的一些假粉丝,那么会在抖音不断升级的过滤中被系统除掉的,性质严重的可能直接就归零了。 审美疲劳 [图片] 用户的审美疲劳,因为你永远都是一个风格的内容,粉丝用户肯定是会看腻的,现在创作者越来越多了,人的注意力是很容易被别人给吸引流的,所以大家的注意力是会变得越来越分散。 断更 没有办法保持持续不断的更新作品,更新的频率也不稳定,随心所欲的更新内容,中间的差距比较大。中途出现一个漂亮的小姐姐视频,用户就很容易被吸引走了,所以这种情况下出现掉粉是很正常的现象。更新频率很不稳定,不仅粉丝会对你关注度下降,平台也是会根据你的情况判定你的账号不稳定,给你推荐的流量也是会变得很少,所以作为一个创作者,要照顾到用户的情绪,和平台的规则。 僵尸号 [图片] 僵尸号:当你发布的视频连续一个星期播放量都在100以下,基本可以判定为僵尸号,这种账号的抖音权重几乎为0。 待推荐账号 待推荐账号:连续发布的7-10个视频,播放量持续在3000—5000,200-300个赞,这样的账号为待推荐账号。这个时候,你的抖音账号权重还比较高,系统会把你的账号识别为待推荐账号,并放在一个等待推荐的流量里。这个时候一定要坚持发优质原创内容,不可操之过急,多参与抖音官方发起的话题或者相关活动,提升账号的互动率。 中途限流号 [图片] 中途限流号:如果你之前的播放量是在几千或者几万,突然连续5-7个视频播放量明显降低,这说明可能是你的账号进行了违规操作,如发广告,搬运视频,shua粉,shua赞等,导致抖音给你的账号降权,不给推荐了。这也是为什么有些人本来好好的,突然就没有播放量了的原因。所以大家在抖音上发布作品的时候,尽量不要发广告,尽量原创,尽量避免一些违规操作,导致账号被降权,从而浪费之前的心血,得不偿失。 运营抖音账号的时候,每个人都希望自己发的视频能有比较高的播放量。但是往往并不能尽如人意。有小伙伴这两天就说,自己的视频发的好好的,抖音播放量突然降低了,不知道怎么回事。 内容质量差根据抖音短视频的推荐算法,刚开始投放出来的视频如果短时间内获得的点赞和评论比较多,可能就会被抖音官方评级为高质量的视频,从而推送给更多的人!反之就不能获得更高的推荐量,播放量也就很低了!所以提升视频内容质量,是提升抖音播放量的第一步! 视频清晰度不够 一般来说,视频清晰度不够是因为: [图片] 视频拍摄模糊。拍摄视频时,光线紊乱没有锁焦,视频跳动明显,不够稳定。此处建议大家可使用三脚架固定手机再拍摄。 视频导出不高清。视频导出时,尽量选择高清输出,一般选择1080P。 平台压缩。由于本身视频清晰度不够,平台再进行压缩,则视频画面越发模糊。此处,建议使用拍摄效果好的手机,以及高阶一点儿的视频剪辑软件,方便导出清晰度高的视频。 账号被评级抖音播放量怎么提升如果你的账号搬运过多的视频或者有过多的广告行为,你的账号就会被抖音限流降权。这种被警告的账号就会降低推荐率,限制流量,导致抖音播放量低。 很多人会说,之前播放量都过万,数十万,现在为什么才三位数?别人的视频都上了热门,我的无人问津,明明倾泻了无数的精力和时间,却没有获得预期的增长。 坚持发原创度高的内容,并且对大家来说有实用性,有内涵的,这样才会有更多的人来关注你。 掌握好数量 不要一下子发太多的内容,这样有些用户是会产生反感心里的,做差异化竞争,及时的调整才不会被用户抛弃,因为用户是喜新厌旧的。 视频问题 说起视频的问题主要集中于两方面,一方面是视频是搬运的,被抖音识别了出来(本地上传视频特别容易出现播放为零的情况),另一方面是视频违规,抖音不允许视频中出现骂人、抽烟、喝酒的情况,所以这两点是大家特别需要注意的。 账号问题 账号问题主要集中于搬运账号的问题,如果一个账号搬运的视频过多会被抖音警告,大家都会收到警告的消息。这种被警告的账号就会降低推荐率,从而导致我们的视频没人观看。 内容题材太乱 感觉火什么发什么的视频,这样做全错了,粉丝群体和类型是不固定的,这样久而久之账号的权重降低,用户取关,只要权重降低以后,视频的推荐量就小了,推荐量少了以后就会直接的影响到播放量了,所以说一定要注重自己擅长的领域。 公众号:国仁楠哥 实操互联网短视频多年,如有疑问,欢迎骚扰。
2021-01-19 - 使用云开发快速调用微信支付
课程概述 微信支付是腾讯公司开发的应用程序微信内置的支付功能,由财付通运营和提供支付牌照,用户可以通过微信完成支付。该功能以绑定银行卡的快捷支付为基础。微信支付商户平台支持线下场所、公众号、小程序、PC网站、APP、企业微信等经营场景快速接入微信支付。 通过本课程的学习,可以掌握如何使用云开发云调用快速接入微信支付。 课程目标 掌握使用云开发云调用快速接入微信支付 使用对象 适用于小程序开发者 课程大纲 使用云开发云调用快速接入微信支付:微信支付简介、小程序接入微信支付、接入的准备工作、代码实现 课程内容 [视频]
2021-09-22 - 云开发微信支付中的回调函数(functionName)demo
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/open/pay/CloudPay.unifiedOrder.html [图片] 有好多人不理解这个,现整理分享如下 // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() console.log('微信支付回调函数执行,传入的参数是'); console.log(event); console.log('[必定存在]returnCode 值是', event.returnCode); //【1】判断通讯是否成功 if (!event.returnCode === 'SUCCESS') { //通讯失败 console.warn('[1A]微信支付结果通讯失败786'); return { errcode: 0, errmsg: '通讯失败异常,此分支正常情况下不会执行' } } else { //通讯成功,判断业务结果是否成功 if (event.resultCode === 'SUCCESS') { console.log('[1B]result_code结果为SUCCESS,支付成功'); //交易详情 console.log('微信预支付订单号', event.prepay_id); console.log('商户自定义订单编号是', event.outTradeNo); console.log('当前用户的openid是', event.subOpenid); console.log('当前订单的金额是[单位分]', event.totalFee); console.log('微信支付订单号', event.transactionId); console.log('支付完成时间', event.timeEnd); console.log('商户号', event.mchId); console.log('子商户号', event.subMchId); //支付成功业务逻辑 更改订单状态 //【2】开始更新订单状态 console.log('[2]准备更新订单状态'); //写你的业务逻辑 console.warn('[2B]支付成功,修改订单状态失败,请手动补录'); return { errcode: 0, errmsg: temResult.errMsg } } } }
2020-10-30 - 目前为止最全的微信小程序项目实例
wx-gesture-lock 微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 shitoujiandaobu 小程序:石头剪刀布(附代码说明) audiodemo 微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义 star 微信小程序开发之五星评分 switchCity 微信小程序开发之城市选择器 城市切换 huadong_del 微信小程序滑动删除效果 jianhang_menu 微信小程序开发之圆形菜单 仿建行圆形菜单 xiaoxiaoxiao_lazyload 实现微信小程序图片懒加载特效 kangaiduowei 微信小程序:康爱多微商城:学习界面设计 tianmao_dazhuanpan 小程序实现大转盘 仿天猫抽奖 跑马灯效果(有图有源码) weapp-meirong 微信小程序学习用demo推荐:美容商城;列表,预约 baisi 微信小程序仿百思不得姐 weapp-one 仿 「ONE · 一个」 的微信小程序 netmusic-app 仿网易云音乐APP的微信小程序 a_takeaway 微信小程序的外卖demo sideslip 微信小程序『侧边栏滑动』特效 wx_plo 微信小程序之仿微信漂流瓶 kwonWhere 微信小程序-知亦行 audiodemo 微信小程序开发之视频播放 弹幕 弹幕颜色自定义 wxChart 微信小程序图标插件 guoku 微信小程序-果库 snake 微信小程序-贪吃蛇小程序 douban_movie 微信小程序-仿豆瓣电影 RecordDemo 麦克风动画 shishanggou 实现了包括常用组件,ajax获取数据,模板使用,路由等的使用,下拉刷新数据;
2019-02-12 - 定时发送模板消息功能实现(云开发实现)。
在准备开发这个功能之前,请确保你已经阅读过云开发文档和以下相关官方文档。 模板消息 获取AccessToken 发送模板消息 云函数定时触发器 我们来设定一个需求场景。以小程序【抽奖助手】为例,用户参与抽奖后,需要在开奖时间发送给用户开奖结果通知。这个通知采用模板消息形式下发。 先整理一下思路,实现这个功能我们需要哪些模块? 定时任务执行器。根据任务类型调用相应任务处理程序。 开奖任务处理程序,开奖后发送模板消息,通知用户结果。 云函数中调用 sendTemplateMessage 后端接口,发送模板消息。 周期获取AccessToken。请求后端接口需要用AccessToken,周期更新AccessToken,放入数据库中,随用随取。 模块实现 1.定时任务执行器 以云数据库形式实现。添加一个定时任务就是在该集合增加一条记录,移除同理。 记录字段设计: [代码]timeingTask{ _id: taskType: //任务类型,决定如何处理这个任务 execTime: // 触发时间。到达这个时间开始执行。 data:{} // 必要数据 } [代码] 然后设置云函数周期执行。每分钟查询一次该定时任务数据库,是否有任务到达执行时间。如果有则根据类型进行处理,并在数据库中移除该任务。 [代码]const cloud = require('wx-server-sdk') cloud.init({ env: '你的云环境ID' }) const db = cloud.database() exports.main = async(event, context) => { const execTasks = []; // 待执行任务栈 // 1.查询是否有定时任务。(timeingTask)集合是否有数据。 let taskRes = await db.collection('timeingTask').limit(100).get() let tasks = taskRes.data; // 2.定时任务是否到达触发时间。只触发一次。 let now = new Date(); try { for (let i = 0; i < tasks.length; i++) { if (tasks[i].execTime <= now) { // 时间到 execTasks.push(tasks[i]); // 存入待执行任务栈 // 定时任务数据库中删除该任务 await db.collection('timeingTask').doc(tasks[i]._id).remove() } } } catch (e) { console.error(e) } // 3.处理待执行任务 for (let i = 0; i < execTasks.length; i++) { let task = execTasks[i]; if (task.taskType == 1) { // 定时开奖任务 const kaiJinag = require('kaiJiang.js') try { await kaiJinag.kai(task.data.activity_id) } catch(e) { console.error(e) } } } } [代码] 使云函数每分钟执行的触发器代码: [代码]{ "triggers": [ { "name": "timeingTaskExecutor", "type": "timer", "config": "0 */1 * * * * *" } ] } [代码] 2.开奖任务处理程序 [代码]kaijiang.js[代码] [代码] const cloud = require('wx-server-sdk') const templateMessage = require('templateMessage.js') const COLL_FIELD_NAME = 'publicField'; const FIELD_NAME = 'ACCESS_TOKEN' const MSGID = '你的模板消息ID'; cloud.init({ env: '你的云环境ID' }) const db = cloud.database() const kai = async activity_id => { // 根据活动id,获取参与用户信息,获取到用户的 openid 和 formid. // 开奖程序省略 // 从数据库中获取AccessToken let tokenRes = await db.collection(COLL_FIELD_NAME).doc(FIELD_NAME).get(); let token = tokenRes.data.token; // access_token let page = '点击模板消息,想要打开的小程序页面'; let msgData = { "keyword1": { "value": activity.prizeName }, "keyword2": { "value": "你参与的抽奖活动正在开奖,点击查看中奖名单" }, }; let openid = '用户openid'; let formid = '用户formid'; await templateMessage.sendTemplateMsg(token, MSGID, msgData, openid, formid, page); } module.exports = { kai: kai, } [代码] 3.发送模板消息 [代码]templateMessage.js[代码] 封装在一个 js 文件里,传入必要参数调用即可。 [代码]const rp = require('request-promise'); const sendTemplateMsg = async (token, msgid, msgData, openid, formid, page) => { await rp({ json: true, method: 'POST', uri: 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + token, body: { touser: openid, template_id: msgid, page: page, form_id: formid, data: msgData } }).then(res => { }).catch(err => { console.error(err) }) } module.exports = { sendTemplateMsg: sendTemplateMsg, } [代码] 4.周期获取AccessToken 使用云函数触发器,使云函数每小时请求一次AccessToken,并将AccessToken存入云数据库中。 [代码]const cloud = require('wx-server-sdk') const rq = require('request-promise') const APPID = '你的APPID'; const APPSECRET = '你的APPSECRET'; const COLLNAME = 'publicField'; const FIELDNAME = 'ACCESS_TOKEN' cloud.init({ env: '你的云环境ID' }) const db = cloud.database() exports.main = async(event, context) => { try { let res = await rq({ method: 'GET', uri: "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + APPID + "&secret=" + APPSECRET, }); res = JSON.parse(res) let resUpdate = await db.collection(COLLNAME).doc(FIELDNAME).update({ data: { token: res.access_token } }) } catch (e) { console.error(e) } } [代码] 使云函数一小时执行一次的触发器代码: [代码]{ "triggers": [ { "name": "pollGetAccessToken", "type": "timer", "config": "0 0 */1 * * * *" } ] } [代码] 这是我做的产品册小程序中的部分代码,目前项目还没有发布,发布后会开源出来。项目中用到了挺多开源组件,给我很大的帮助,希望我的分享也可以帮助到一些人。 有问题可以在公众号后台联系我,我看到都会回复的。 [图片]
2019-03-15