实现服务器定时发信息,云开发定时发送模板消息实现方案

在实际开发过程中,许多需求需要定时发送模板消息通知用户比如说给发起助力3小时未完成用户发送消息,传统开发通过自己发的服务器定时函数很容易就可以实现。但是小程序云开发定时函数不支持云调用,所以通过云开发实现定时发送模板消息也就无法实现。最初想的一个方案是:发送模板消息仍然通过自己的服务器发送。但是这样一来仍然会用到自己的服务器,服务器的部署维护仍需要自己来处理,这样就跟云开发提出的观念背道而驰了。于是想有没有一种方案完全脱离自己的服务器,就像云开发提出的口号让开发者只需要关注代码的逻辑。之前看了一篇文章《云开发如何对外提供URL》不少涉及到支付、订单等异步操作的场景,会需要提供一个回调 URL,以确保在用户完成自己的支付过程后,由支付服务器对回调的 URL 发起请求,确认调用成功。因此,不少用户在使用时提出了自己的疑问,应该如何实现这样的功能?

由于目前云开发云函数尚不支持云调用,所以我们需要借助腾讯云提供的云函数和 定时器,来实现类似的功能。

流程如下:

ba58efb79d932ff42727fe879825d321.png

具体实现

1. 创建云函数

访问 https://console.cloud.tencent.com/ ,使用你的腾讯云账号登陆,在顶部菜单栏中找到「云产品」— 「Serverless」—「云函数」

d2d4ba7adc2e52b08f3484eb61c36af8.png

在云函数中,选择「函数服务」,并在函数服务页面点击「新建」

43a64a0ecd90054f83a560fc887a4129.png

创建一个新的云函数,其中函数名称根据你的需要填写

10d95bdd7e33cb8884f8078104b7cee7.png

运行环境选择 Node.js 8.9,创建方式选择空白函数,完成后点击下一步。

在下一页不需要做修改,直接点击完成。

2. 创建 API 网关调用

在创建完成云函数以后,我们会进入到这样的界面,在这个界面中选择「触发方式」

6620a28efb209056024fbf4345882eac.png

在触发方式页面新增一个触发方式,使用 「定时触发」,定时任务名字「任意」,触发周期「根据需求设置」,传入参数「可根据需求选择」。

4c20d91f9f59a2dcc6efe6aae4babe42.png

填写完成后,点击保存

3,编写小程序云函数

js代码

json配置

保存,上传云函数

4. 编写程序调用

当我们完成了云函数的配置以后,接下来我们可以修改云函数,使其完成我们自己想要的功能。

我们希望云函数可以从外部发来的请求中获取到参数,并借助云开发提供的 API,调用云开发的云函数。则我们可以这样操作

我们在本地新建一个目录,并在其中执行如下命令(需要你提前安装了 N ode.js 环境)cd 新建文件夹npm install --save request

npm install --save request-promise

然后创建一个文件index.js,并在其中加入如下代码,并设置其中的 APPID、SECRET、ENV_ID 等字段。

配置完成后,保存文件。

5. 上传代码

打包完成后,重新访问腾讯云控制台,找到刚刚创建的云函数,进入到「函数代码」中,选择其中的「本地上传文件夹」,选择你刚刚创建的文件夹,等待其自动压缩完成后,点击保存上传。

2eb6290b32859507a03a1a185d9a0587.png

上传完成后,会自动进行部署。

这样过一会模板消息就会发送成功了

在这里需要感谢一下社区的 白宦成,他的文章《云开发如何对外提供url》给了我灵感,也解决了困扰我多天的问题

至于如何定时发送多个模板消息请结合之前的一篇文章《云开发如何同时发送对个模板消息》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值