微信小程序,获取群id

微信小程序,获取群id,第1张

最近有一个需求,就是在小程序中,如果把商品分享到某群,此商品被二次转发(又被分享至其它群), 其它群成员无法领取

这个功能需要在小程序中获取第一次转发的群ID,根据ID,非此群用户无法领取此商品

在此记录此需求,从转发到接收的全流程实现

1) 页面生成后,一开始没有分享信息,故在 onReady 生命周期函数中调用 wx.hideShareMenu() ,使右上角按钮无法呼出分享按钮

2) 点击页面下赠送朋友按钮,向服务器请求分享信息,分享信息拿到后使用 wx.showShareMenu({withShareTicket: true}) 方法,使右上角可以呼出分享按钮, withShareTicket: true  设置分享后回掉函数中可以拿到shareTicket信息

3)在 onShareAppMessage 函数中配置配置分享信息, **注意,此函数中不要有异步行为,更不要在异步行为的回调函数中配置分享信息,分享信息要在此函数中 直接return(返回带有分享信息和分享完成后回掉函数的object)

4)此时按右上角,即会触发分享行为,在onShareAppMessage  函数中return 的分享后成功的回调函数参数里可以拿到 shareTickets , shareTickets是一个数组,数组每一项为一个分享了的群组shareTicket信息

5) 拿到shareTicket后, 调用wx.getShareInfo, 即可拿到加密后的微信群ID信息,将此信息通过API接口,交给后台处理。

在小程序的注册文件app.js中,onLaunch函数参数里,可以拿到场景值(ops.scene),当场景值为1044(带 shareTicket 的小程序消息卡片),ops中会包含shartTicket信息,同样调用wx.getShareInfo接口,拿到加密后的微信群ID,将此信息保存, 在用户触发接受的时候,将此信息通过API交给后端,后端会进行解密,如果此ID 和分享时候的ID不一致,那么用户不可接收此商品

微信 小程序 转发涉及以下4个方法:

1、Page.onShareAppMessage({})

设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据

2、wx.showSahreMenu()

用户点击右上角后,显示“转发”按钮

3、wx.hideShareMenu()

隐藏转发按钮,无视 Page.onShareAppMessage({})

4、wx.getShareInfo({})

根据 shareTicket 获取已加密的群信息

把转发流程切分:转发前配置->转发时->转发到群组后打开->二次转发

转发流程图:

这里写图片描述

U1: 用户

T1,T2,T3:表示转发票据,即 shareTicket

G1,G2,G3:群组

1.转发前配置

在页面 onLoad 方法添加

withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。

shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket 。

shareTicket 有两个用途:

用户主动转发后,获取转发到目标群群信息,对应上图UI。

用户在群组中打开小程序,获取群组信息,对应上图 G1 群组中的用户。

2.转发时获取群信息

当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId + openGid)。

shareTickets 是一个数组,每一项是一个 shareTicket ,对应一个转发对象,转发给用户不会包含shareTicket。

拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法传入 shareTicket 参数,wx.getShareInfo({}) 里回调函数中包含 已加密的群信息和 向量IV。

3.转发到群组后打开

用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。

在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数。

4.二次转发

二次转发重复前3个步骤,没什么可说的,但是有一个方向值得探讨,可否把小程序转发路径比作转发链,进而生成转发树,用数据结构方法(树、马尔科夫链)处理发现群组与群组,群组与成员之间微妙关系。

如开头那张图,我们很容易看出转发链和转发树。

转发链:U1 >G1 >G2

转发树:U1 >G1 >G2 &G3

拿手机型号「OPPO-Reno5-Pro」和手机「微信版本8.0.33」来说,

在微信群中,查找聊天记录,就可以了。

1.打开手机微信,进入一个微信群。

2.点击微信群右上角的三个点。

3.在聊天信息中,点击查找聊天记录。

4.在搜索框中,输入关键词,就会显示出你想找的信息。

这就是查找微信群聊天记录的方式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11576616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存