转发获取群信息失败,getShareInfo:fail 4
发布于 6 年前 作者 fangxiulan 4584 次浏览 来自 问答

在onShareAppMessage方法的success中,可以获取到shareTickets,调用getShareInfo时,报错了getShareInfo:fail 4,请问是什么情况呢?

3 回复

我懂您的意思了。我是想在用户转发后获取群的openGId,getShareInfo返回success的话会有个encryptedData,解密它可以拿到openGId。我的getShareInfo 返回了 fail:4.您知道什么情况吗,或者怎么获取到openGId。谢谢

我最近刚做了获取openGid功能,具体代码如下:

onShareAppMessage: function () {
    var self = this;
    return {
      title: '您收到了一条重要通知',
      path: '/pages/detail/detail',
      success: function(res){
        console.log('notice === :')

        console.log(self.data.notice);

       // 已经有open_gid的,就不再获取

        if (self.data.notice.group_only && self.data.notice.open_gid == ''){
          util.showLoading('正在获取群信息');
          wx.getShareInfo({
            shareTicket: res.shareTickets[0],
            complete: function(res){
              console.log('complete ========');
              console.log(res);
              // 后台解密,获取 openGId
              bindGroupInfo(res, self);
            }
          });
        }
      },
      fail: function(res){
        console.log('转发到群/好友失败 ============= ');
        util.showModelTips('分享失败,请重新分享到群');
      }
    }
  },

希望对你有帮助

徽信:mianhuabingbei

有没有在app.js里面的onShow方法里面获取shareTickets?(官方说onLuanch里面也可以获取到)

App({
  onLaunch: function (ops) {
  },
  onShow: function (ops) {
    this.shareTicket == '';
    if (ops && ops.scene && ops.scene == 1044) {
      this.shareTicket = ops.shareTicket ? ops.shareTicket : '';
    }
  },
})

然后再到页面中获取:

var app = getApp();
Page({
...
onShow: function (ops) {
    var self = this;
    if (app.shareTicket){
      wx.getShareInfo({
        shareTicket: app.shareTicket,
        complete: function (res) {
          console.log(res);
          if(res.errMsg == 'getShareInfo:fail:'){
            // error
          }
          else{
            // success
          }
        }
      });
    }
  },
...
})
回到顶部