收藏
回答

请问当一个用户点链接进入分享出去的直播间时,如何拿到openid?

微信直播的研发人员您们好,我司小程序有幸得到了测试资格,这几天写了几个demo,发现有一个问题无法解决,所以想来请教下。

当使用live-player-plugin组件时,用户在直播间可以直接点右上角的分享把这个直播间分享出去。我用复制页面路径功能查看到这个分享出去的直播间链接里是带了分享人的openid的。形式大概是: __plugin__/wx2b03c6e691cd7370/pages/live-player-plugin.html?room_id=9&type=1&openid=***&close_picture_in_picture_mode=false

但是当有人通过这个链接直接进入直播间时,我没办法拿到这个openid。理论上这个参数该在对应page的onLoad里拿,但是页面是你们插件内部的,App里也没有办法去hook其他page的onLoad。我尝试在App.onShow里查看query,是没有参数的,所以我不知道该如何取这个openid。我也查看了开发文档,目前并没有暴露取这个的接口。

另外我注意到在新版里,点击商品链接会带上room_id,这是一个很好的改动,让商品能和主播建立联系。但是在很多场景里,我们同样也希望分享者和主播和商品都建立联系,我想你们在分享链接里带上openid也是出于这个考虑。可是开发者却取不到这个openid。

所以我想问问:

1 是不是有获取这个openid的接口和方法只是我不知道,请指点一下谢谢。

2 如果没有,能不能提供一个这样的功能,或者在点击商品链接时把这个直播间的分享者的openid也带上。

3 如果出于openid的敏感性考虑不提供这样的功能,能不能提供一个可以在后台换取用户身份的类似的token?

4 如果以上说的都不行,微信直播这个组件从一开始设计就是不希望开发者取到分享直播间的人的信息,能不能说明一下,这对我司接下来的业务模式有较大影响,如果不行我们就早点死心寻找其他做法。

字打的有点多,感谢耐心看完,望早日回复。

回答关注问题邀请回答
收藏

4 个回答

  • 小程序运营专员 - cunjin
    小程序运营专员 - cunjin
    02-26

    我们看下。

    02-26
    有用
    回复 1
  • 陈宇明
    陈宇明
    02-25
    /**
     * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
     * 
     * event 参数包含小程序端调用传入的 data
     * 
     */
    exports.main = (event, context) => {
      console.log(event)
      console.log(context)
    
    
      // 可执行其他自定义逻辑
      // console.log 的内容可以在云开发云函数调用日志查看
    
    
      // 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息
      const wxContext = cloud.getWXContext()
    
    
      return {
        event,
        openid: wxContext.OPENID,
        appid: wxContext.APPID,
        unionid: wxContext.UNIONID,
        env: wxContext.ENV,
      }
    }
    
    02-25
    有用 1
    回复 1
    • sam
      sam
      02-26
      是吧
      02-26
      回复
  • 嘿灬男孩
    嘿灬男孩
    07-02

    解决了吗

    07-02
    有用
    回复
  • Eto
    Eto
    02-25
    1. 带 shareTicket 的转发
    2. 用云函数可以取到用户openid

    以上仅参考.

    02-25
    有用
    回复 15
    • rand0m
      rand0m
      02-25
      但是shareticket好像只有分享到群聊才有,分享给单人是没有的?
      02-25
      回复
    • Eto
      Eto
      02-25回复rand0m
      可以创建一个ticket存到数据库,进入之后根据ticket取相关的信息,信息太多不要放到链接上
      02-25
      回复
    • rand0m
      rand0m
      02-25
      你说的这个道理我明白,但是不是每个分享途径都有shareticket。
      02-25
      回复
    • Eto
      Eto
      02-25回复rand0m
      自己生成一个,分享的时候传过去,别人进来了之后再取
      02-25
      回复
    • rand0m
      rand0m
      02-25
      原来你也没看懂我的核心问题是什么,这个直播间页面是插件内部的页面,我既没有办法修改他的分享内容,也没有办法修改他的onLoad方法,不然我还需要这么纠结吗?
      02-25
      回复
    查看更多(10)
登录 后发表内容
问题标签