wx.getSetting包裹getUserProfile是不会获取授权弹窗吗?要怎么处理?
发布于 6 年前 作者 fangdeng 6185 次浏览 来自 问答
getUserProfile(e) {
    wx.getSetting({
      success(res) {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称
          wx.getUserProfile({
            desc'用于获取用户个人信息'// 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
            success: function (detail) {
              wx.login({
                success: ress => {
                  var code = ress.code; //登录凭证
                  console.log(">>>>>>>>>>code:", code)
                  console.log("encryptedData:", detail.encryptedData)
                  console.log("iv:", detail.iv)
                  wx.request({
                    url: api.getUnionId, //自己的服务接口地址
                    method'post',
                    header: {
                      'content-type''application/x-www-form-urlencoded'
                    },
                    data: {
                      encryptedData: detail.encryptedData,
                      iv: detail.iv,
                      code: code,
                    },
                    success: (res) => {
                      console.log("res:", res.data)
                      if (res.data.code == 'C00000') {
                        util.setToken(res.data.msg);
                        util.setStorageSync("userInfo", res.data.obj);
                        wx.redirectTo({
                          url'/pages/breakpage/breakpage',
                        })
                      }
                    },
                    fail: function () {
                      console.log('系统错误')
                    }
                  })
                }
              });
            }
          });
        }
      }
    })
  },

请问wx.getSetting不能用,要用什么替代?原先使用getuserinfo是可以正常授权的,直接换成getUserProfile点击没反应啊,去掉wx.getSetting后会提示unionid为空,我是新手,请大佬回答下怎么改呢?

3 回复

周知:getUserInfo 开发版和体验版 已对齐 getUserInfo 匿名表现,正式版将于 4月13日 正式对齐 getUserInfo 匿名表现。

请开发者使用 getUserProfile 获取用户信息。 小程序登录、用户信息相关接口调整说明:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801

还可以瞅瞅这个 https://developers.weixin.qq.com/community/develop/article/doc/000c8ce9a10070794cfbb0c085b013

首先: wx.getUserProfile 需要用户在页面上的点击事件进行触发,并且不能嵌套在任何 api 的回调中,不然会报 getUserProfile:fail can only be invoked by user TAP gesture 错误信息。

其次:开发版 & 体验版 scope.userInfo 调整将于 4月13日 对齐,统一返回 true,因此将无法通过 wx.getSetting 获取用户的授权状态,毕竟 wx.getUserProfile 类似于一次性的授权,每次调用均需 用户同意授权。

最后可查看 文章链接开发者通过 wx.login 获取到用户登录凭证 (code),调用微信登录接口(auth.code2Session)将直接返回 openId、unionId(请先确认已在开放平台绑定该小程序,绑定流程:登录 微信开放平台 — 管理中心 — 小程序 — 绑定小程序)

直接wx.getUserProfile

回到顶部