总览
🌟 遇到云开发问题? 点击 这里 咨询云开发 AI 小助手,随时为你解答疑惑。📱 微信云开发用户请选择小程序公众号登录
云开发 CloudBase 使用指南
一、小程序·云开发和腾讯云·云开发的区别
1.云开发 CloudBase
云开发 CloudBase 是概念,它描述了整个生态所有的能力,从平台性角度描述了能力和功能,以及产品矩阵。
云开发 CloudBase 概念下面有「微信·云开发」和「腾讯云·云开发」两种实例产品
2.微信·云开发
「微信·云开发」(之前为小程序·云开发)是联合微信团队打造的,在微信生态上有出色的云原生体现,比如云调用、微信支付、微信侧免鉴权获取信息等等,都是微信侧加持的表现。
「微信·云开发」的标志就是从开发者工具控制台依附于一个小程序下进行创建,在创建时,会以微信公众号(小程序也是公众号的一种)的方式注册一个腾讯云账号(也可以在创建时选择已有腾讯云账号绑定,就不会创建新的账号)。
开发者可以通过 微信授权 的形式进入到腾讯云官网控制台,在腾讯云云开发控制台,你仍然可以操作云开发环境。
云开发推出的一些新能力,会直观的体现在腾讯云官网控制台。有些能力(比如云函数 HTTP 访问服务)需要经过微信侧团队加持和评估后,才能够在开发者工具控制台中体现。
所以并不是「微信·云开发」没有某些能力,而是控制台中不体现而已。由此可以得出,「微信·云开发」仍然可以做 WEB 等多端开发的事情,而且在微信生态上更胜一筹
3.腾讯云·云开发
「腾讯云·云开发」是独立性实例产品,不需要拥有微信小程序就可以直接在腾讯云官网控制台创建的,也是云开发 CloudBase 能力最先应用的环境。
一般我们说云开发支持一些能力,基本上都是说的「腾讯云·云开发」(小程序·云开发具体显性支持还需要和微信侧团队评审打通)
「腾讯云·云开发」还在多端支持上有出色的优势,目前和其他小程序做的免鉴权打通都是从腾讯云·云开发侧出发的。比如 QQ 小程序,只支持腾讯云·云开发,不支持微信·云开发。
所以当你不太依赖微信生态,做多端应用时,建议使用「腾讯云·云开发」。
目前,我们和多个框架展开合作,从框架侧开通的云开发环境均属于「腾讯云·云开发」。
二、云开发 SDK 及能力相关
1、 微信·云开发开发微信小程序
如果你使用的是微信·云开发,开发微信小程序! 推荐小程序端使用 wx.cloud 、云函数端使用 wx-server-sdk 文档均在 微信官方文档
2、腾讯云·云开发开发微信小程序
如果你想使用「腾讯云·云开发」,开发微信小程序。有两种可选方式:
- 你的「腾讯云·云开发」环境所属腾讯云账号绑定了目标小程序。可以直接在腾讯云控制台进行环境转换,具体参见 文档 ,转换后你可以在小程序中直接使用 wx.cloud 的形式来使用该环境,但是你无法在小程序开发者工具的云开发控制台中管理。
- 你的「腾讯云·云开发」环境所属腾讯云账号没有绑定目标小程序,建议如下使用:小程序端使用 JS-SDK ,此 SDK 已经集成微信小程序适配器支持,可直接使用,需要配置移动安全来源(应用标识应填写小程序 appid ),使用代码如下:
不使用微信侧 SDK ,就意味着自己放弃微信免鉴权的加持,需要独自搭设 openid 系统程序,除非你做多端应用开发,否则不建议这么做。
云函数端使用 Node-SDK ,直接使用即可,不需要加 key 密钥等信息。
3、腾讯云·云开发开发 QQ 小程序
小程序端使用 qq.cloud ,和微信小程序使用体验一致。
云函数端使用 qq-server-sdk ,和微信使用体验一致,具体差异看文档描述。
在开发 QQ 小程序时,有一个绑定腾讯云账号的过程,在这里就是绑定的腾讯云侧云开发环境,即使你绑定的腾讯云账号中包含「微信·云开发」环境,也不支持 QQ 小程序开发。
也就是说,QQ 小程序只支持「腾讯云·云开发」环境。
4、微信·云开发开发公众号网页
微信·云开发可使用环境共享能力将环境共享给公众号使用,具体表现就是公众号网页可以原生登录,并且云函数可以免鉴权调用公众号服务端能力。
环境共享具体可以参照 官方文档 ,公众号网页登录的官方示例 在此 ,还需要编写云函数 cloudbase_auth 。
有一个 简单的 DEMO ,可以帮助大家快速上手。在 DEMO 中有封装好的登录模块,大家可以根据自己的需要修改使用。
小程序·云开发原生支持的公众号只限于有 网页授权 能力的公众号,目前只有已认证的服务号才可以,其他的公众号目前暂不支持,共享环境也没有什么实质的用处。
另外,非个人主体的小程序·云开发静态网站托管,可以无需 config 直接打开任意小程序,具体实现文档参照 官方示例
最后,可以用「微信·云开发」来做公众号接收消息,被动回复消息,还有模版消息发送的能力,具体使用参见 微信官方文档
如果你想要自己实现公众号消息和模版发送能力,可以参照 云开发支持公众号示例 DEMO 。
5、所有的云开发开发普通 WEB 以及 APP 应用
不管是「腾讯云·云开发」还是「微信·云开发」,都支持普通 WEB 和其他应用的开发。
WEB 开发或者是以 JS 为基础的应用开发,基本上就使用 JS-SDK ,有特殊的语言和框架需求的,可以直接使用 http api 自己搭建。
云函数端基本上使用 Node-SDK ,如果有一些更高级的需求,比如批量管理什么的,就使用 manage-sdk ,还是缺少直接发送需求到 Cloudbase@tencent.com ,我们会及时评估。
欢迎各位贡献 SDK ,如果有 SDK 贡献,可以发送 SDK 的 github 仓库链接和相关描述信息到 Cloudbase@tencent.com ,我们在审核之后给予收录,并将你纳入布道师体系换算积分。
三、云开发计费有关说明
在小程序控制台中,会看到有腾讯云扣费和微信侧扣费两种,而腾讯云扣费又分为包年包月和按量计费。
在这里,腾讯云扣费指的就是通过微信授权登录到腾讯云官网里,从腾讯云侧余额中做扣费。而微信侧扣费只是通过微信支付扫码来进行扣费。
另外,按量计费必须是腾讯云扣费,虽然每个小程序下有两个免费额度,但是如果超过额度,则需要前往腾讯云官网充值保证余额充足,否则就可能停服。
你可以通过在自己的主腾讯云账号个人信息中绑定微信公众平台(小程序侧腾讯云账号),则可以使用主腾讯云账号余额。
四、关于云开发相关问题
(1)只要是「微信·云开发」环境就可以使用云调用吗?
微信云函数中使用云调用必须满足三个使用条件:
- 「微信·云开发」环境或转换后的「腾讯云·云开发」环境的云函数
- 云函数使用 wx-server-sdk (其他的不支持)
- 部分云调用接口必须有真实用户调用(比如小程序码)
微信云托管中使用云调用满足一个使用条件:
- 「微信·云托管」所属环境属于或被共享于目标小程序
从严格意义来说,云托管的云调用,其实是为服务端调用提供了令牌,此令牌无需开发者管理;所以开发者可以直接正常调用服务端接口,或者使用云托管官方提供的封装服务。
(2)云托管品牌升级为微信云托管,和云开发有什么区别和联系?
之前「微信·云开发」内的云托管和「微信·云托管」的区别除了品牌升级外,还做了独立的控制台,原有的容器引擎升级为完整的后端项目托管解决方案。从代码管理到 CI/CD 流水线部署发布,提供全链路、低成本、企业级的云原生解决方案,功能更强大、体验更友好。
以上总结一下,目前来看「微信·云开发」和「微信·云托管」都是微信联合腾讯云打造的「微信云服务」生态的组成部分,都提供了免服务器免运维的能力,而云开发主要是面向前后端一体化架构的场景,更适合个人开发者全栈开发;云托管主要是面向前后端分离架构的场景,不限语言不限框架,对团队协作和企业级应用场景更友好,两者也可以组合进行使用。
这里给一些 DEMO 入门示例项目,供大家学习:
(3)小程序·云开发有关于微信支付的例子吗?
请参考微信支付演示DEMO
云开发还提供了 分账服务 ,如果有需要可以填写申请。