返回

教你轻松获取微信小程序用户头像与昵称,避免掉坑

前端

获取微信小程序用户头像和昵称的最新方法

在微信小程序开发中,获取用户头像和昵称是常见的需求,这些信息通常用于展示在个人中心或其他需要显示用户信息的地方。过去,开发者可以使用 wx.getUserInfo 接口获取用户头像和昵称,但由于个人信息保护和隐私合规的考虑,该接口已于 2021 年 4 月 28 日后不再提供该功能。

现在,开发者需要使用新的方法来获取用户头像和昵称。有两种方法:

1. 使用云开发

云开发提供了一个名为“云函数”的特性,开发者可以通过云函数来获取用户头像和昵称。

步骤:

  1. 在微信开发者工具中打开您的项目。
  2. 在“云开发”标签页中,点击“函数”选项卡。
  3. 点击“添加函数”按钮,然后选择“从模板创建”。
  4. 在“模板选择”对话框中,选择“获取用户头像和昵称”模板。
  5. 点击“确定”按钮,即可创建云函数。

代码示例:

const cloud = require('wx-server-sdk')

exports.main = async (event, context) => {
  const { userInfo } = event

  // 获取用户头像和昵称
  const avatarUrl = userInfo.avatarUrl
  const nickName = userInfo.nickName

  // 返回头像和昵称
  return {
    avatarUrl,
    nickName
  }
}

2. 使用开放数据

开放数据是微信小程序提供的一项特性,允许开发者在不获取用户授权的情况下,获取用户的某些基本信息,包括头像和昵称。

步骤:

  1. 在微信开发者工具中打开您的项目。
  2. 在“项目设置”中,找到“开放数据”选项卡。
  3. 在“开放数据”选项卡中,勾选“头像”和“昵称”复选框。
  4. 点击“保存”按钮。

代码示例:

wx.getOpenData({
  success: (res) => {
    const avatarUrl = res.data.avatarUrl
    const nickName = res.data.nickName
  }
})

注意事项:

  • 使用开放数据获取用户头像和昵称时,用户需要授权才能获取信息。
  • 用户可以随时撤销授权。
  • 获取到的头像和昵称可能是低质量的。

无论您选择哪种方法来获取用户头像和昵称,都应该确保在使用这些信息之前获得用户的授权。

结论

以上两种方法都可以帮助开发者获取微信小程序用户头像和昵称。开发者可以根据自己的需求选择合适的方法。云开发方法更加灵活,可以获取更高质量的头像和昵称,但需要云函数的支持。开放数据方法更简单,但获取到的头像和昵称质量可能较低。

常见问题解答

  1. 为什么 wx.getUserInfo 接口不再可用?
    答:为了保护用户隐私,微信已不再提供该接口获取用户头像和昵称。

  2. 云开发和开放数据有什么区别?
    答:云开发需要云函数的支持,可以获取更高质量的头像和昵称,而开放数据不需要云函数的支持,但获取到的头像和昵称质量可能较低。

  3. 获取用户头像和昵称时需要用户授权吗?
    答:使用开放数据获取用户头像和昵称时需要用户授权,而使用云开发获取不需要用户授权。

  4. 用户可以撤销授权吗?
    答:用户可以随时撤销授权,如果用户撤销了授权,开发者将无法获取用户头像和昵称。

  5. 如何获得高清晰度的头像和昵称?
    答:使用云开发方法可以获得高清晰度的头像和昵称。