最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

黄映焜:不止于小程序,云开发的多场景应

腾讯云

  • 2020-11-30
  • 本文字数:3563 字

    阅读完需:约 12 分钟

黄映焜:不止于小程序,云开发的多场景应

2020 年 11 月 29 日,腾讯 2020「小程序·云开发」技术峰会在北京顺利召开。本次峰会以“重新定义开发”为主题,深度聚焦小程序云开发的创新成果与实践案例。以下为腾讯微信小程序开发生态产品负责人黄映焜的演讲实录:


大家下午好!我是来自微信团队的黄映焜,很高兴来到下午的峰会跟大家一起分享。下面我分享的主题是“不止于小程序”。


今天早上大家已经看到我们云开发的方向,从单点的云开发到全面的云开发,下午由我来给大家介绍一下我们云开发主要的多场景应用,以及会发布几个非常重要的新能力。


相信大家对于云开发的发展方向跟模式有了一些了解,开始之前跟大家简单回顾一下云开发最基础的模型。我们为小程序开发者提供了原生的云端支持和微信服务支持,开发者可以使用云开发一站式部署后端资源。其中,我们的云函数可以非常方便地在小程序前端或者服务端快速调用你的云存储或数据库中的资源和数据,而你的云调用更能直接基于云函数免鉴权去使用你的小程序开放接口能力。目前,这个模式已经获得了越来越广泛的运用和实践,相信早上大家从其他嘉宾的分享中也可以得到,使用云开发的开发者越来越多。但是在这个模型中,在这之前外部如果需要调用后端资源的话,只能通过 HTTP API 调用,假设你的业务有多场景诉求的时候,是否会有一些新的挑战呢?


举个例子,比如像有些业务的情况下,除了接入这个小程序的生态之外,业务方面可能还希望同时接入公众号网页、Web 网站甚至 APP 和 PC 程序等等多端的场景。除此之外,有些企业或者个人可能也存在需要同时去开发或者维护多个数据存在关联的这种小程序的情形。这种情形相信大家也非常熟悉,有的时候可能你的一个小程序里的数据希望更广泛地应用在更多的小程序或者公众号网页或者 Web 网站等等很多的场景。


在这之前,以普通的公众号网页开发为例。常规的搭建方式是需要你自己去搭建并且维护一套服务器的后台资源和自己去维护你的后端逻辑,并且还需要与微信服务器多次去请求与鉴权换取这个票据,获得 AccessToken,并且还需要去管理 AccessToken 的获取、存储刷新与管理等。我们知道这个过程在实践中还是有一些繁琐的,并且我们需要持续投入后端资源跟服务器运维的成本。我们说的直接一些,这个过程其实就是为了让微信知道并且鉴别“这个服务器是你的服务器”、“这个请求是你发起的请求”。


而在这种开发模式下,假设你如果同时拥有一个小程序,用了云开发的小程序,如果公众号这之前想同步的获取云开发开发资源,刚才提到的用如果需要同步获取云开发中的资源,在这之前有且仅有一种方式,就是通过自己的后端服务器使用 HTTP API 发起服务端的请求,此时同样需要使用刚才说的 AccessToken 加上这个票据。在这种场景下,既然使用了云开发,在搭建公众号网页的时候还需要去另外购买和维护服务器或者后端资源的话,确实可能对大家来讲还是不太方便的。


针对这种常见的诉求我们有没有可能实现这样一个预期的方案?但是在某个授权过程之后,我们官方的接口便提供一些原生的 API 或者是 Web SDK,来帮助大家实现可被信任的其它小程序或者公众号前端的网页,能够直接调用云开发中的资源呢?这个预期的方案就是今天希望向大家发布的第一个新的能力,是我们云开发的环境共享能力。


什么是环境共享呢?假定您有一个使用云开发的小程序 A,并且已经在支持同一种小程序 A 的云开发资源的情况下,与您的其他小程序 B、 C 或公众号 D 等共享您需要的环境。


怎么实现刚才提到的这样的共享呢?其实整个过程是非常简的,只需要在小程序 A 的控制台免费开通环境共享能力后,输入你的 App ID,选择你所需要共享的环境就可以进行共享。


值得一提的是,我们实际上提供了非常细粒度的权限控制选项,相信大家早上也会看到其他嘉宾分享的权限这个部分对于企业的数据安全、开发安全都是非常重要的,我们还支持环境共享中的权限共享授权,这样就可以在业务需要时向您希望共享的小程序或公众号页面授予非常适当的权限。


这里我们假设小程序 A 已经将环境共享给了小程序 B 了,在调用方面是不是也一样方便呢?我们的小程序 B 在获得共享之后它就获得了使用原生接口去直接支持并且调用小程序 A 中的函数或者是资源的能力。


我们从这里的具体语法可以非常清晰的看出,这里小程序 B 来调用资源方小程序 A 的代码就和调用自己环境的代码一样的简单方便,只需要非常简单的声明资源方的 App ID 跟环境相应的 ID 之后,就可以实现直接使用云原生的这个 API 进行调用。


上述方式是由小程序 A 共享给小程序 B 的这个调用方式。


回到刚才的另一个场景,是说公众号的。假设小程序 A 已经将环境共享给了公众号 E,那么公众号 E 可以使用相似的原生语法就可以非常便捷地来访问小程序 A 中的云资源,而完全不需要再像刚才介绍的那样有一些繁琐的搭建服务器和运维之后,进行复杂的鉴权后才能在服务端发起 HTTP 请求。也就是说,如果你将你的小程序 A 共享给了小程序 E,小程序 E 也相当于拥有了云开发的能力。


更重要的是,我们知道,如果你用那个公众号网页,你有的时候是需要去调用微信服务端的接口的,如果小程序 E 需要调用这个接口的话,在获得环境共享之后可以非常方便地来使用我们原生的 Web SDK,就能够发起和检查公众号的网页、授权登录和云开发的登录,他的接口也是非常非常简单,相比起之前的方式来讲基本上是对着文档把接口写进去就可以了。登录后,我们就可以访问获得授权的小程序的云开发资源、使用公众号 JSSDK 或者获取公众号已被授权的信息、发起公众号云调用等等一系列能力就都有了。同样说的直接一些,在这个模式下我们已经天然的知道了,这个服务器就是你的服务器、这个请求就是你发起的请求或者已获得资源方授权的服务器,非常自然的就不需要复杂的交换各种 token 的过程、交换票据的过程了。


由此我们看到,调用公众号的这个服务端接口同样变得非常简单。我们已经提供了类似的接口功能,云开发的 API 也是如此,我们只需要 require 我们的 Web SDK,就可以很方便地在公众号中使用您的云开发 API。


基于以上的共享、授权的过程,我们以免鉴权的调用方式可以通过环境共享能力重新定义云开发的部分,我们目前这个模式已经支持将小程序云开发环境共享给同主体下其它小程序或公众号。未来,我们有可能也会往 Web 之类的更多端方向。


介绍到这里,相信大家已经对环境共享能力有了非常全面的了解。


此外我们也发现了问题,不少企业或个人有建设一个 Web 网页进行小程序等业务进行运营的需求。于是我们也同步支持了一个非常重要的新能力,就是云开发静态网站托管能力。


如果你除了这个小程序之外还希望建设一个网站来进行更大范围更多端的传播,只需要使用我们这次的另一个新能力,就是同步开通静态网站托管能力,便能够像上传云盘文件一样简


单地搭建一个网站。在符合主体认证要求的情况下,使用云开发静态网站托管能力,能够非常简单地直接地让你的网站免鉴权跳转小程序,这样是我们的开放能力达到更好的运营传播效果。大家搭建网站的时候普遍关心的能力,比如像自定义域名、自定义缓存配置、黑白名单等安全的设置我们也都统统支持。


此外,我们还支持了 Web 未登录模式。如果你的云环境配置了恰当的自定义安全规则的话,在你的公众号的 Web 网站在外部同样可以使用我们的 Web SDK 进行调用,我们最新支持的这个未登录模式就能够达到这样的效果,这极大丰富了你的云开发资源便捷地向外拓展使用的场景。


介绍到这里,可能还有人会问,我做的这个 Web 网站除了满足运营的需求外,还希望搭建一个 Web 端的后台,来帮助我们的运营人员能够可视化地来管理我的资源跟数据。


上面这个静态网站托管能力是否难以满足这样的诉求呢?我们想要重新定义开发云计算开发内容管理功能的第三个功能。


只需要开通刚刚发布的静态网站托管能力后,便可以非常方便的通过我们的内容管理 CMS 可视化的开通,部署与统一管理你的云开发资源,在我们的 Web 端(网页端)非常方便的快速的搭建一个后台系统,也就是我们常说的运营系统。这个过程几乎是没有开发量的,甚至产品运营经理都可以自行可视化配置这个后台系统。可以看到,无论是配置字段还是说最终呈现的可视化编辑管理的数据,都能非常轻松的免开发创建可视化的内容管理平台页面,可以非常进一步的降低了开发与运维成本,使用云开发便可打通从前端到后台、到运营、到资源、到管理的所有环节。此外,这个 CMS 能力我们还支持自定义二次开发。


介绍到这里相信大家已经对我们重新定义多场景下的云开发有了非常深入的了解。我们基于一个小程序云开发为核心去拓展满足更多场景下需求的思路,是为了进一步来降低广大开发者的开发和运维成本,让精力能够更加聚焦专注在你的业务本身。而通过环境共享,我们支持了这个多端接入、配套静态托管和刚才介绍的内容管理 CMS 等拓展能力,让你的小程序云开发能够更加灵活开放。


以上就是基于早上提到的我们从单点云开发到全面云开发的发展思路不止于小程序、云开发多端扩展的场景以及新能力的介绍。


谢谢大家!

2020-11-30 16:56714

评论

发布
暂无评论
发现更多内容

第五届数字中国奖项出炉,昇腾人工智能融合赋能平台斩获十佳首展成果奖

Geek_2d6073

模块8(消息队列存储消息数据的mysql表格)

Geek_701557

聊聊css中文字的换行问题

南极一块修炼千年的大冰块

7月月更

中天钢铁在 GPS、 AIS 调度中使用 TDengine

TDengine

数据库 tdengine 时序数据库

MPLS基础知识概述

穿过生命散发芬芳

MPLS 7月月更

在灯塔工厂点亮5G,宁德时代抢先探路中国智造

脑极体

知识管理系统是什么?你需要知道这些

Geek_da0866

Web3.0 时代,基于P2PDB实现一款Dapp的技术理论

Rock-李益

dapp 去中心化 去中心化数据库 p2pdb

《TiDB 6.x in Action》发布,凝聚社区集体智慧的 6.x 实践汇总!

TiDB 社区干货传送门

数据库 分布式数据库 TiDB

企业数字化转型成大趋势,选对在线协作工具很重要

Baklib

SpringBoot应用使用Docker实现远程部署(保姆教程)

技术小生

Docker 7月月更

OPPO 自研大规模知识图谱及其在数智工程中的应用

NebulaGraph

知识图谱 NebulaGraph

客户案例 | 聚焦流程体验,助银行企业APP迭代

易观分析

银行 客户 银行app

参数解析与跳石板

未见花闻

7月月更

3分钟创建Serverless Job 定时获取新闻热搜

云端explorer

Serverless Job 新闻热搜 场景搭建

人工智能助力复工复产,模版 OCR 轻松搞定健康码识别

亚马逊云科技 (Amazon Web Services)

人工智能 Lambda

Docker 安装 Minio 搭建属于自己的文件服务器

宁在春

Docker Minio 7月月更

B站713事故后的多活容灾建设|TakinTalks大咖分享

TakinTalks稳定性社区

故障 稳定性保障

发评测赢好礼 | Serverless 函数计算征集令

阿里巴巴云原生

阿里云 Serverless 云原生

车联网的数据安全该怎么保护

Geek_99967b

小程序 物联网

唠唠python的作用域,看看每个变量都为自己打下了多少江山

迷彩

Python 函数 作用域 7月月更

【刷题记录】22. 括号生成

WangNing

7月月更

ES6 类聊 JavaScript 设计模式之行为型(一)

devpoint

JavaScript 设计模式 ECMAScript 6 7月月更

如何在github的pages部署hexo实现代码提交到仓库自动部署

娃娃菜

GitHub Pages 签约计划第三季

客户案例|生学教育依托观测云打造可观测智慧教育新生态

观测云

阿里云消息队列 Kafka-消息检索实践

阿里巴巴云原生

kafka 阿里云 云原生 检索 消息

企业内部信息碎片化该怎么办?不妨试试这样做

Baklib

低代码工具有哪些特色?明眼人都能看出来的低代码两大发展轨迹!

优秀

低代码 低代码平台

工赋开发者社区 | 定了!就在7月30日!

工赋开发者社区

技术分享 工业 峰会

RocketMQ—(总结)一篇就搞懂RocketMQ

IT巅峰技术

洋葱集团携手OceanBase实现分布式升级,全球数据首次实现跨云融合

OceanBase 数据库

黄映焜:不止于小程序,云开发的多场景应_语言 & 开发_InfoQ精选文章