更详细小程序开发指南,请参见:官方小程序开发指南
进入 小程序注册页 https://mp.weixin.qq.com/
根据指引填写信息和提交相应的资料,就可以拥有自己的小程序帐号
申请小程序成功后,登录小程序管理后台 。在小程序管理平台,你可以管理你的小程序的权限,查看数据报表,发布小程序等操作。
AppID:在菜单 “设置”-“开发设置” 可以看到小程序的 AppID,小程序的 AppID 相当于小程序平台的一个身份证,在小程序项目的基本信息中需要配置AppID。
前往 开发者工具下载页面 ,根据自己的操作系统下载对应的安装包进行安装。安装成功后,打开小程序开发者工具,用微信扫码登录开发者工具
基于腾讯云开发物联网小程序应用,关键是如何在小程序上方便的调用腾讯云物联网平台的API(如图所示的红框部分)。
TencentOS tiny 提供了两种开发方式的小程序Demo案例,帮助开发者的小程序更快接入腾讯云:
- 普通开发方式,使用SDK调用腾讯云API
- 云开发方式,在云函数中调用腾讯云API
Demo案例以开发智能灯应用为例子,在小程序开发之前,应该先完成以下工作:
- 在腾讯云物联网开发平台IotExplorer创建智能灯产品和设备
参考腾讯云智能灯接入指引。只需要关注控制台操作部分:创建项目和产品, 新建产品, 创建数据模板, 创建测试设备
- 基于TencentOS tiny完成设备和IotExplorer对接
参考智能灯数据模案例:TencentOS_tiny/examples/qcloud_iot_explorer_sdk_data_template
在小程序开发工具中,导入项目: TencentOS_tiny\tools\Mini_Program\iotexplorer_mp_demo
注:AppID可在小程序管理后台获取,本地调试可以先使用测试号
在miniprogram/app.js里更新配置信息,参考配置信息说明
SDK支持的api参见iotclient.js,开发者可以基于案例进行功能扩展:TencentOS_tiny\tools\Mini_Program\iotexplorer_mp_demo\iotclient_for_miniprogram\iotclient.js
注:腾讯云暂时没有提供小程序端的API SDK,本案例的小程序SDK(iotclient_for_miniprogram)是基于腾讯云的NodeJS SDK移植过来的
更详细的云开发指南,请参见官方的云开发快速指引
在小程序开发工具中,导入云开发Demo项目: TencentOS_tiny\tools\Mini_Program\iotexplorer_mp_cloudfunctions_demo
注:AppID可在小程序管理后台获取;测试号不支持云开发,必须申请小程序账号
在使用云开发能力之前需要先开通云开发。在开发者工具工具栏左侧,点击 “云开发” 按钮即可打开云控制台、根据提示开通云开发、创建云环境。
例如:填入环境名称为tos-demo, 环境ID为tos-demo。
云函数需要部署到云环境中才能生效。在云函数目录上,点击右键,选择"创建并部署:云端安装依赖(不上传node_modules)"
案例的cloudfunctions目录提供了两个云函数query和control,通过调用Iotexplorer的查询和控制接口,实现了对设备的查询和控制。
分别将control和query云函数部署到云环境中。部署成功后,可以在云开发控制台里看到对应的云函数。
在miniprogram/app.js里更新配置信息,参考配置信息说明
腾讯云提供的API 3.0 Explorer,可以非常方便的生成 API SDK代码。只需要稍微修改,就可以直接在云函数中使用。
- 自动生成API SDK代码
- 进入API 3.0 Explorer工具
- 左侧选择对应服务,如:“物联网开发平台”
- 继续选择对应接口,如:“数据查询相关接口”-“获取设备属性数据”
- 填写个人密钥和输入参数。参见配置信息说明
- 使用在线调用,测试接口是否调用成功
- 测试完成后,选择生成NodeJS代码。将代码拷贝,后续用于云函数中
-
创建并实现云函数
-
创建云函数query,将自动生成的NodeJS代码拷贝到云函数,并稍作修改即可使用。参考:TencentOS-tiny\tools\Mini_Program\iotexplorer_mp_cloudfunctions_demo\cloudfunctions\query\index.js
-
记得上传部署修改后的云函数
-
-
调用云函数
// 调用云函数query
wx.cloud.callFunction({
name: 'query',
data: queryData,
success: res => {
try {
let deviceData = JSON.parse(res.result.Data)
this.setData({
deviceData: deviceData
})
console.log("result:", deviceData)
wx.showToast({
title: '调用成功',
})
} catch (e) {
wx.showToast({
icon: 'none',
title: '调用失败',
})
console.log(res.result.Data, e)
}
},
fail: err => {
wx.showToast({
icon: 'none',
title: '调用失败',
})
console.error('[云函数] [iotexplorer] 调用失败:', err)
}
})
上文的步骤完成后,就可以对基本功能进行调试,如:查询和控制设备。
调试OK后,就可以发布小程序了
- productId, deviceName
产品ID和设备名称。用于IotExplorer API接口调用的参数。在腾讯云控制台-物联网开发平台-产品开发-设备调试中,获取产品ID和设备名称
- secretId, secretKey
腾讯云API密钥信息,用于IotExplorer API 接口调用的鉴权。在腾讯云控制台-访问管理-访问密钥-API密钥管理中,获取 secretId, secretKey
- region
Region字段,接口服务的地域,填写"ap-guangzhou"即可
- env
云开发的环境ID。填入云开发创建的环境ID
报错信息:
https://iotexplorer.tencentcloudapi.com 不在以下 request 合法域名列表中,请参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html
{errMsg: "request:fail url not in domain list"}
解决方式:
-
如果是真机调试或发布小程序,则需要在小程序管理后台进行服务器域名配置:进入微信公众平台小程序后台 - 开发 - 开发设置 - 服务器域名 - 输入域名。参见微信小程序添加服务器端接口域名
报错信息
cloud init error:{ errMsg: "invalid scope" }
首次开通云环境后,需等待大约 10 分钟方可正常使用云 API,在此期间官方后台服务正在做准备服务,如尝试在小程序中调用云 API 则会报 cloud init error:{ errMsg: "invalid scope" } 的错误
报错信息:
Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -501000, error message [100004] env not exists;
- 确定是否开通云开发并创建环境
- 确定配置文件app.js中env字段是否和云开发中创建的云环境ID一致
Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -504002, error message Function not found [query]; at cloud.callFunction api
- 确认云函数是否部署到对应云环境
可以。只要是符合要求的服务,小程序都能访问。简单来说,有以下几个要求:必须使用https/wss请求,请求域名需要做备案,并带有可信任的SSL证书。详细参见小程序网络能力使用说明