使用用户授权方式获取微信头像昵称

使用用户授权方式获取微信头像昵称

注:以uniapp为例,部分写法与原生微信有所不同

老版本

可直接通过wx.getUserProfile的方式获取用户信息,然后填充头像和昵称,但在2022 年 10 月 25 日已被回收,返回信息为默认灰色头像和昵称:'微信用户',

以下方式仅针对开发调试,不上线的情况:

在微信开发者工具中:右上角详情 -> 本地设置 -> 调试基础库-> 选择2.21.2~2.27.0之间的版本-> 推送-> 确定

设置后可在开发版本使用这种方式获取用户信息

参考文档:小程序用户头像昵称获取规则兼容文档

typescript 复制代码
<image class="img" :src="userInfo.avatarUrl ? userInfo.avatarUrl : '/static/images/headers.jpg'" @click="getUser"></image>
<text>{{ userInfo.nickName || '未登录' }}</text>
​
getUser() {
    wx.getUserProfile({
    desc: '用于完善用户信息', // 新版已弃用,只能获取默认头像和昵称,然后onChooseAvatar方法获取头像
    success: (res) => {
        console.log(res)
        this.userInfo = res.userInfo;
        this.nickname = this.userInfo.nickName;
    }
  })
},

新版本

参考文档:头像昵称填写能力及对应原生写法

头像

需要将 button 组件 open-type 的值设置为 chooseAvatar,当用户选择需要使用的头像之后,可以通过 bindchooseavatar(对应uniapp中的写法如下) 事件回调获取到头像信息的临时路径。

昵称

需要将 input 组件 type 的值设置为 nickname,当用户在此input进行输入时,键盘上方会展示微信昵称

ini 复制代码
<button v-if="userInfo.avatarUrl" class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
    <image class="img" :src="userInfo.avatarUrl ? userInfo.avatarUrl : '/static/images/headers.jpg'"></image>
</button>
<input type="nickname" @blur="handleBlur()" :focus="focus" v-model="nickname">
javascript 复制代码
// 获取微信头像
onChooseAvatar(e) {
    this.userInfo.avatarUrl = e.detail.avatarUrl; //头像地址
    uni.setStorageSync("avatarUrl",this.avatarUrl)
},
// 获取用户昵称
handleBlur() {
    if(this.nickname==''){
        uni.showToast({
            title:"不能为空",
            icon:'error'
        })
    }else{
        this.isEdit = false
    }
},

另外

wx.authorize方法中的scope.userInfo也不能再使用,

通过wx.createUserInfoButton弹出用户授权是小游戏 的方法,不是小程序!!!

可以使用的部分参考文档:用户授权列表

相关推荐
admin and root2 天前
「移动安全」安卓APP 反编译&frida脱壳技巧分享
android·开发语言·python·web安全·微信小程序·移动安全·攻防演练
m0_462803883 天前
【无标题】
微信小程序
码农学院4 天前
微信小程序云开发实战:扫码点餐系统的高并发订单处理与外卖接单架构
微信小程序·架构·notepad++
这是个栗子5 天前
uni-app 微信小程序开发:常用函数总结(一)
微信小程序·小程序·uni-app·getcurrentpages
爱勇宝6 天前
上线 20 多天后,我才发现小程序的图片上传一直不可用
微信小程序·智能小程序
万亿少女的梦1687 天前
基于微信小程序、Spring Boot与Vue3的智慧养老管理系统设计与实现
spring boot·redis·微信小程序·mybatis·vue3
alxraves8 天前
零代码AI助手:用大模型自动生成微信小程序界面与逻辑
人工智能·微信小程序·notepad++
秃头披风侠_郑8 天前
【uniapp】一文让你学会微信小程序+APP+H5全平台实战指南
前端·微信小程序·uni-app
爱勇宝9 天前
一个家庭成长小程序的 MVP 复盘:看到用户在用我很欣慰
微信小程序·产品·设计
这是个栗子10 天前
uni-app微信小程序开发:高频核心 API(三)
微信小程序·小程序·uni-app