需求描述
在昨天的内容中,我们介绍了如何使用短信发送消息通知,但是,短信通知是收费的,我们似乎也不需要实时性那么高的消息通知方式。
有没有一个实时性还不错,但是免费的方案呢?
答案是有的,那就是借助微信发送消息通知。
解决方案
服务说明
你一定知道,微信本身对于发送消息是有限制的,一般来说,需要我们自己有一个服务号,才能发送消息。
但是,开发一个服务号对于我们来说,成本太高了,因此,我们可以考虑借助一些开放的第三方服务,来完成我们自己的需求。这次,我们借助于一个第三方服务 —— Server 酱 来完成我们的需求。
Server 酱是一个第三方服务,可以用来给我们自己发送通知,你需要做的,仅仅是关注 Server 酱的服务号。
Server 酱的工作原理见下图
注册 Server 酱 ,并绑定微信
访问 https://sc.ftqq.com/3.version ,使用你的 Github 账号登陆,
如果你没有 Github 帐号,可以先去注册一个。如果你不知道 Github 是什么,可以等一等明天的企业微信教程。
登录成功,点击顶部菜单栏中的__微信推送__,扫码,绑定你自己的微信号。
发送测试消息
点击顶部菜单栏中的__发送消息__,可以进入到消息的发送页面。
<img src=“https://postimg.aliavv.com/picgo/20191119210457.png” style=“zoom:80%;” />
在下方的输入框内输入测试的信息,点击__发送消息__,就可以发送一条测试消息。
当你看到 {"errno":0,"errmsg":"success","dataset":"done"}
的返回,则说明发送成功,这个时候,打开微信,你可以看到这样的消息。
这样就说明你的微信绑定成功了,可以进行下一步的开发了。
在进行云函数的编写之前,你需要拿到一个通信的 URL,用于后续的开发。
你可以在 Server 酱的__发送消息__的页面找到这个 URL。
复制这个 URL,作为后续开发所需。
编写云函数
完成了服务的基本配置以后,接下来,我们可以编写一个云函数,来发送消息。
在云函数目录下创建一个名为sendToWeChat
的云函数,然后在这个函数上右击,选择__在终端中打开__
在终端中,执行命令安装依赖
npm install got --save
接下来,在小程序开发者工具中,打开 sendToWeChat
函数的 index.js
文件,
在其中添加如下代码
// 云函数入口文件
const cloud = require('wx-server-sdk')
const got = require('got');
const url = '上面拿的消息通信 URL'
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
await got(`${url}?text=${encodeURI(event.text)}&desp=${encodeURI(event.desp)}`);
return "ok";
}
这里记得将 URL 的值替换为刚刚你复制的通信 URL 。
设置完成后, 记得__上传并部署__你的云函数。
发送消息
当你的云函数部署完成后,你就可以通过调用云函数的方式,发送消息,具体的方法如下
wx.cloud.callFunction({
name:"sendToWeChat",
data:{
text:"这是标题",
desp:"这是描述"
}
})
总结
昨天,我们介绍了如何发送短信,今天我们介绍了如何低成本的完成消息的推送。明天,我们将介绍,如何向企业微信发送消息。