收藏
评论

小程序与小游戏获取用户信息接口调整,请开发者注意升级。官方


为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。开发者可使用以下方式获取或展示用户信息:


一、小程序:

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


请各位开发者注意及时调整接口。


1454510浏览
最后一次编辑于  2018-04-16
收藏

542 个评论

  • 小程序/小游戏开发-Link
    小程序/小游戏开发-Link
    2018-04-16

    小游戏中有2个wx.getUserInfo ,一个在用户信息(主域数据) ,另一个在开放数据(开放数据域).

    我的解读是,楼主所指的wx.getUserInfo应该是用户信息(主域数据)的,开放数据(开放数据域)不受影响~


    理解正确

    2018-04-16
    赞同 4
    回复 4
  • 2018-07-07

    其实这个不只是首页的问题啊,我们内页也可以分享出去,当新用户点击内页链接打开小程序时,首页的授权登录按钮是不会出现的。所以就只能通过全局appjs去授权,现在全局的getuserinfo竟然不给用了卧槽!全局appjs里我们没办法去设置授权登录按钮让用户去授权登录啊!

    2018-07-07
    赞同 3
    回复
  • 纪宏斌
    纪宏斌
    2018-05-28

    我们的小游戏排行榜需求上要突出显示自己的排行和分值,开放数据域的获取朋友列表接口有返回openId,但是获取自己的信息返回的openId值是"selfOpenId"!!!导致不能精确判断排行列表里面哪个是自己,同时如果主域的获取用户信息接口要取消,不能通过主域告诉开放数据域自己的openId,这个怎么办?难道要通过昵称、头像、分数来判断?这个做法也太坑了吧。

    2018-05-28
    赞同 3
    回复
  • 归去来
    归去来
    2018-05-16

    支持这个策略


    批评的各位可以反思下各自以及其他的产品,我使用过的小程序基本上都是一进入便无脑弹窗获取用户信息,甚至于如果拒绝授权造成整个小程序都无法使用。


    这是什么生态?


    至于会影响众多开发者,这是必然的事情,不过我觉得还好,就是多增加一个交互过程,改一下授权代码(当然影响也是蛮大的) 


    另外微信团队也可以制订一些规则(比如不允许无脑弹窗)来增加用户体验,不过众多产品都是不怕走钢丝的,个人认为直接废弃这个接口干脆些。


    我不觉得这是微信自己 sb 而草率做的决定。


    2018-05-16
    赞同 3
    回复 3
    • 是小傑啊🐑
      是小傑啊🐑
      2018-05-19
      呵呵
      2018-05-19
      4
      回复
    • 杨英华David
      杨英华David
      2018-05-23
      是的,很多一上来就要授权,页面里啥都看不见就要授权,这个是不合理的。 但如果不点一下就能够拿到头像和昵称,开发者就可以绕过授权直接保存这个数据,欺骗行为就很容易产生。例如:“你的某某好友也购买了这个,你也来买吧~”。所以授权是必须的,且是必须点击的。 但坏处就是无法静默授权,即以前可以在用户点击授权后拿到头像和昵称、然后完成后台的账号系统生成等一系列当做,现在则必须先点一下才可以。。。于是,很多界面都得放一个授权按钮了。。。
      2018-05-23
      回复
    • NAMELESS
      NAMELESS
      2021-08-12回复杨英华David
      劣币驱逐良币。我想要用户回复内容点键盘回车键的时候申请授权,现在改成这样了,我怎么搞?
      2021-08-12
      回复
  • logic
    logic
    2018-04-16

    刚才试了小程序的open-data,头像显示太不友好,我把组件设置了圆角,但图片还是显示成方形,也不能像image组件那样,支持裁剪

    2018-04-16
    赞同 3
    回复 2
    • Cyguns
      Cyguns
      2018-05-16
      确实,试了半天,设置不了圆角
      2018-05-16
      1
      回复
    • 武功再高也怕孙超
      武功再高也怕孙超
      2018-05-16
      在外层套一个view,设置这个view的border-radius为50%,再overflow:hidden就好了
      2018-05-16
      28
      回复
  • 小帅丶
    小帅丶
    2018-06-12
    onLoad: function () {
        //1.静默操作获取用户信息 调用wx.login
        var that = this;
        wx.login({
          success: function (res) {
            var code = res.code;//2.登录凭证code
            console.log('code===' + code);
            if (null != code) {
              wx.getUserInfo({
                success: function (ress) {
                  console.log('res===' + res);
                  //3.请求自己的服务器,解密用户信息
                  wx.request({
                    url: '',
                    method: 'post',
                    header: {
                      'content-type': 'application/x-www-form-urlencoded'
                    },
                    data: { encryptedData: ress.encryptedData, iv: ress.iv, code: code },
                    success: function (res) {
                      console.log('resjava===' + res.data.openId);
                      that.setData({
                        backUserInfo: res//将后台返回的数据赋值给backUserInfo
                      })
                    }
                  })
                }
              })
            }
          }
        })
        if (app.globalData.userInfo) {
          this.setData({
            userInfo: app.globalData.userInfo,
            hasUserInfo: true
          })
        } else if (this.data.canIUse) {
          // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
          // 所以此处加入 callback 以防止这种情况
          app.userInfoReadyCallback = res => {
            this.setData({
              userInfo: res.userInfo,
              hasUserInfo: true
            })
          }
        } else {
          // 在没有 open-type=getUserInfo 版本的兼容处理
          wx.getUserInfo({
            success: res => {
              app.globalData.userInfo = res.userInfo
              this.setData({
                userInfo: res.userInfo,
                hasUserInfo: true
              })
            }
          })
        }
      }

    这样写是无法正常上线吗?只是提示接口不再出现弹窗。那会影响上线审核吗?

    2018-06-12
    赞同 2
    回复
  • z.z
    z.z
    2018-05-17

    微信开发团队有没有考虑对现有小程序的影响 原有api应该保证兼容 新接口是引导为主 不应该直接把原有接口直接修改或废弃

    2018-05-17
    赞同 2
    回复
  • that is a boy 🐟
    that is a boy 🐟
    2018-05-16

    我就是想知道wx.getUserInfo这个接口是不能用了,还是不能弹出授权框!!!总不能让用户每次进来想看见自己的头像,都要点击一下按钮吧

    wx.getSetting({
          success: function (res) {
            if (res.authSetting['scope.userInfo']) {
              // 已经授权,可以直接调用 getUserInfo 获取头像昵称
              wx.getUserInfo({
                success: function (res) {
                  app.globalData.userInfo = res.userInfo
                  console.log("已经授权,可以直接获取用户信息", res.userInfo)
                 
                }
              })
            } else {
              
            }
          }
        })

    上面这种方式在button授权之后还能不能用?能给个明确的解释么。api上明明写着可以,编译器却在报错,搞不懂,搞不懂,惹不起,惹不起啊。

    api:https://developers.weixin.qq.com/miniprogram/dev/api/open.html

    2018-05-16
    赞同 2
    回复 3
    • Jackson   Y
      Jackson Y
      2018-08-20

      新版本的创建新的初始状

      2018-08-20
      1
      回复
    • 2018-11-07

      看到这个回调嵌套我都要吐了



      2018-11-07
      1
      回复
    • 十三、
      十三、
      2019-10-17回复
      我先吐一会
      2019-10-17
      1
      回复
  • 2018-05-14

    微信就是没事找事么,这样用户体验好吗?点一个按钮在点一个按钮。体验麻烦的要死。意义何在?赶紧改回来吧。不然微信也就这样了,定位授权   登录授权  你在登录基础上又让整个按钮   人家体验小程序  就是在这没事点确定的么

    2018-05-14
    赞同 2
    回复
  • 阿凡
    阿凡
    2018-05-14

    这个决策很草率,没看到对用户体验能提升什么,没看到对腾讯有什么好处,没看到对开发者有什么好处,相反,反而让所有的开发者都不得不折腾出一个button,让所有的小程序用户都多一次点击,体验直线下降。愚蠢!

    2018-05-14
    赞同 2
    回复

正在加载...

登录 后发表内容