跳到主要内容

云开发 CloudBase 使用指南

一、小程序·云开发和腾讯云·云开发的区别#

1.云开发 CloudBase#

云开发 CloudBase 是概念,它描述了整个生态所有的能力,从平台性角度描述了能力和功能,以及产品矩阵。

云开发 CloudBase 概念下面有「微信·云开发」和「腾讯云·云开发」两种实例产品

2.微信·云开发#

「微信·云开发」(之前为小程序·云开发)是联合微信团队打造的,在微信生态上有出色的云原生体现,比如云调用、微信支付、微信侧免鉴权获取信息等等,都是微信侧加持的表现。

「微信·云开发」的标志就是从开发者工具控制台依附于一个小程序下进行创建,在创建时,会以微信公众号(小程序也是公众号的一种)的方式注册一个腾讯云账号(也可以在创建时选择已有腾讯云账号绑定,就不会创建新的账号)。

开发者可以通过 微信授权 的形式进入到腾讯云官网控制台,在腾讯云云开发控制台,你仍然可以操作云开发环境。

云开发推出的一些新能力,会直观的体现在腾讯云官网控制台。有些能力(比如云函数 HTTP 访问服务)需要经过微信侧团队加持和评估后,才能够在开发者工具控制台中体现。

所以并不是「微信·云开发」没有某些能力,而是控制台中不体现而已。由此可以得出,「微信·云开发」仍然可以做 WEB 等多端开发的事情,而且在微信生态上更胜一筹

3.腾讯云·云开发#

「腾讯云·云开发」是独立性实例产品,不需要拥有微信小程序就可以直接在腾讯云官网控制台创建的,也是云开发 CloudBase 能力最先应用的环境。

一般我们说云开发支持一些能力,基本上都是说的「腾讯云·云开发」(小程序·云开发具体显性支持还需要和微信侧团队评审打通)

「腾讯云·云开发」还在多端支持上有出色的优势,目前和其他小程序做的免鉴权打通都是从腾讯云·云开发侧出发的。比如 QQ 小程序,只支持腾讯云·云开发,不支持微信·云开发。

所以当你不太依赖微信生态,做多端应用时,建议使用「腾讯云·云开发」。

目前,我们和多个框架展开合作,从框架侧开通的云开发环境均属于「腾讯云·云开发」。

二、云开发 SDK 及能力相关#

1、 微信·云开发开发微信小程序#

如果你使用的是微信·云开发,开发微信小程序! 推荐小程序端使用 wx.cloud 、云函数端使用 wx-server-sdk 文档均在 微信官方文档

2、腾讯云·云开发开发微信小程序#

如果你想使用「腾讯云·云开发」,开发微信小程序。有两种可选方式:

  1. 你的「腾讯云·云开发」环境所属腾讯云账号绑定了目标小程序。可以直接在腾讯云控制台进行环境转换,具体参见 文档 ,转换后你可以在小程序中直接使用 wx.cloud 的形式来使用该环境,但是你无法在小程序开发者工具的云开发控制台中管理。
  2. 你的「腾讯云·云开发」环境所属腾讯云账号没有绑定目标小程序,建议如下使用:小程序端使用 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 ,有特殊的语言和框架需求的,可以直接在 SDK 中心里找一找,SDK 中心找不到,可以直接使用 openapi 自己搭建。

云函数端基本上使用 Node-SDK ,如果有一些更高级的需求,比如批量管理什么的,就使用 manage-sdk ,还是缺少直接发送需求到 Cloudbase@tencent.com ,我们会及时评估。

欢迎各位贡献 SDK ,如果有 SDK 贡献,可以发送 SDK 的 github 仓库链接和相关描述信息到 Cloudbase@tencent.com ,我们在审核之后给予收录,并将你纳入布道师体系换算积分。

三、云开发计费有关说明#

在小程序控制台中,会看到有腾讯云扣费和微信侧扣费两种,而腾讯云扣费又分为包年包月和按量计费。

在这里,腾讯云扣费指的就是通过微信授权登录到腾讯云官网里,从腾讯云侧余额中做扣费。而微信侧扣费只是通过微信支付扫码来进行扣费。

另外,按量计费必须是腾讯云扣费,虽然每个小程序下有两个免费额度,但是如果超过额度,则需要前往腾讯云官网充值保证余额充足,否则就可能停服。

你可以通过在自己的主腾讯云账号个人信息中绑定微信公众平台(小程序侧腾讯云账号),则可以使用主腾讯云账号余额。

四、关于云开发相关问题#

(1)只要是「微信·云开发」环境就可以使用云调用吗?#

微信云函数中使用云调用必须满足三个使用条件:

  1. 「微信·云开发」环境或转换后的「腾讯云·云开发」环境的云函数
  2. 云函数使用 wx-server-sdk (其他的不支持)
  3. 部分云调用接口必须有真实用户调用(比如小程序码)

微信云托管中使用云调用满足一个使用条件:

  1. 「微信·云托管」所属环境属于或被共享于目标小程序

从严格意义来说,云托管的云调用,其实是为服务端调用提供了令牌,此令牌无需开发者管理;所以开发者可以直接正常调用服务端接口,或者使用云托管官方提供的封装服务。

(2)云托管品牌升级为微信云托管,和云开发有什么区别和联系?#

之前「微信·云开发」内的云托管和「微信·云托管」的区别除了品牌升级外,还做了独立的控制台,原有的容器引擎升级为完整的后端项目托管解决方案。从代码管理到 CI/CD 流水线部署发布,提供全链路、低成本、企业级的云原生解决方案,功能更强大、体验更友好。

以上总结一下,目前来看「微信·云开发」和「微信·云托管」都是微信联合腾讯云打造的「微信云服务」生态的组成部分,都提供了免服务器免运维的能力,而云开发主要是面向前后端一体化架构的场景,更适合个人开发者全栈开发;云托管主要是面向前后端分离架构的场景,不限语言不限框架,对团队协作和企业级应用场景更友好,两者也可以组合进行使用。

这里给一些 DEMO 入门示例项目,供大家学习:

(3)小程序·云开发有关于微信支付的例子吗?#

请参考微信支付演示DEMO

云开发还提供了 分账服务 ,如果有需要可以填写申请。

五、更新说明#

  • 更新时间:2021 年 7 月 7 日
  • 更新描述:根据云开发形态发展会不定期更新
  • 以上内容仍然找不到解决方案的,推荐去社区提问:
    • 「腾讯云·云开发」相关:腾讯兔小巢 (云开发能力相关的首选这里)
    • 「微信·云开发」相关:微信开放社区 (微信相关的都在这里问)
    • 「微信·云托管」相关:微信开放社区 (云托管相关的都在这里问)
  • 关注「腾讯云云开发」公众号,回复关键词「加群」,加入各个产品能力官方交流群