您现在的位置是: 首页 > 正能量的句子 正能量的句子
微信小程序获取昵称和头像失败_微信小程序获取昵称
tamoadmin 2024-09-27 人已围观
简介1.利用微信小程序扫码授权2.uniapp 微信小程序授权登录getUserInfo获取不到用户的昵称和头像3.小程序新方法 open-type获取头像昵称4.uni-app通过getUserInfo获取的微信昵称为“微信用户”使用wx.getUserInfo(Object object),调用前需要 用户授权 scope.userInfo。示例代码// 必须是在用户已经授权的情况下调用wx.ge
1.利用微信小程序扫码授权
2.uniapp 微信小程序授权登录getUserInfo获取不到用户的昵称和头像
3.小程序新方法 open-type获取头像昵称
4.uni-app通过getUserInfo获取的微信昵称为“微信用户”
使用wx.getUserInfo(Object object),调用前需要 用户授权 scope.userInfo。
示例代码
// 必须是在用户已经授权的情况下调用
wx.getUserInfo({
success: function(res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //性别 0:未知、1:男、2:女
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
}
})
扩展资料
小程序用户信息组件示例代码
Page({
data: {
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
onLoad: function() {
// 查看是否授权
wx.getSetting({
success (res){
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
wx.getUserInfo({
success: function(res) {
console.log(res.userInfo)
}
})
}
}
})
},
bindGetUserInfo (e) {
console.log(e.detail.userInfo)
}
})
参考资料:
利用微信小程序扫码授权
问题:使用getuserInfo获取用户信息,不弹窗,且用户昵称返回“微信用户”,头像也是灰色的默认头像。
原因:微信放弃了 getUserInfo API,采用 getUserProfile 这个新的API获取用户信息。
详见官方文档: wx.getUserProfile(Object object) | 微信开放文档
uniapp 微信小程序授权登录getUserInfo获取不到用户的昵称和头像
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;">小程序新方法 open-type获取头像昵称但如今,却只能得到一个缺省的灰色头像,和nickname = “微信用户”,两个数据,其它的年龄以及地区等什么都没有,更别提授权弹出框了
查看官网如下图才知道API更新了:
style="font-size: 18px;font-weight: bold;border-left: 4px solid #a10d00;margin: 10px 0px 15px 0px;padding: 10px 0 10px 20px;background: #f1dada;">uni-app通过getUserInfo获取的微信昵称为“微信用户”
小程序自上线以来,官方一直在调整API,因此也出现了一批被废弃的接口,作为程序员的我们,此时此刻千万不能为这不断的变化而感到头疼,应当与时俱进,不断的更新自己的知识储备和应用技能。
以下是原公告:
为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。
开发者可使用以下方式获取或展示用户信息:
一、小程序
1、使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。
详情参考文档:
2、使用 open-data 展示用户基本信息。
详情参考文档:
wxml:
js:
效果如图所示:控制台之中打印出昵称,微信头像等个人信息。
wxml:
js:
效果如下:控制台之中打印出昵称,微信头像等个人信息。
在微信开放平台官方公告中:
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以上时获取个人信息
参考: