解读小程序的新能力---获取群ID和群名称等群信息

5月8日微信小程序有公布了一个新功能:获取群ID和群名称等群信息,官方有一句话是这么介绍它的用处的:

现在,通过最新的接口能力,开发者可以通过群ID判断用户是否来自同一个微信群,同一个群内的用户之间可以更好地使用小程序进行协作,例如共同编辑文档、协同合作、共同点餐等等。

这么说的话,Nodes小程序也许能玩点什么新花样:

于是花叔马上打开开发工具做了一下预研,总结一下,用法很简单:

第一步.在app.js的onLaunch事件里获取shareTicket

第二步.在需要获取群信息(id或者群名称)的地方执行getShareInfo方法,并把shareTicket传进去

然后你就能把小程序分享到某个群里,别人打开的时候就能获取相关的群信息了,注.群id会以加密的方式放在回调函数的参数中的encryptedData里,这个密文一般是传送到服务端,然后服务端用对应的解密方法来解密,这样才能获取群ID,具体解密方法可以参考 https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html

说完用法,我们来用扯扯这东西有什么用处,这个新能力有些同学不一定看得懂,花叔来总结一下:它只是做了一个更严谨的权限限制。什么意思呢?

拿官方提到的三类应用来举例

共同编辑文档、协同合作、共同点餐

在这能力出来前,这三种应用能做吗?能!腾讯投票就是很好的例子。

那么为什么小程序官方还要更新这个能力呢?

在这能力出现前,我们要做协同合作类的小程序应用的话,往往遵循的程序设计思路是:

新建一个事件(具备了一个唯一id)->传播一个带有这个id的小程序落地页->打开这个落地页即可参与协同合作

显然,在某些严谨的协助交互里,这种方式太过于随意,只要有人把链接泄露了,那么就会有意料之外的协同者来编辑这个事件,于是聪明的程序员会把设计思路改成这样:

新建一个事件(具备了一个唯一id,并指定具备权限的用户白名单)->传播一个带有这个id的小程序落地页->打开这个落地页并发现自己在权限白名单里即可参与协同合作

这样就比较严谨了,然而这个思路有个问题:需要事件发起人制定权限白名单,而在小程序里,如果发起一个协同合作事件到某个微信群里,其实事件发起者一般是想这个微信群里的所有成员都是具备协同权限的。

小程序的这个新能力的出现,就是弥补这个不足的,通过这个能力,能实现两个效果:1.群ID会以密文的方式传输,这样能保证除了特定群外,别的地方不可能会出现同样的小程序落地页,保证了事件不可外传;2.巧妙的共用了群权限,使得只要群员在群里,默认就具备了协同编辑的权限,这样就不需要事件发起者去定义某个事件的协同者白名单了。

确实,这就方便了。

其实这个能力就是一个微信群和小程序巧妙地共享权限的方式,把“发小程序到微信群”这一交互变成“发小程序到微信群,并把该微信群的所有成员加到小程序的协同这白名单里”。

牛吗?

虽然有些场景下,这能力挺鸡肋的(读者可自己发散一下思维想一下),但我觉得还挺牛的。

原文发布于微信公众号 - MinProgram(gh_0d2d5abccc20)

原文发表时间:2017-05-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DeveWork

微信“小程序云”(云开发)简介与初体验

在7月10日的微信公开课第七季上,微信小程序团队预告了小程序云的到来。目前官方已经公测:地址 。现在名为“小程序·云开发”。本文笔者将从一个开发者的角度去介绍及...

9.7K410
来自专栏SDNLAB

借助Intel最新芯片,FD.io数据包传输速度翻倍

暨本周Intel发布了可扩展Xeon芯片之后,开源快速数据项目(FD.io)宣布通过最新的Intel Xeon可扩展处理器实现双重性能的提升。 ? FD.io工...

35640
来自专栏互联网杂技

Neilsen十大可用性设计原则

最近在做toB类产品的时候,经常会被业务带着跑从而忽略了可用性设计的基本原则,最后导致自己的方案被挑战而说不出理由。所以当设计拿捏不准的时候,最好还好依照基本的...

35490
来自专栏机器人网

Python程序员需要了解的10个资源

你是一名Python程序员。在知道其他语言后,通过Python入门,或通过阅读Python教程或类,直到您对基础知识足够自信为止,您已经获得了这一称号。那现在,...

13130
来自专栏阮一峰的网络日志

Android,开源还是封闭?

满大街都在谈论Android。 它是当红炸子鸡。许多人觉得,iPhone将受到它的强力挑战。 ? 我也曾经对它充满了期待,但是后来的事态发展,令我改变了看法。前...

36270
来自专栏全华班

二代蜘蛛侠

爬虫程序, 二代蜘蛛侠,此版本完全重新开发,比上一代更加强大(性能,易用,架构,分布式,简洁,成熟)

19930
来自专栏全华班

一款免费、开源,使用PHP语言开发的项目管理系统

建立每年每月的工作项目,所有的工作最后都是对应到每位成员的个人项目,既可以是团队多人的项目形成的个人项目、也可以是完全纯属于自己的个人项目。

1.5K20
来自专栏程序员互动联盟

单片机距离智能机器人有多远?

提到单片机很多人都很觉得不陌生,大街小巷上面电子产品都用到。近几年随着嵌入式的发展,智能机器人是未来一个大方口,其实智能机器人也是嵌入式的一种,里面融入了生物科...

38250
来自专栏blackheart的专栏

[解读REST] 3.基于网络应用的架构

链接上文[解读REST] 2.REST用来干什么的?,上文中解释到什么是架构风格和应该以怎样的视角来理解REST(Web的架构风格)。本篇来介绍一组自洽的术语,...

23090
来自专栏华章科技

Python为啥这么牛?跟其他语言相比究竟有什么优势?

导读:选择要学习的技术和选择要上的大学一样重要,如果选错了,你将来不仅得不到自己喜欢的高薪工作,反而会弄得一堆麻烦。如果你打开了这篇文章,说明你已经考虑选择Py...

10820

扫码关注云+社区

领取腾讯云代金券