技术课 | 小程序玩“群聊”,开发哥来支招

技术课 | 小程序玩“群聊”,开发哥来支招_第1张图片


习惯了在群里点开小程序?分享一个链接、竞争一个群排名……小程序已经实现了群聊场景的很多功能。


本期小程序课,微信开发哥将为各位开发者详细解读小程序的群聊功能,期待大家能够借此功能“玩出新花样”——



微信群是小程序在微信这个社交工具下传播的重要途径,我们经常能通过群聊看见小程序的身影。我们希望开发者在实现小程序逻辑的时候,能理解每一个群聊,可实现小程序与各个群聊紧密相关的功能。


基于此,我们开放了群聊 ID(openGID)的功能,供开发者区分标识每个群聊。对于每个群聊而言,小程序所获取到的 openGID 是不变的。但对于同一个群,不同的小程序内获得的 openGID 是不一样的。这一特性类似于标识用户身份的 openID。


拥有了群聊 ID,开发者可以把用户的操作按照群聊 ID 来聚合、沉淀信息,实现群协作功能。此外,通过 openID+openGID 的方式,还可以实现群排行的功能。


例如“群影”小程序以群聊ID聚合用户上传的图片,实现群相册的功能。


技术课 | 小程序玩“群聊”,开发哥来支招_第2张图片

(“群影”小程序)


01

如何获取群聊ID


开发者获取openGID要依托于用户转发到群聊的小程序卡片,具体步骤如下:


1

设置带 shareTicket 的分享


在小程序内,开发者调用接口 wx.updateShareMenu 带参数 withShareTicket:true ,设置当前页面分享到群聊时能获取 openGID。而shareTicket本身就是获取 openGID 的凭证。


技术课 | 小程序玩“群聊”,开发哥来支招_第3张图片


而 iOS/Android App 分享场景当中,微信SDK也支持把所分享的消息设置成带 shareTicket。


值得注意的是,带 shareTicket 的分享卡片会被固定在某个群聊的,也就是说分享卡片会变成不能被长按转发


2

由启动参数获取shareTicket


当用户从某个带 shareTicket 的卡片进入小程序时,开发者可以在 App.onLaunch 或者 App.onShow 获取shareTicket,而在小游戏上开发者可以通过监听 wx.onShow 或者同步调用wx.getLaunchOptionsSync 获取shareTicket。


shareTicket 实际上是小程序启动时临时生成的变量,在小程序生命周期内仅作为调用接口的凭证。生命周期结束后 shareTicket 就没有意义了。


3

通过shareTicket获取openGID


开发者调 wx.getShareInfo 接口以 shareTicket 换取 openGID 的加密数据包,这是为了保证开发者服务器收到的 openGID 是可信的,开发者需要把加密数据交由后台解密,拿到真实的 openGID。数据加密机制更多请参看[数据加密相关文档]


注意事项


由于2018年7月5日起,新提交发布的小程序版本将无法通过用户分享获得群ID,即开发者通过wx.onShareAppMessage 获取群 ID 的方式将不再支持,后续仅支持通过启动参数获取群 ID。请开发者及时调整。


02

群聊名称组件


除了群聊 ID 以外,开发者还能使用群聊对应的名称。出于保护用户隐私的考虑,我们不会把真实的群聊名称暴露给开发者,而是通过open-data组件让开发者在小程序前端展示某个 openGID 对应的群名称。



其中 openGID 就是小程序获取到的群聊 ID。open-data组件只展示那些用户所在群聊ID对应的名称。如果设置了非微信提供的群聊 ID,将无法展现群聊名称。


03

相关文档


1

分享设置

wx.updateShareMenu[查看文档]


2

小程序启动参数

App.onLaunch / App.onShow[查看文档]


3

小游戏启动参数

wx.onShow[查看文档]

wx.getLaunchOptionsSync[查看文档]


4

获取openGID

wx.getShareInfo[查看文档]


5

群名称组件

[查看文档]



如果你觉得本期小程序课让你有所收获

欢迎赞赏一下作者

技术课 | 小程序玩“群聊”,开发哥来支招_第4张图片


课后交流

了解完本期的小程序群聊功能后,你还想知道小程序的哪些能力呢?


欢迎在评论区留言,用孜孜不倦的求学精神“召唤”技术小哥哥小姐姐们吧!


课程复习


【插件】开发小程序插件遇到问题?微信开发哥来教你!

【用户登录】被用户“花式拒绝”微信登录?开发小哥有好建议!

【音频】小程序音频不知道怎么开发?10分钟看完这节课就懂了

【自定义组件】减少重复开发,小程序自定义组件来给大家减负了

【音视频组件】别人家玩的那么6的小程序直播,你也可以开发


● 内容来自“微信开发者”公众号《小程序·小故事》栏目

微信公开课

微信ID:wx-gongkaike

技术课 | 小程序玩“群聊”,开发哥来支招_第5张图片

1.点击历史信息,查看更多内容

2.长按右侧二维码,关注微信公开课

技术课 | 小程序玩“群聊”,开发哥来支招_第6张图片

长按二维码关注


你可能感兴趣的:(技术课 | 小程序玩“群聊”,开发哥来支招)