微信开发之todo-list应用

周末在家,做了一个小的开发,家里一台还能凑合的Mac mini做服务器,用起久未使用的微信公众账号,连接上微信公众账号服务器,做一个「代办事项」的小应用,也就是常说的todo-list应用。

根据目前学习进度以及未认证公众账号的接口权限,做出下列简要的需求:

  1. 仅利用公众账号接收消息以及自动回复接口实现;
  2. 简单todo-list需求:增加事项、删除事项以及展示事项列表功能;
  3. 简单文件存储,保存不同用户的事项列表;

简单需求确定,那就可以动手实现了。

1. 微信公众账号的设置

首先需要有一台能使用80端口的服务器,这里我使用的家里的Mac电脑,内网穿透以及80端口等问题就不多说了,可以看这里以及看这里。之前还是有一些知识储备的。

设置微信公众账号服务器配置,将服务器与微信公众账号服务进行对接,有一个简单的验证过程,上面一篇文章已经介绍过了。

2. todo-list应用开发

为什么最近总是跟todo-list程序干上了呢?因为todo-list程序逻辑清晰,“增删改查”符合应用程序中一套基本的RESTful原则。更加方便学习理解以及练习。

这里使用的是Node进行开发,同时使用了wechat模块,它对微信公众账号获取信息以及发送信息做了一个封装,简化开发流程,而不用再去写获取以及解析XML信息以及发送XML信息的一些代码。所以这里关注的重点是todo-list应用的一些逻辑,如何添加事项,保存事项,删除事项。

部分代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
...
var message = req.weixin; // 获取用户发送的信息对象
var username = message.FromUserName;
var Content = (typeof(message.Content) == 'undefined')?'try again.':message.Content;
console.log(username + ": " + Content);
var filePath = '/.tasks/.' + username;
var file = path.join(process.cwd(), filePath);
var content = '';
// 根据用户消息中前几个字符来判断对应的指令(增,删,查)
if(Content.substring(0,2) == 'ls'){
list(file, function(replys){ // 查看列表方法
res.reply(replys);
});
}else if(Content.substring(0,3) == 'add'){
content = Content.substring(3).trim();
add(file,content); // 添加事项方法
}else if(Content.substring(0,3) == 'del'){
content = Content.substring(3).trim();
var delId = parseInt(content);
delData(file, delId); // 删除事项方法
}else{
res.reply("简单的『代办事项』小应用,用法: 输入add Message添加一条代办事项;输入del id删除指定事项;输入ls查看所有代办事项 ");
}
...

从这段简单的代码上就可以看出,通过add message可以添加一条代办事项;通过del delId可以删除对应的事项;通过ls就可以查看代办事项列表了。

详细的代码可以点击这里查看,现在可以关注一下这个公众账号体验一下效果。如果有Bug或者服务器无法响应,请见谅(有可能电脑睡眠了或者其他…)。

记得扫描二维码哦