微信小程序开发文档 第16页
云调用 版本要求:wx-server-sdk >= 0.4.0、开发者工具 >= 1.02.1904090 (RC版下载) 云调用是云开发提供的基于云函数使用小程序开放接口的能力,目前覆盖以下使用场景: 服务端调用 开放数据调用 消息推送 一、服务端调用 云调用需要在云函数中通过 wx-server-sdk 使用。在云函数中使用云调用调用服务端接口无需换取 access_token,只要是在从小程序端触发的云函数中发起的云调用都经过微信自动鉴权,可以在登记权限后直接调用如发送模板消息等开放接口。使用方式如下: 1. 查看服务端接口是否支持云调用 在服务端接口列表中罗列了所有的服务端接口,如果接口支持云调用,则在接口名称旁会带有 云调用 的标签。同时,在每一个服务端接口文档中,如果接口支持云调用,也会有专门的支持说明以及相应的使用文档。 2. 查看接口的云调用文档 在支持云调用的接口文档中,会分别列出 HTTPS 调用的文档及云调用的文档,云调用文档同 HTTPS 调用文档一样包含请求参数、返回值及示例。 3. 为云函数声明所需调用的接口 接着,需要配置云调用权限,每个云函数需要声明其会使用到的接口,否则无法调用,声明的方法是在云函数目录下的 config.json(如无需新建)配置文件的 permissions.openapi 字段中增加要调用的接口名,permissions.openapi 是个字符串数组字段,值必须为所需调用的服务端接口名称。在每次使用微信开发者工具上传云函数时均会根据配置更新权限,该配置有10分钟的缓存,如果更新后提示没有权限,稍等10分钟后再试。以下是一个示例的声明了使用发送模板消息接口的配置文件: { "permissions": { "openapi": [ "templateMessage.send" ] } } 4. 在云函数中使用云调用 首先云函数中需要使用版本号至少 0.4.0 的 wx-server-sdk,建议 wx-server-sdk 始终保持最新,保证云函数目录下的 package.json 的 wx-server-sdk 字段为 latest,如本地安装依赖,请执行 npm install –save wx-server-sdk@latest。 接下来,可在云函数中使用云调用 API 了。云调用 API 均挂载在 wx-server-sdk 模块的 openapi 对象下,各个开放接口类别在 openapi 对象下设二级命名空间对象(如模板消息接口的方法均在 openapi.templateMessage 下),该对象下挂载该类别下的所有开放方法(比如模板消息的发送接口是 openapi.templateMessage.send)。各接口从属的类别名称和方法名称可以通过接口名称查看,接口名称均以 <类别>.<方法> 命名,如发送模板消息的接口名称是 templateMessage.send。下面是一个给自己发送模板消息的示例: 如需可直接运行的示例,请在 IDE 中创建一个云开发快速启动模板的项目,其中有包含发送模板消息的云调用的示例 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) exports.main = async (event, context) => { try { const result = await cloud.openapi.templateMessage.send({ touser: cloud.getWXContext().OPENID, // 通过 getWXContext 获取 OPENID page: 'index', data: { keyword1: { value: '339208499' }, keyword2: { value: '2015年01月05日 12:30' }, keyword3: { value: '腾讯微信总部' }, keyword4: { value: '广州市海珠区新港中路397号' } }, templateId: 'TEMPLATE_ID', formId: 'FORMID', emphasisKeyword: 'keyword1.DATA' }) // result 结构 // { errCode: 0, errMsg: 'openapi.templateMessage.send:ok' } return result }...
云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的 CPU 内存等计算资源;各云函数完全独立;可分别部署在不同的地区。开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在小程序端调用,同时云函数之间也可互相调用。 一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。我们可以如在 Node.js 环境中使用 JavaScript 一样在云函数中进行网络请求等操作,而且我们还可以通过云函数后端 SDK 搭配使用多种服务,比如使用云函数 SDK 中提供的数据库和存储 API 进行数据库和存储的操作,这部分可参考数据库和 存储后端 API 文档。 云开发的云函数的独特优势在于与微信登录鉴权的无缝整合。当小程序端调用云函数时,云函数的传入参数中会被注入小程序端用户的 openid,开发者无需校验 openid 的正确性因为微信已经完成了这部分鉴权,开发者可以直接使用该 openid。 接下来,我们将逐步学习以下内容: 我的第一个云函数 获取小程序用户信息 异步返回结果 使用 wx-server-sdk 在开发者工具中管理云函数 测试、日志与监控 注意事项 我的第一个云函数 我们以定义一个将两个数字相加的函数作为我们第一个云函数的示例。 在项目根目录找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本地已存在的目录作为云函数的本地根目录 示例: { "cloudfunctionRoot": "./functions/" } project.config.json 的其他配置,详见项目配置文件。 完成指定之后,云函数的根目录的图标会变成 “云目录图标”,云函数根目录下的第一级目录(云函数目录)是与云函数名字相同的,如果对应的线上环境存在该云函数,则我们会用一个特殊的 “云图标” 标明 接着,我们在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,我们将该云函数命名为 add。开发者工具在本地创建出云函数目录和入口 index.js 文件,同时在线上环境中创建出对应的云函数。创建成功后,工具会提示是否立即本地安装依赖,确定后工具会自动安装 wx-server-sdk。我们可以看到类似如下的一个云函数模板: const cloud = require('wx-server-sdk') // 云函数入口函数 exports.main = async (event, context) => { } 云函数的传入参数有两个,一个是 event 对象,一个是 context 对象。event 指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。context 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。在模板中也默认 require 了 wx-server-sdk,这是一个帮助我们在云函数中操作数据库、存储以及调用其他云函数的微信提供的库,关于 wx-server-sdk 的使用我们在另一个章节讲述。 我们填充一下模板: exports.main = async (event, context) => { return { sum: event.a + event.b } } 本段代码的意思是将传入的 a 和 b 相加并作为 sum 字段返回给调用端。 在小程序中调用这个云函数前,我们还需要先将该云函数部署到云端。在云函数目录上右键,在右键菜单中,我们可以将云函数整体打包上传并部署到线上环境中。 部署完成后,我们可以在小程序中调用该云函数: wx.cloud.callFunction({ // 云函数名称 name: 'add', // 传给云函数的参数 data: { a: 1, b: 2, }, success: function(res) { console.log(res.result) // 3...
云存储提供高可用、高稳定、强安全的云端存储服务,支持任意数量和形式的非结构化数据存储,如视频和图片,并在控制台进行可视化管理。云存储包含以下功能: 存储管理:支持文件夹,方便文件归类。支持文件的上传、删除、移动、下载、搜索等,并可以查看文件的详情信息 权限设置:可以灵活设置哪些用户是否可以读写该文件夹中的文件,以保证业务的数据安全 上传管理:在这里可以查看文件上传历史、进度及状态 文件搜索:支持文件前缀名称及子目录文件的搜索 组件支持:支持在 image、audio 等组件中传入云文件 ID 接下来,我们看看云文件管理提供了哪些 API、及如何在控制台中管理云文件: 存储 API 控制台中管理文件 API 指引 上传文件 在小程序端可调用 wx.cloud.uploadFile 方法进行上传: wx.cloud.uploadFile({ cloudPath: 'example.png', // 上传至云端的路径 filePath: '', // 小程序临时文件路径 success: res => { // 返回文件 ID console.log(res.fileID) }, fail: console.error }) 上传成功后会获得文件唯一标识符,即文件 ID,后续操作都基于文件 ID 而不是 URL。 下载文件 可以根据文件 ID 下载文件,用户仅可下载其有访问权限的文件: wx.cloud.downloadFile({ fileID: '', // 文件 ID success: res => { // 返回临时文件路径 console.log(res.tempFilePath) }, fail: console.error }) 删除文件 可以通过 wx.cloud.deleteFile 删除文件: wx.cloud.deleteFile({ fileList: ['a7xzcb'], success: res => { // handle success console.log(res.fileList) }, fail: console.error }) 更详细的 API 可参考小程序端及后端存储 API 文件。 组件支持 支持在 image、audio 等组件中传入云文件 ID,具体支持列表见文档 换取临时链接 可以根据文件 ID 换取临时文件网络链接,文件链接有有效期为两个小时: wx.cloud.getTempFileURL({ fileList: ['cloud://xxx.png'], success: res => { // fileList 是一个有如下结构的对象数组 // [{ // fileID: 'cloud://xxx.png', // 文件 ID // tempFileURL: '', // 临时文件网络链接 // maxAge: 120 * 60...
如在云开发数据库的基础介绍中所说,云开发提供了一个 JSON 数据库,本章将介绍以下内容: 上手:用控制台创建我的第一个集合,插入我的第一条数据 数据类型:了解数据库提供的数据类型 权限控制:控制集合与记录的读写权限 初始化:初始化数据库 API 插入数据 读取数据:读取数据 构建查询条件:构建简单或复杂的查询条件 更新数据:数据的局部更新与替换更新 删除数据 索引管理:为字段添加索引实现高效读写 另外可参考小程序端和云函数端的数据库 API 文档 上手云数据库 这一节我们将介绍如何在控制台中创建我们的第一个数据库集合、往集合上插入数据、以及在控制台中查看刚刚插入的数据。 创建第一个集合 打开控制台,选择 “数据库” 标签页,通过 “添加集合” 入口创建一个集合。假设我们要创建一个待办事项小程序,我们创建一个名为 todos 的集合。创建成功后,可以看到 todos 集合管理界面,界面中我们可以添加记录、查找记录、管理索引和管理权限。 创建第一条记录 控制台提供了可视化添加数据的交互界面,点击 “添加记录” 添加我们的第一条待办事项: { // 描述,String 类型 "description": "learn mini-program cloud service", // 截止时间,Date 类型 "due": Date("2018-09-01"), // 标签,Array 类型 "tags": [ "tech", "mini-program", "cloud" ], // 个性化样式,Object 类型 "style": { "color": "red" }, // 是否已完成,Boolean 类型 "done": false } 添加完成后可在控制台中查看到刚添加的数据。 导入数据 云控制台支持上传文件导入已有的数据,可查看导入指引了解如何操作。 接下来,我们一起了解下数据库都提供了哪些数据类型。 数据类型 云开发数据库提供以下几种数据类型: String:字符串 Number:数字 Object:对象 Array:数组 Bool:布尔值 GeoPoint:地理位置点 Date:时间 Null 下面对几个需要额外说明的字段做下补充说明。 Date Date 类型用于表示时间,精确到毫秒,在小程序端可用 JavaScript 内置 Date 对象创建。需要特别注意的是,在小程序端创建的时间是客户端时间,不是服务端时间,这意味着在小程序端的时间与服务端时间不一定吻合,如果需要使用服务端时间,应该用 API 中提供的 serverDate 对象来创建一个服务端当前时间的标记,当使用了 serverDate 对象的请求抵达服务端处理时,该字段会被转换成服务端当前的时间,更棒的是,我们在构造 serverDate 对象时还可通过传入一个有 offset 字段的对象来标记一个与当前服务端时间偏移 offset 毫秒的时间,这样我们就可以达到比如如下效果:指定一个字段为服务端时间往后一个小时。 那么当我们需要使用客户端时间时,存放 Date 对象和存放毫秒数是否是一样的效果呢?不是的,我们的数据库有针对日期类型的优化,建议大家使用时都用 Date 或 serverDate 构造时间对象。 GeoPoint GeoPoint 类型用于表示地理位置点,用经纬度唯一标记一个点,这是一个特殊的数据存储类型。注意,如果需要对类型为地理位置的字段进行查找,一定要建立地理位置索引。 具体的地理位置 API 可参考 Geo API 文档 Null null 相当于一个占位符,表示一个字段存在但是值为空。 权限控制 数据库的权限分为小程序端和管理端,管理端包括云函数端和控制台。小程序端运行在小程序中,读写数据库受权限控制限制,管理端运行在云函数上,拥有所有读写数据库的权限。云控制台的权限同管理端,拥有所有权限。小程序端操作数据库应有严格的安全规则限制。 初期我们对操作数据库开放以下几种权限配置,每个集合可以拥有一种权限配置,权限配置的规则是作用在集合的每个记录上的。出于易用性和安全性的考虑,云开发为云数据库做了小程序深度整合,在小程序中创建的每个数据库记录都会带有该记录创建者(即小程序用户)的信息,以 _openid 字段保存用户的 openid 在每个相应用户创建的记录中。因此,权限控制也相应围绕着一个用户是否应该拥有权限操作其他用户创建的数据展开。 以下按照权限级别从宽到紧排列如下: 仅创建者可写,所有人可读:数据只有创建者可写、所有人可读;比如文章。 仅创建者可读写:数据只有创建者可读写,其他用户不可读写;比如用私密相册。 仅管理端可写,所有人可读:该数据只有管理端可写,所有人可读;如商品信息。 仅管理端可读写:该数据只有管理端可读写;如后台用的不暴露的数据。 简而言之,管理端始终拥有读写所有数据的权限,小程序端始终不能写他人创建的数据,小程序端的记录的读写权限其实分为了 “所有人可读,只有创建者可写“、”仅创建者可读写“、”所有人可读,仅管理端可写“、”所有人不可读,仅管理端可读写“。 对一个用户来说,不同模式在小程序端和管理端的权限表现如下: 模式 小程序端 读自己创建的数据 小程序端 写自己创建的数据 小程序端 读他人创建的数据 小程序端 写他人创建的数据 管理端 读写任意数据 仅创建者可写,所有人可读 √ √...
初始化 在小程序端开始使用云能力前,需先调用 wx.cloud.init 方法完成云能力初始化(注意小程序需先开通云服务,开通的方法是点击工具栏左上角的 “控制台” 按钮)。因此,如果要使用云能力,通常我们在小程序初始化时即调用这个方法。 wx.cloud.init 方法的定义如下: function init(options): void wx.cloud.init 方法接受一个可选的 options 参数,方法没有返回值。 options 参数定义了云开发的默认配置,该配置会作为之后调用其他所有云 API 的默认配置,options 提供的可选配置如下: 字段 数据类型 必填 默认值 说明 env string | object 否 default 默认环境配置,传入字符串形式的环境 ID 可以指定所有服务的默认环境,传入对象可以分别指定各个服务的默认环境,见下方详细定义 traceUser boolean 否 false 是否在将用户访问记录到用户管理中,在控制台中可见 当 env 传入参数为对象时,可以指定各个服务的默认环境,可选字段如下: 字段 数据类型 必填 默认值 说明 database string 否 default 数据库 API 默认环境配置 storage string 否 default 存储 API 默认环境配置 functions string 否 default 云函数 API 默认环境配置 示例代码: wx.cloud.init({ env: 'test-x1dzi' }) 云函数端初始化 cloud.init 方法的定义如下: function init(options): void cloud.init 方法接受一个可选的 options 参数,方法没有返回值。方法只能调用一次,多次调用时只有第一次调用生效。 options 参数定义了云开发的默认配置,该配置会作为之后调用其他所有云 API 的默认配置,options 提供的可选配置如下: 字段 数据类型 必填 默认值 说明 env string | object 是 后续 API 调用的默认环境配置,传入字符串形式的环境 ID 或传入 cloud.DYNAMIC_CURRENT_ENV 可以指定所有服务的默认环境,传入对象可以分别指定各个服务的默认环境,见下方详细定义 当 env 传入参数为对象时,可以指定各个服务的默认环境,可选字段如下: 字段 数据类型 必填 默认值 说明 database string 否 default 数据库 API 默认环境配置 storage string 否 default 存储 API 默认环境配置 functions string 否 default 云函数 API 默认环境配置 default string 否 空...
多端支持 云开发除了支持小程序端 SDK、云函数端 SDK 访问外,从 06/04 起支持 Web 端 SDK 访问。 Web SDK Web SDK 在 Web 中使用,可以访问云开发资源,目前仅支持未登录模式访问,在 web 中暂不支持获取登录态。 API 异同 Web SDK API 与小程序端 API 基本一样,主要有以下不同点: cloud.init cloud.init 增加参数 appid,调用时必须传入小程序 appid,如: cloud.init({ appid: 'wx123456789', env: 'release-xxx', }) uploadFile 小程序端是传入临时文件地址作为上传的源文件,web 端要求传入 file 参数,类型为 File。 downloadFile 小程序端是将下载的文件存为本地临时文件,web 端是将内容以 arraybuffer 形式在字段 data 中返回。 文档 API 文档都在 SDK API 文档中,支持 Web 端使用的 API 都有标注。 更新日志 未登录模式使用注意事项 出于安全考虑,云环境默认不支持未登录下访问,需首先在 ”云开发控制台 – 设置 – 全局设置“ 中开启(需开发者工具 1.03.2006042 或以上) 未登录模式必须搭配安全规则使用,若数据库、存储的权限设置为简易权限配置而不是安全规则配置,未登录用户将无法访问云资源 在未登录模式访问时,安全规则的 auth 变量将为空,可以以此判断未登录请求 CDN 地址列表 1.0.0: https://res.wx.qq.com/open/js/cloudbase/1.0.0/cloud.js
小程序·云开发提供了多个基础能力,以下对各个主要能力介绍。 数据库 云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。 关系型数据库和 JSON 数据库的概念对应关系如下表: 关系型 文档型 数据库 database 数据库 database 表 table 集合 collection 行 row 记录 record / doc 列 column 字段 field 以下是一个示例的集合数据,假设我们有一个 books 集合存放了图书记录,其中有两本书: [ { "_id": "Wzh76lk5_O_dt0vO", "title": "The Catcher in the Rye", "author": "J. D. Salinger", "characters": [ "Holden Caulfield", "Stradlater", "Mr. Antolini" ], "publishInfo": { "year": 1951, "country": "United States" } }, { "_id": "Wzia0lk5_O_dt0vR", "_openid": "ohl4L0Rnhq7vmmbT_DaNQa4ePaz0", "title": "The Lady of the Camellias", "author": "Alexandre Dumas fils", "characters": [ "Marguerite Gautier", "Armand Duval", "Prudence", "Count de Varville" ], "publishInfo": { "year": 1848, "country": "France" } } ] 在图书信息中,我们用 title, author 来记录图书标题和作者,用 characters 数组来记录书中的主要人物,用 publishInfo 来记录图书的出版信息。在其中我们可以看到,字段既可以是字符串或数字,还可以是对象或数组,就是一个 JSON 对象。 每条记录都有一个 _id 字段用以唯一标志一条记录、一个 _openid 字段用以标志记录的创建者,即小程序的用户。需要特别注意的是,在管理端(控制台和云函数)中创建的不会有 _openid 字段,因为这是属于管理员创建的记录。开发者可以自定义 _id,但不可自定义和修改 _openid 。_openid 是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档。 数据库 API 分为小程序端和服务端两部分,小程序端 API 拥有严格的调用权限控制,开发者可在小程序内直接调用 API 进行非敏感数据的操作。对于有更高安全要求的数据,可在云函数内通过服务端 API 进行操作。云函数的环境是与客户端完全隔离的,在云函数上可以私密且安全的操作数据库。 数据库 API 包含增删改查的能力,使用 API 操作数据库只需三步:获取数据库引用、构造查询/更新条件、发出请求。以下是一个在小程序中查询数据库的发表于美国的图书记录的例子: //...
npm 支持 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装第三方包。 此文档要求开发者们对 npm 有一定的了解,因此不会再去介绍 npm 的基本功能。如若之前未接触过 npm,请翻阅官方 npm 文档进行学习。 使用 npm 包 在小程序中执行命令安装 npm 包: npm install --production 此处并没有强制要求 node_modules 必须在小程序根目录下(即 project.config.js 中的 miniprogramRoot 字段),也可以存在于小程序根目录下的各个子目录中。但是不允许 node_modules 在小程序根目录外。 PS:此处请务必使用–production选项,可以减少安装一些业务无关的 npm 包,从而减少整个小程序包的大小。 点击开发者工具中的菜单栏:工具 –> 构建 npm 勾选“使用 npm 模块”选项: 构建完成后即可使用 npm 包。 js 中引入 npm 包: const package = require('packageName') const packageOther = require('packageName/other') 使用 npm 包中的自定义组件: { "usingComponents": { "package": "packageName", "package-other": "packageName/other" } } PS:此处使用 npm 包时如果只引入包名,则默认寻找包名下的 index.js 文件或者 index 组件。 发布 npm 包 发布小程序 npm 包的约束 这里要发布的 npm 包是特指专为小程序定制的 npm 包(下称小程序 npm 包)。因为小程序自定义组件的特殊性,原有的 npm 包机制无法满足我们的需求,所以这里需要对小程序 npm 包做一些约束: 小程序 npm 包要求根目录下必须有构建文件生成目录(默认为 miniprogram_dist 目录),此目录可以通过在 package.json 文件中新增一个 miniprogram 字段来指定,比如: { "name": "miniprogram-custom-component", "version": "1.0.0", "description": "", "miniprogram": "dist", "devDependencies": {}, "dependencies": {} } 小程序 npm 包里只有构建文件生成目录会被算入小程序包的占用空间,上传小程序代码时也只会上传该目录的代码。如果小程序 npm 包有一些测试、构建相关的代码请放到构建文件生成目录外。另外也可以使用.npmignore文件来避免将一些非业务代码文件发布到 npm...
素材管理 素材管理将为你一键开通腾讯云的 “对象存储(COS)” 和 “内容分发网络(CDN)” 的产品功能: 支持从 微信开发者工具 上传素材到腾讯云; 提供临时域名供你在开发过程中调试; 提供简单页面管理和上传你的素材资源; 赠送一定免费的额度供开发和调试; 名词解释 对象存储(COS):是腾讯云为企业和个人开发者们提供的一种能够存储海量数据的分布式存储服务,用户可随时通过互联网对您的大量数据进行批量存储和处理。 内容分发网络(CDN):是腾讯云针对门户网站、电子商务、UGC 社区等业务场景,提供的静态内容(如网页样式、图片、小文件)加速分发处理能力,极大地缩减了站点响应时间,实现复杂内容秒级加载,显著提升了网页用户的体验。 外网下行流量:指直接通过对象域名链接下载对象或通过静态网站地址浏览对象产生的流量 CDN 回源流量:指将存储在 COS 上的文件,分发同步到 CDN 的流量,整个同步过程由系统自动完成。 加速域名: 在开启 CDN 加速后,腾讯云会默认生成一条 CDN 加速域名供开发者使用,通过该域名可以直接访问开发者上传的素材文件,若需要领用开通后前 6 个月每个月 50GB免费流量,需要开发者绑定自己备案的域名。 免费额度 对象存储(COS): 每月提供免费资源包括: 50 GB 存储空间,10 GB 外网下行流量,10 GB 腾讯云 CDN 回源流量, 100 万次 读请求, 100 万次 写请求,点击 了解详情 内容分发网络(CDN): 新开通 CDN 的用户在开通后的 6 个月内每月收到腾讯云赠送的 50GB 流量包,此外接入加速域名后用户每月均可享受 10GB 免费流量包,自接入加速域名后于每月1号发放至您的账户。点击 了解详情 收费情况 对象存储(COS)和 内容分发网络(CDN)都属于后付费的产品,开通本服务后,意味着用户同意在不中断服务的情况下,使用付费的服务。当赠送的流量在过期/快用尽的时候系统将统一通知,请留意用量和系统推送的消息,避免在不知情的情况下产生费用。 相关收费情况,请查看下面的文档: 对象存储(COS)计费情况 点击 了解详情 内容分发网络(CDN)计费情况 点击 了解详情 产品介绍 对象存储(COS)点击 了解详情 内容分发网络(CDN)点击 了解详情 开通步骤 一、通过微信公众平台授权登录腾讯云 未将小程序授权给腾讯云需要进行前往 微信公众平台 注册并登录小程序,按如下步骤操作: 单击左侧菜单栏中的【设置】 单击右侧 Tab 栏中的【开发者工具】 单击【腾讯云】,进入腾讯云工具页面,单击【开通】 使用小程序绑定的微信扫码即可将小程序授权给腾讯云,开通之后会自动进去腾讯云微信小程序控制台,显示开发环境已开通,此时可以进行后续操作 二、前往腾讯云开通 素材管理 服务 单击【腾讯云】logo 下方的 【后台管理】按钮,进入腾讯云管理界面 进入小游戏服务页面 https://console.cloud.tencent.com/lagame,点击【开通服务】 注:小程序管理员在 mp 管理后台跳转到腾讯云管理界面后,浏览器中输入 https://console.cloud.tencent.com/lagame 跳转到开通页面
创建插件项目 小程序的 AppID 可以创建小程序插件项目,插件是独立于小程序之外的,但是 AppID 是公用的,所以不要使用原有的小程序项目进行插件开发。 在创建项目页面,选择一个空文件夹作为项目路径,可以选择创建小程序插件快速启动模板 快速启动模板说明: miniprogram 文件夹是一个普通小程序项目,用来编写小程序插件的使用 Demo,上传插件代码时这个 Demo 会一起上传,并作为小程序插件的发布的审核依据. plugin 文件就是小程序插件项目,用来编写小程序插件的代码。 project.config.json 需要关注 compileType 字段,compileType == ‘plugin’ 时才能正常的使用插件项目。详情 打开已存在的插件项目 如果是之前创建的插件项目,可以在项目列表中直接打开; 如果重新创建项目,选择一个非空目录,那么这个非空目录中需要有 project.config.json 详情,确保这个文件中有以下字段: { "miniprogramRoot": "./miniprogram", "pluginRoot": "./plugin", "compileType": "plugin" } 在项目开发期间,可以手动修改 project.config.json 文件的 compileType 字段来切换项目的编译类型。 插件上传 上传插件代码前,需要指定版本号,格式为 数字.数字.数字 ,每个数字最大为 999。 每次提交版本号需要递增,插件使用者会用到这个版本号,请谨慎填写。 上传插件时,同时会将 project.config.json 中 miniprogramRoot 指定的目录的内容作为插件使用 Demo 一起上传,这个 Demo 需要覆盖到插件的所有使用场景,便于插件的审核 插件使用 在小程序项目的 app.json 的 plugins 字段中可以声明使用插件。如果当前的编译类型为小程序时,需要指定已发布的插件的版本号,开发者工具会根据版本号去拉取对应版本的插件进行编译。 只有在 project.config.json 的 compileType == ‘plugin’ 时,插件的版本号才能为 ‘dev’