收藏
评论

获取用户信息接口优化调整官方


由于收到开发者的反馈,为了方便开发者更好地使用获取用户信息的接口,开发者仍然可以使用 wx.getUserInfo 接口获取用户信息。


具体优化调整如下:

1.获取用户头像昵称,第一次需要使用 button 组件授权,如果已经用组件授权了,wx.getUserInfo 可直接返回用户数据,无需重复授权弹窗。
2. 如果没有用 button 组件授权,wx.getUserInfo 调用接口返回失败,提醒开发者需要先使用 button 组件授权。
3. 用户可在设置中,取消授权。取消授权后需重新用 button 组件拉起授权。

此次调整仅会影响开发者工具、体验版和开发版,正式版本小程序暂不受影响。


详细可见如下接口文档:

  • 小程序:

1.使用 button 组件,并将 open-type 指定为 getUserInfo 类型,用户允许授权后,可获取用户基本信息。

详情参考文档:

https://developers.weixin.qq.com/miniprogram/dev/component/button.html


2.使用 open-data 展示用户基本信息。

详情参考文档:

https://developers.weixin.qq.com/miniprogram/dev/component/open-data.html


  • 小游戏:

1.使用用户信息按钮 UserInfoButton。

详情参考文档:

https://developers.weixin.qq.com/minigame/dev/document/open-api/user-info/wx.createUserInfoButton.html


2.开放数据域下的展示用户信息。

详细参考文档:

https://developers.weixin.qq.com/minigame/dev/document/open-api/data/wx.getUserInfo.html


请各位开发者注意及时调整接口,正式版未来也会逐步切换为这个逻辑。


130361浏览
最后一次编辑于  2018-05-11
收藏

274 个评论

  • 人生,就是玩
    人生,就是玩
    2018-05-12



    现在如何判断用户是否已授权?拜托接口更新之后文档也更新一下,旧的内容和demo都去掉,不要整得前后矛盾,逻辑都不通。

    2018-05-12
    赞同 1
    回复 4
    • Kero
      Kero
      2018-05-14
      https://developers.weixin.qq.com/miniprogram/dev/api/setting.html#wxgetsettingobject 可以使用getseting接口判断是否已经授权
      2018-05-14
      回复
    • 人生,就是玩
      人生,就是玩
      2018-05-14回复Kero
      文档中scope.userInfo不是已经废弃了吗?
      2018-05-14
      1
      回复
    • JJ
      JJ
      2018-05-15
      我也和你一样的问题 ,简直无语,官方现在没有回复。请问你现在怎么样了。、
      2018-05-15
      1
      回复
    • 人生,就是玩
      人生,就是玩
      2018-05-15回复JJ
      用了其他方法实现了 加微信交流交流,微信号QQ55885494
      2018-05-15
      回复
  • 江湖
    江湖
    2018-05-12

    吃饱了,没事干,,,,,,,,

    2018-05-12
    赞同 1
    回复
  • 伯纳乌的追风少年
    伯纳乌的追风少年
    2018-05-12

    为这个问题昨晚又折腾到凌晨2点

    2018-05-12
    赞同 1
    回复
  • 赛会通Tech
    赛会通Tech
    2018-05-12

    大哥,编辑器出了问题了啦,你就是改了接口,我也无法调试修改代码啊,兄弟。。。。。快出来解决下啊。。

    2018-05-12
    赞同 1
    回复
  • დ噢尼酱
    დ噢尼酱
    2018-05-12
    我想知道scope.userInfo【废弃】之后 怎么判断用户是否授权?
    2018-05-12
    赞同 1
    回复 2
    • Kero
      Kero
      2018-05-14
      用getsetting接口,如果"scope.userInfo": true,则表示已经授权。 https://developers.weixin.qq.com/miniprogram/dev/api/setting.html#wxgetsettingobject
      2018-05-14
      回复
    • JJ
      JJ
      2018-05-15
      我就是这样改的,但是为什么还弹出提示:我保证不打你的脸,看我提的你回答的答案的问题,至今没有解决: 已经改成新的getUserInfo方法了,开发工具怎么还提示不再支持? https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1130585471&docid=000644775f03d08dfeb6fcf2051000
      2018-05-15
      回复
  • 2018-05-11

    既然已经废弃了scope.userInfo,那么我如何判定用户是否已经通过button组件授权过了???没法判断wx.getUserInfo这个接口不是依然没用???没用是不是就意味着每次都要让用户点一次button???这你叫优化了用户体验么???

    2018-05-11
    赞同 1
    回复 6
    • 2018-05-14
      第一次就行了啊。。以后再通过wx.getUserInfo来判断。。除非用户清了清了缓存或者主动去取消授权了。
      2018-05-14
      回复
    • Kero
      Kero
      2018-05-14
      用getsetting接口,如果"scope.userInfo": true,则表示已经授权。
      2018-05-14
      回复
    • JJ
      JJ
      2018-05-15
      我就是这样改的,但是为什么还弹出提示:我保证不打你的脸,看我提的你回答的答案的问题,至今没有解决: 已经改成新的getUserInfo方法了,开发工具怎么还提示不再支持? https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1130585471&docid=000644775f03d08dfeb6fcf2051000
      2018-05-15
      回复
    • 2018-05-15回复
      他公告里说废除了scope.userInfo我才这么回复的朋友,既然废除了我想理所当然getsetting里这个参数也没用了,谁知道他没废除
      2018-05-15
      1
      回复
    • 2018-05-16回复
      我之前看的好像也是废弃了。。。今天一看又没有【废弃】两个字了
      2018-05-16
      回复
    查看更多(1)
  • 李刚
    李刚
    2018-05-11

    bindGetUserInfo: function (e) { //用户授权

    var that = this;

    //console.log(e.detail.userInfo);


    var code = that.data.code;

    // console.log(code);

    if (code) {//如果code存在则获取用户授权

    console.log("code:" + code);

    // 查看是否授权

    wx.getSetting({

    success: function (res) {

    console.log(res);

    if (res.authSetting['scope.userInfo']) {

    // 已经授权,可以直接调用 getUserInfo 获取头像昵称

    wx.getUserInfo({

    withCredentials: true, //是否带上登录态信息

    success: function (res) {

    //console.log(res);

    app.globalData.userInfo = res.userInfo;   //赋值用户信息

    that.setData({

    userInfo: res.userInfo,//赋值用户信息

    });

    //console.log(app.globalData.userInfo);


    var user_name = res.userInfo.nickName   //储存用户名字

    var image_url = res.userInfo.avatarUrl   //储存用户头像

    var iv = res.iv;

    var proxySend = res.iv;

    var encryptedData = res.encryptedData;

    //发起网络请求            

    wx.request({//请求php后台授权拿到openid

    url: app.globalData.allUrl + 'miniProgramsLogin',

    data: {

    code: code,

    iv: iv,

    encryptedData: encryptedData,

    },

    method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

    // header: {}, // 设置请求的 header

    header: {

    'content-type': 'application/x-www-form-urlencoded' // 默认值

    },

    success: function (res) {  //后台返回userId

    console.log(res);   //拿到openid

    var userId = res.data.userId;

    var jiapuId = res.data.jiapuId;

    if (userId) {

    app.globalData.userId = userId;   //赋值用户信息

    that.setData({

    userId: userId, //userId渲染

    });

    // console.log(userId);

    }

    if (jiapuId) {

    wx.setStorageSync('hasJiapuId', jiapuId); //缓存家谱id

    app.globalData.jiapuId = jiapuId;   //赋值用户信息

    that.setData({//设计家谱id判断是制作家谱还是查看家谱

    hasJiapuId: jiapuId,

    jiapuId: jiapuId,  //家谱id

    });

    //console.log(jiapuId);

    }

    },

    error: function (res) {

    console.log("调用java---miniProgramsLogin失败 ");

    }

    })

    }

    })

    }

    }

    })



    2018-05-11
    赞同 1
    回复
  • Gordon🔥💦
    Gordon🔥💦
    2018-05-11

    意义在哪 ??????强烈要求 改回原来的方式!

    2018-05-11
    赞同 1
    回复
  • Tree
    Tree
    2018-05-11

    说真的,真有必要拿个头像昵称也要用户授权吗!?在微信里给用户一个选项,直接统一授权好了,设置是否接受小程序小游戏调用头像昵称(仅限头像昵称和openId)权限,这样也是拥有知情权了;现在每个用户进来都要点一下,否则就要退出,真心多余!

    2018-05-11
    赞同 1
    回复 2
    • Kero
      Kero
      2018-05-14
      头像昵称中,有很多人是设置成了真实的头像和姓名。 在使用不同的小程序时,需要评估是否愿意给这些信息,如果变成一个统一的授权设置不合适。
      2018-05-14
      回复
    • 不冷不热
      不冷不热
      2018-05-18回复Kero
      人家也有是否授权按钮啊 不想让别人知道自己的隐私点拒绝就好了 干嘛非要加个button引导调用? 这样所有的小程序都会收到影响 是所有的 除非是不要用户功能的小程序 不过这种小程序开发出来有何意义?
      2018-05-18
      回复
  • 2018-05-11

    牛逼了,测试到最后阶段,马上要上线了,突然生效了!真的是牛逼!哪来的时间改?

    2018-05-11
    赞同 1
    回复

正在加载...

登录 后发表内容