[mini-blog]基于云开发的博客小程序使用教程

mini-blog是一款基于云开发的博客小程序,该小程序完全不依赖任何后端服务,无需自己的网站、服务器、域名等资源,只需要自行注册小程序账号即可。

使用教程

1. 前期准备

  • 安装最新版微信开发者工具「可到微信小程序官网进行下载」
  • nodejs环境「云开发&调试需要使用到nodejs环境」,若第一次进行安装,可自行google安装教程
  • 下载源码:https://github.com/CavinCao/mini-blog

2. 项目初始化

首先打开微信开发者工具,导入mini-blog项目,名称可自定义,AppID填个人的小程序账号

image

若是为刚注册的小程序账号,需要手动开通下云开发功能,点击左上角云开发按钮,根据提示开通云开发功能,完成后会跳转到对应的云开发控制台:

image

3. 云数据库配置

mini-blog的数据源均来自于云数据库,所以在运行前需要初始化云数据库,在云数据库中新增以下集合:

//缓存小程序or公众号的accessToken
access_token
//小程序文章集合
mini_posts
//小程序评论内容集合
mini_comments
//小程序用户操作文章关联(收藏、点赞)
mini_posts_related
//小程序博客相关配置集合
mini_config
//小程序博客相关操作日志
mini_logs
//小程序博客用户FormID(用于模板消息推送)
mini_formids

image

4. 云函数部署

首先需要将你的云函数进行上传,在对应的云函数名称上右击-上传并部署。

其中上传并部署有两个,后面也有相关解释,若本地已下载相应的node_modules并调试通过,建议上传所有文件。

同时需注意云开发的环境,微信小程序允许用户创建两个环境(通常一个测试环境一个正式环境),需要上传哪个环境的云函数就切换至哪个环境。

image

最后需要配置下云函数的环境变量,建议给每个云函数配置相应的环境(若云开发创建了两个环境),云函数的环境变量值与当前运行环境一致。

代码中初始化时会读取对应的环境进行初始化:

const cloud = require('wx-server-sdk')
cloud.init({env:process.env.Env})

image

到这里,在微信开发者工具中应该可以正常运行了「但是没有文章相关数据」

image

公众号文章同步

目前代码中已经实现将公众号文章同步至云数据库中,相关操作如下:

首先将公众号的AppIdAppSecret配置到adminService云函数的环境变量中,AppIdAppSecret在公众号的开发-基本配置中。

image

然后在公众号中配置相应的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

image

最后可手动运行一次,进行初始化,后期可上传云函数的定时触发器,右击adminService云函数,上传触发器即可「默认每天23:00同步一次」

image

其他文章源同步

目前源码中没有实现其他文章源的同步,如果有需要可以自行实现,可参考adminService「同步公众号文章至云数据库中」。只要满足云数据库中mini_posts集合的结构即可。

目前作者主要实现小程序端博客相关的功能,后期根据需求来实现多文章数据源的同步。

当前进度与计划

  • [x] 公众号文章同步
  • [x] 文章列表、文章详情展示
  • [x] 分享、点赞、收藏功能实现
  • [x] 评论相关展示和功能实现
  • [ ] 生成海报功能的实现
  • [ ] 评论消息通知功能的实现
  • [ ] 专题、标签相关功能的实现
  • [ ] 后台管理功能实现(文章管理、评论管理等)

最后

目前博客小程序的功能正在陆续开发中,欢迎各位小伙伴体验和分享,同时有任何问题或者好的建议都可以与我交流。

作者:玄冰
欢迎关注我的微信公众号和博客小程序
欢迎关注我的公众号 欢迎关注我的公众号