puppet-padlocal icon indicating copy to clipboard operation
puppet-padlocal copied to clipboard

体验版小程序卡片原样转发会变成线上版

Open zihaooo opened this issue 2 years ago • 0 comments

依赖版本:

"wechaty": "^1.20.2",
"wechaty-plugin-contrib": "^1.11.2",
"wechaty-puppet": "^1.20.2",
"wechaty-puppet-padlocal": "^1.20.1",

核心代码:

使用收到的payload构造新的小程序卡片

if (msg.type() === PUPPET.types.Message.MiniProgram) {
    const card = await msg.toMiniProgram()
    log.info(JSON.stringify(card))
    const payload = card.payload
    await receivers[0].say(new bot.MiniProgram(payload))
  }

观察到的payload不同

手动分享收到的sharedId和自动分享时填入的shareId为同一个(因为上面那段代码直接没有改payload),格式为:

1_${appid}_${长度32的hash code}_${UNIX时间戳}_0

收到的自动分享的卡片中,shareId被改写了,格式变为

0_${appid}_${9位数字}_${UNIX时间戳}_0

其中9位数字在我分享的其他小程序的卡片中也是同样的。

截图:

截图中两个小程序卡片一个是通过手动从体验版小程序中分享的,一个是通过上面那段代码在收到手动分享的卡片之后自动分享的。

zihaooo avatar Jul 05 '22 03:07 zihaooo