微信小游戏 (原生API) 快速开始
- AI 快速开始
- 完整开发指引
准备工作
在开始之前,请确保您已完成以下准备:
Client
配置你的 AI 工具以连接 CloudBase 能力 支持本地与托管两种连接方式,详见 连接方式。
步骤 1:安装 / 配置 CloudBase
步骤 2:和 AI 对话
在 AI 对话中依次输入以下内容:
prompt
安装 CloudBase Skills:命令 npx skills add tencentcloudbase/cloudbase-skills -y使用 CloudBase Skills: 使用 CloudBase Skills:在微信小游戏 (原生API)中集成云开发,包括数据库和云存储功能准备工作
在开始之前,请确保您已完成以下准备:
更多详情请参考:微信小游戏 (原生API) 完整文档
初始化 SDK
在 game.js 中初始化云开发:
原生API 初始化
大部分云开发能力可通过 小游戏原生 API 直接调用,无需安装 SDK,若 原生API 不支持请使用 Client SDK 进行调用
wx.cloud.init({
env: "{%ENV_ID%}"
});
Client SDK 初始化
安装
使用 Client SDK 前请先安装 SDK
在小游戏 package.json 所在目录(通常为游戏根目录)执行:
npm i @cloudbase/wx-cloud-client-sdk --save
安装完成后,在微信开发者工具点击 工具 → 构建 npm。
初始化
const { init } = require("@cloudbase/wx-cloud-client-sdk");
wx.cloud.init({
env: "{%ENV_ID%}"
});
const cloudbase = init(wx.cloud);
文档型数据库
- 查询数据
- 新增数据
- 更新数据
- 删除数据
const db = wx.cloud.database();
// 查询 {%TABLE_NAME%} 表前10条数据
const res = await db.collection("{%TABLE_NAME%}").limit(10).get();
console.log(res.data);
const db = wx.cloud.database();
// 新增 {%TABLE_NAME%} 表数据
const res = await db.collection("{%TABLE_NAME%}").add({
data: {
title: "示例 标题",
content: "示例内容"
}
});
console.log(res);
const db = wx.cloud.database();
// 更新 {%TABLE_NAME%} 表中 id 为 <数据ID> 的数据
const res = await db
.collection("{%TABLE_NAME%}")
.doc("<数据ID>")
.update({
data: {
title: "更新后的标题"
}
});
console.log(res.stats.updated);
const db = wx.cloud.database();
// 删除 {%TABLE_NAME%} 表中 id 为 <数据ID> 的数据
const res = await db.collection("{%TABLE_NAME%}").doc("<数据ID>").remove();
console.log(res.stats.removed);
云存储
- 上传文件
- 获取文件链接
- 下载文件
- 删除文件
// 小游戏可以通过 canvas 生成图片或使用其他方式获取文件路径
const filePath = "本地文件路径"; // 例如通过 canvas.toTempFilePath 获取
const res = await wx.cloud.uploadFile({
cloudPath: "images/" + Date.now() + ".png", // 上传至云端的路径
filePath: filePath // 小游戏临时文件路径
});
console.log(res.fileID);
const res = await wx.cloud.getTempFileURL({
fileList: ["cloud://xxx.png"] // 文件 fileID 列表
});
console.log(res.fileList);
// fileList示例
// [{
// fileID: "cloud://xxx.png", // 文件 ID
// tempFileURL: "https://xxx.png", // 临时文件网络链接
// maxAge: 120 * 60 * 1000, // 有效期
// }]
const res = await wx.cloud.downloadFile({
fileID: "cloud://xxx.png" // 文件 fileID
});
console.log(res.tempFilePath); // 返回临时文件路径
const res = await wx.cloud.deleteFile({
fileList: ["cloud://xxx.png"] // 文件 fileID 列表
});
console.log(res.fileList);
云函数
// 调用 {%FUNCTION_NAME%} 云函数
const res = await wx.cloud.callFunction({
name: "{%FUNCTION_NAME%}",
data: {} // 云函数入参
});
console.log(res.result);
大模型
- 生文模型
- 生图模型
const res = await wx.cloud.extend.AI.createModel(
"{%AI_MODEL_NAME%}"
).streamText({
data: {
model: "{%AI_SUB_MODEL_NAME%}",
messages: [
{
role: "user",
content: "你好"
}
]
}
});
for await (let event of res.eventStream) {
if (event.data === "[DONE]") {
break;
}
const data = JSON.parse(event.data);
// 当使用 deepseek-r1 时,模型会生成思维链内容
const think = data?.choices?.[0]?.delta?.reasoning_content;
if (think) {
console.log(think);
}
// 打印生成文本内容
const text = data?.choices?.[0]?.delta?.content;
if (text) {
console.log(text);
}
}
生图模型通过调用云函数来实现,在生图模型页面点击「一键创建云函数」,函数调用示例如下:
// 调用云函数生成图片
wx.cloud.callFunction({
name: "<YOUR_FUNCTION_NAME>",
data: {
prompt: "一只可爱的猫咪在阳光下玩耍"
},
success: res => {
const result = res.result;
if (result.success) {
console.log("图片URL:", result.imageUrl);
console.log("优化后的提示词:", result.revised_prompt);
console.log("注意: 图片URL有效期为24小时");
// 在小游戏中可以使用图片URL进行后续处理
// 例如加载到Sprite或Canvas中
} else {
console.error("生成失败:", result.code, result.message);
}
},
fail: err => {
console.error("调用失败:", err);
}
});