mini-blog
是一款基于云开发的博客小程序,该小程序完全不依赖任何后端服务,无需自己的网站、服务器、域名等资源,只需要自行注册小程序账号即可。
使用教程
1. 前期准备
- 安装最新版微信开发者工具「可到微信小程序官网进行下载」
-
nodejs
环境「云开发&调试需要使用到nodejs环境」,若第一次进行安装,可自行google安装教程 - 下载源码:https://github.com/CavinCao/mini-blog
2. 项目初始化
首先打开微信开发者工具,导入mini-blog
项目,名称可自定义,AppID
填个人的小程序账号
若是为刚注册的小程序账号,需要手动开通下云开发功能,点击左上角云开发
按钮,根据提示开通云开发功能,完成后会跳转到对应的云开发控制台:
3. 云数据库配置
mini-blog
的数据源均来自于云数据库,所以在运行前需要初始化云数据库,在云数据库中新增以下集合:
//缓存小程序or公众号的accessToken
access_token
//小程序文章集合
mini_posts
//小程序评论内容集合
mini_comments
//小程序用户操作文章关联(收藏、点赞)
mini_posts_related
//小程序博客相关配置集合
mini_config
//小程序博客相关操作日志
mini_logs
//小程序博客用户FormID(用于模板消息推送)
mini_formids
4. 云函数部署
首先需要将你的云函数进行上传,在对应的云函数名称上右击-上传并部署。
其中上传并部署有两个,后面也有相关解释,若本地已下载相应的node_modules
并调试通过,建议上传所有文件。
同时需注意云开发的环境,微信小程序允许用户创建两个环境(通常一个测试环境一个正式环境),需要上传哪个环境的云函数就切换至哪个环境。
最后需要配置下云函数的环境变量,建议给每个云函数配置相应的环境(若云开发创建了两个环境),云函数的环境变量值与当前运行环境一致。
代码中初始化时会读取对应的环境进行初始化:
const cloud = require('wx-server-sdk')
cloud.init({env:process.env.Env})
到这里,在微信开发者工具中应该可以正常运行了「但是没有文章相关数据」
公众号文章同步
目前代码中已经实现将公众号文章同步至云数据库中,相关操作如下:
首先将公众号的AppId
和AppSecret
配置到adminService
云函数的环境变量中,AppId
和AppSecret
在公众号的开发
-基本配置
中。
然后在公众号中配置相应的IP白名单:
172.81.207.12
172.81.212.74
172.81.235.12
172.81.236.99
172.81.245.51
212.64.65.131
212.64.84.22
212.64.85.139
212.64.85.35
212.64.87.134
212.64.57.239
212.64.68.233
212.64.84.102
212.64.84.30
212.64.84.54
212.64.85.82
212.64.89.109
212.64.89.115
212.64.89.17
212.64.89.18
最后可手动运行一次,进行初始化,后期可上传云函数的定时触发器,右击adminService
云函数,上传触发器
即可「默认每天23:00同步一次」
其他文章源同步
目前源码中没有实现其他文章源的同步,如果有需要可以自行实现,可参考adminService
「同步公众号文章至云数据库中」。只要满足云数据库中mini_posts
集合的结构即可。
目前作者主要实现小程序端博客相关的功能,后期根据需求来实现多文章数据源的同步。
当前进度与计划
- [x] 公众号文章同步
- [x] 文章列表、文章详情展示
- [x] 分享、点赞、收藏功能实现
- [x] 评论相关展示和功能实现
- [ ] 生成海报功能的实现
- [ ] 评论消息通知功能的实现
- [ ] 专题、标签相关功能的实现
- [ ] 后台管理功能实现(文章管理、评论管理等)
最后
目前博客小程序的功能正在陆续开发中,欢迎各位小伙伴体验和分享,同时有任何问题或者好的建议都可以与我交流。