专栏首页花叔的专栏解读小程序的新能力---获取群ID和群名称等群信息

解读小程序的新能力---获取群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),作者:花叔

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解读小程序权限,谈谈817产品功能迭代

    话说,微信小程序最近变动频繁,两天发布了两次更新,相当有诚意。 不少同学问为啥花叔还没更新文章,主要原因是最近有点忙就搁置了,不过没关系,趁周末有空给大家解读一...

    花叔
  • 小程序新增重量级入口

    iOS 微信客户端 6.5.15 及以上,Android 微信客户端 6.5.13 及以上,通用搜索页支持展示最近使用的小程序(原本是“看一看”入口): ? ...

    花叔
  • 为了研究一笔画完,结果做出了个游戏

    某天,我看到流行的、一笔画完类型的小游戏,于是就在那想,这种游戏的关卡构建是不是都是人工构建的,还是说程序可以随机生成。

    花叔
  • MYSQL RR隔离级别下MVCC及锁解读

    MVCC(Multi-Version Concurrent Control):多版本并发控制,只作用于RC和RR隔离级别,主要是为了避免脏读、非重复读,而非幻读...

    MySQL轻松学
  • JcJc错别字检查:应试作文写作质量的计量和计算

    机器可以批高考作文?至少能有效禁止背作文和套作文 澎湃新闻见习记者 程千千 2017-11-28 09:23 来源:澎湃新闻 字号 在高考评分中,作...

    田春峰-JCJC错别字检测
  • QML知识-使用Qt信号和方法

    在实际中开发QML应用,会经常用到信号这一属性。像onClicked,onDoubleClicked是异步操作,它们多由信号触发完成。有时候需要与Qt/...

    Qt君
  • android 手机 rsync同步 termux

    用户1130771
  • 模拟赛车torcs论文翻译

    摘要:本手册介绍了模拟赛车锦标赛的比赛软件,在进化计算领域和计算智能与游戏领域的大型会议上举办的国际比赛。 它提供了架构的概述、安装软件的说明以及运行包中提供的...

    用户1908973
  • keras 获取某层的输入/输出 tensor 尺寸操作

    在keras的网络中,如果用layer_name.shape的方式获取shape信息将会返还tensorflow.python.framework.tensor...

    砸漏
  • 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)

    储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时...

    java进阶架构师

扫码关注云+社区

领取腾讯云代金券