您现在的位置是: 首页 > 正能量的句子 正能量的句子

微信小程序获取昵称和头像失败_微信小程序获取昵称

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)

}

})

参考资料:

微信官方文档 - wx.getUserInfo

利用微信小程序扫码授权

问题:使用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以上时获取个人信息

参考: