微信小程序 wx.getUserProfile 接口获取用户信息

wx.getUserInfo

开发中遇到getUserInfo一直获取不到用户信息,查询后了解到:

考虑到近期开发者对小程序登录、用户信息相关接口调整的相关反馈,为优化开发者调整接口的体验,回收wx.getUserInfo接口可获取用户授权的个人信息能力的截止时间由2021年4月13日调整至2021年4月28日24时。
然后新增了getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。

wx.getUserProfile

获取用户信息。页面产生点击事件(例如 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo
参数:

1.lang:非必填,显示用户信息的语言
2.desc:必填,声明获取用户个人信息后的用途,不超过30个字符(必填!必填!必填!)
3.success:非必填,接口调用成功的回调函数
4.fail:非必填,接口调用失败的回调函数
5.complete:非必填,接口调用结束的回调函数(调用成功、失败都会执行)

注意:

仅小程序中 wx.getUserInfo 接口进行调整,小游戏中不受影响;为了兼容低版本,可以做以下兼容:

Page({
  data: {
    userInfo: {},
    canIUseGetUserProfile: false,
  },
  onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
    // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,最多15个中文或者30个字符
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  getUserInfo(e) {
    // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
})

open-data

之前还可以通过open-data组件进行渲染,该组件无需用户确认,可以在界面中直接展示。但现在此方法已被微信禁用,获取不到用户信息了
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序是一种轻量级应用程序,可以在微信中直接运行。它提供了许多开发接口,使开发者可以使用微信的各种功能和服务。其中一个常用的功能是获取用户的昵称和头像。 在过去,开发者可以使用wx.getUserInfo接口获取用户的昵称和头像。然而,由于用户隐私保护的要求日益提高,微信团队对用户信息获取进行了限制。作为替代方案,微信团队推出了wx.getUserProfile接口wx.getUserProfile接口可以在用户同意授权的情况下获取用户的昵称和头像。开发者需要在button组件中设置open-type为getUserProfile,然后在button的bindgetuserinfo事件中获取用户信息获取用户信息后,可以通过e.detail.userInfo.nickName和e.detail.userInfo.avatarUrl分别获取用户的昵称和头像地址。 需要注意的是,wx.getUserProfile接口需要用户授权才能获取用户信息。在用户点击button后,会弹出授权界面,用户可以选择是否授权提供信息。如果用户授权,则可以获取用户的昵称和头像。如果用户拒绝授权,则无法获取用户信息。 总结来说,微信小程序最新获取用户昵称和头像的方式是使用wx.getUserProfile接口。开发者需要在button组件中设置open-type为getUserProfile,并在相应的事件中获取用户信息。授权后,可以通过e.detail.userInfo.nickName和e.detail.userInfo.avatarUrl获取用户的昵称和头像地址。同时,需要注意用户授权的情况,用户可以选择是否授权提供信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值