此项目是在小程序和Web端使用 Taro 构建,功能服务基于腾讯云云开发及腾讯云人工智能服务,使用 CMS 内容管理系统来管理数据,基于 Cloudbase Framework完成小程序端、Web端、云函数端构建。
整体实践完此项目,可以帮助学习掌握云开发常用API在小程序、云函数、web端的使用;了解 CMS 内容管理系统和@cloudbase/cli
的使用方法.
本项目的云开发环境由小程序侧创建。所以在开始此项目前需要注册一个微信小程序,当然也可以使用已有的小程序账号。
如果没有小程序开发者工具,请下载并安装。导入此项目的代码,在导入框的 AppID 中填写已准备的小程序AppID
。
导入后的开发者工具显示如下:
请参照 .env.example
文件,在项目根目录配置 .env
和 .env.dev
文件
# 小程序 appid,在小程序项目和小程序部署中使用
APP_ID=xxxID
# 云环境 ID
ENV_ID=xxxID
SERVER_ENV=dev # 开发环境:dev 生成环境:prod
APP_ID
小程序 appIdENV_ID
云环境 IDSERVER_ENV
是在 Taro 项目中区分开发环境还是生产环境
在taro/src/config.js
配置,便于线上查看版本
在头像编辑页需要图像安全审核、人脸五官分析两个服务,请在微信服务平台开通。
打开开发者工具左上角【云开发】,进入云开发控制台。如果小程序没有创建过云开发,需要先开通并创建云开发环境。
开发环境:用于功能开发和测试。建议先创建开发环境,因为云函数本地调试默认调用创建的第一个云环境。
生产环境:用于正式上线后的功能维护和数据存储。
当有云开发环境时,需要在设置页中点击【开通按量计费】
在操作后,即将云开发环境转换为按量计费(按量计费仍然有免费额度,和基础版预付费一致,无需担心)
在浏览器中,打开腾讯云控制台,使用微信扫描二维码,选择当前小程序账号进行授权。
登录后选择刚按量付费的环境,点击进入,在左侧栏中点击静态网站托管,在页面中开启静态网站托管。
在 CMS 内容管理系统和 Web 版Hi头像中所需
大约需要3分钟左右才会开通完毕。
关闭浏览器控制台!重新关闭并打开小程序开发工具的云开发控制台,就会发现多了一个静态网站托管的TAB。
Web版所需。若仅部署小程序端,则不需要。
点击左侧的环境-登录鉴权,在页面中将匿名登录开启。
在云开发管理中安装cms 内容管理系统,其中需要下载自定义登录私钥。(建议本地保留一份,因为很多个地方需要用)
数据集合名称尚未改名,以下方案为部署文档的预研版
在云开发控制台-数据库中,新建6个集合,分别为
- hiface-configs | 全局配置,如配置默认显示的主题
- hiface-users | 用户
- hiface-themes | 主题列表,如国庆、圣诞
- hiface-shape-categories | 贴纸分类,可以属于多个主题
- hiface-shapes | 贴纸,可以属于多个贴纸分类
- hiface-avatars | 头像,用户生成
按照 cloud/database/model
中所示的主题结构进行手动创建。
从CMS 导入数据模型的功能,在 CMS v2 中处于开发中。
第一步:Hi 头像数据管理基于 Cloudbase CMS 内容管理扩展,需要在云开发 cloudbase 控制台下方扩展能力中开通。
第二步:按照以下命令执行
# 安装Cloudbase Cli,目前我用的是测试版
npm install -g @cloudbase/cli@beta
# 授权云函数所在的腾讯云账号
tcb login
# 部署生产环境的数据模型,需要在 .env 文件中配置 ENV_ID
npm run deploy:init-db
# 或者,部署开发环境的数据模型,需要在 .env.dev 文件中配置 ENV_ID
npm run deploy:init-db:dev
-
hiface-api
主要的接口请求 API -
analyze-face
Web 端五官分析和图形安全审核,在小程序端基于服务市场的五官分析公服务。如果只部署微信小程序端,则无需部署。- secretId secretKey 腾讯云账号权限
- 腾讯云 nodejs sdk
在小程序开发者工具中,打开cloud/functions
目录,将所有的子目录,均右键,在菜单中点击“上传并部署:云端安装依赖”。
优点:简单方便,便于本地调试
开发环境:npm run deploy:fn:dev
正式环境:npm run deploy:fn
原理解析
Web端上线部署基于Cloudbase Framework来完成,需要安装云开发@cloudbase/cli
,具体可以查看cloudbaserc.json
中的配置。
在taro/src
中,有以下文件
|-config.js 配置AppId、云环境Id及其它
|-components 全局组件
|-pages
|-|- avatar-edit 头像编辑页
|-|- avatar-poster 头像分享页
|-|- theme-list 主题列表
|-|- self 我的,含个人头像列表
小程序端调试已经被封装成以下命令:
在
taro/
目录package.json
中定义的这几个命令
开发环境调试 npm start
生产环境调试 npm run build
生产环境编译 npm run release
完整调试技巧,请查阅Taro 安装及使用
方法一:微信开发工具上传
方法二:微信 CI 上传
文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html
- 下载小程序部署私钥
- 【可选】关闭IP白名单
- 运行小程序部署命令
npm run deploy:mini
开发环境:npm run deploy:web:dev
正式环境:npm run deploy:web
原理解析
Web端上线部署基于Cloudbase Framework来完成,需要安装云开发@cloudbase/cli
,具体可以查看cloudbaserc.json
中的配置。
- Cloudbase 官方文档https://www.cloudbase.net/
- Taro 官方文档https://taro.jd.com/
- Framework 官方文档https://github.com/TencentCloudBase/cloudbase-framework
- Framework模式切换https://github.com/TencentCloudBase/cloudbase-framework/blob/master/doc/mode.md