您现在的位置是: 首页 > 文案大全 文案大全

微信小程序 获取头像_微信小程序获取头像昵称调低基础库

tamoadmin 2024-09-24 人已围观

简介1.微信授权四个头像满了怎么删title:利用微信小程序扫码授权date:2022-05-1311:09:09cover:技术微信小程序扫码授权背景想要使用微信扫码登录自己的网址,通过授权快速获取用户的昵称,头像功能由于没有企业认证账号,故只能通过微信小程序实现,体验地址源码原理利用微信小程序的动态创建场景码接口(创建短token的信息存储在服务端,而不需要大量信息存储在二维码里,实现授权流程客户

1.微信授权四个头像满了怎么删

微信小程序 获取头像_微信小程序获取头像昵称调低基础库

title:利用微信小程序扫码授权date:2022-05-1311:09:09cover:技术微信小程序扫码授权背景

想要使用微信扫码登录自己的网址,通过授权快速获取用户的昵称,头像功能由于没有企业认证账号,故只能通过微信小程序实现,

体验地址

源码

原理

利用微信小程序的动态创建场景码接口(创建短token的信息存储在服务端,而不需要大量信息存储在二维码里,实现授权

流程

客户端在请求,服务生成token,注册到认证服务

前端根据token,获取带场景值的二维码,并轮训该token状态

使用微信扫码,根据token获取应用信息并展示,在小程序授权登录,获取openid,nickname,avatorImg等信息

确认允许登录后,发送confirm请求,发送userInfo值

网络获取到该token对应的用户信息

流程图核心接口接口传参返回值说明getToken-token获取tokengetImgByTokentoken的arrayBuffer获取小程序码getInfoByTokentokenuserInfo获取用户信息statustoken-1|0|1-1表示为扫码,0表示已扫码未授权,1表示已经授权confirmnickName、openid,头像等-小程序的允许授权时确认的接口踩坑点scene长度为最大32字符,利用nodejs的uuid.v4生成的值超过32位

解决方案

uuid.v4().replace(/-/g,"").toUpperCase();生成二维码时,如果没有指定page字段可能会在页面里获取不到场景值(scene)

解决方案指定page:"pages/index/index"

getwxacodeunlimit接口成功直接返回buffer错误返回的是json,在axios中需要根据response的contentType来判断成功还是失败

解决方案

router.get("/getImgByToken",async(req,res)=>{const{access_token,expires_in}=awaitwechat.getAccessToken();constua=req.headers["user-agent"];consttoken=req.query.token;constenv=req.query.env;//env区分release发行版本trial体验版develop开发版//{url:"",method:"post",params:{access_token:access_token,},responseType:"arraybuffer",data:{scene:token,env_version:env||"trial",check_path:false,page:"pages/index/index",},}).then((response)=>{constisSuccess=response.headers["content-type"].includes("image");if(!isSuccess){console.log(response.data.toString("utf-8"));}else{res.type("png").send(response.data);}});});无论是wx.getUserProfile还是wx.getUserInfo无法静默获取userInfo,都需要授权弹窗登录,不过可以缓存信息

解决方案扫码进入之后onLoad就弹窗,并且存储场景值,允许拒绝授权之后再次

开发的时候场景值每次提交代码生成预览版本比较麻烦

解决方案在微信小程序开发工具里面添加条件编译,通过二维码编辑

原文: style="font-size: 18px;font-weight: bold;border-left: 4px solid #a10d00;margin: 10px 0px 15px 0px;padding: 10px 0 10px 20px;background: #f1dada;">微信授权四个头像满了怎么删

在微信开放平台官方公告中:

2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。

新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档: 《getUserProfile接口文档》

在微信开发者工具词库版本2.10.4之后getUserInfo获取的将是微信的拟名信息。

使用uniapp官方提供的uni.getUserProfile(OBJECT)接口

但是uni.getUserProfile是为了支持新版微信小程序获取个人信息的接口,如官方描述一样,该接口只支持打包为微信小程序并且微信基础词库为2.10.4以上时获取个人信息

参考: 微信授权四个头像满了的删除方法如下:

1、进入微信小程序的授权微信头像、昵称页面,任意找到一个没有登录过的小程序进入授权登录页面,但不要直接授权登录。

2、进入获取昵称头像页后,选择并长按头像,点击弹出的删除,申请页中可添加3个自定义的头像昵称。当头像添加满额时,页面中会提醒数量已达上限,无法新增。

3、头像删除成功,页面中显示使用其他头像和昵称,即可添加新的头像昵称等。