小程序禁止二次转发分享私密消息动态消息

第一种用法:私密消息

私密消息:运营人员分享小程序到个人或群之后,该消息只能在被分享者或被分享群内打开,不可以二次转发。

用途:主要用于不希望目标客群外的人员看到的分享信息,比如带有较高金额活动的分享。

如图:设置私密消息的分享和发送到朋友圈都是置灰的;未设置私密消息则可以长按转发。

实现思路:在活动页面统一设置为私密消息并且不允许分享,白名单控制可分享用户。

需要使用到以下三种API进行结合操作:

// 私密消息
wx.updateShareMenu({
 isPrivateMessage: true,
 withShareTicket: true, // 分享时是否携带ShareTicket
 activityId: 'xxx' // 后端接口生成返回
})
// 禁用分享
wx.hideShareMenu({
  menus: ['shareAppMessage', 'shareTimeline']
})
// 显示分享
wx.showShareMenu({
  withShareTicket: true,
  menus: ['shareAppMessage', 'shareTimeline']
})
注意:updateShareMenu 调用一次之后其他页面也会启用私密转发,需要在页面卸载时重新调用将 isPrivateMessage 改为 false 
// 此api需要在APP.vue中的onshow调用也可在onLaunch调用 通过options取shareTicket
onShow(options) {
  const { shareTicket,referrerInfo } = options
  console.log(shareTicket,referrerInfo)
  if(shareTicket){
    this.authPrivate(shareTicket)
  }
},
authPrivate(shareTicket,callback){
  wx.authPrivateMessage({
    shareTicket: shareTicket,
    success(res) {
      if(res.valid){
        // 提示这个人是私密分享的接受者 可以参与活动
      }else{
        // 提示这个人是不是私密分享的接受者 返回首页
      }
    }
  })
},

注意:ShareTicket 是 withShareTicket=true 后分享自动生成的这点牢记。

ShareTicket 转发出去的小程序被二次打开的时候能够获取到一些信息,例如群的标识。

从群聊、单聊消息卡片进入小程序时,通过 wx.authPrivateMessage 接口可以验证当前用户是否是私密消息的接收者。

我们只判断是否是私密消息可以只用valid判断,但是有被篡改的风险。可以使用activityId避免。

文档地址:转发 / wx.updateShareMenu (qq.com) 

参考:开放能力 / 转发 / 小程序私密消息 (qq.com)

第二种用法:动态消息

需求限制参与人数组队类型流程
仅使用于组队场景,分享消息会带上当前组队的进度,如图,“成员正在加入,当前m/n人”只能修改mn,其他文字不能修改,并且mn只能为正整数。

wx.updateShareMenu({
  withShareTicket: true,
  isUpdatableMessage: true,
  activityId: 'xxx' //后端接口生成返回
  templateInfo: {
    parameterList: [
      {
        name: 'member_count',//不用修改
        value: '1' // 填实际的已加入人数
      },
      {
        name: 'room_limit',//不用修改
        value: '3' // 填实际的房间总人数
      },
    ]
  }
}),
当组队人数有变化时,调用一次下面的接口,达成动态修改页面中已参与的人数,分享的卡片状态会实时变更。

https://api.weixin.qq.com/cgi-bin/message/wxopen/updatablemsg/send?access_token=ACCESS_TOKEN

文档地址:修改动态消息 | 微信开放文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值