最新wx.getUserProfile 踩坑,正确的使用方法!

wx.getUserProfile 不出现弹窗 使用wx.getUserProfile 获取用户信息,但是不出现弹窗就直接获取到了用户信息,且返回灰色头像,和“微信用户”昵称。原来这个接口在22年5月的时候被回收了,低版本调试库才会正常显示,高版本则会返回灰色头像和默认的“微信用户”昵称。我的解决方法是手动加一个权限弹窗。 阅读详情
AI摘要

微信官方团队宣布从4月13日起,小程序不再支持wx.getUserInfo,开发者需使用wx.getUserProfile接口获取用户信息。wx.getUserProfile必须由用户手动触发,不能在wx.login回调中自动调用,否则会引发错误。正确做法是在按钮点击事件中调用wx.getUserProfile,然后依次进行登录、数据解密等操作。

微信官方团队发布了一个调整通知:《小程序登录、用户信息相关接口调整说明》,公告明确从4月13日起,新发布的小程序不能使用wx.getUserInfo,要用wx.getUserProfile替代

容易踩到的坑:

不能在调用 wx.login 等过程的回调函数中,自动调用 wx.getUserProfile 来触发授权行为,因为 wx.getUserProfile 只能由用户手动触发。否则,系统会抛出异常:error msg: getUserProfile:fail can only be invoked by user TAP gesture

wx.login和wx.getUserProfile正确使用代码:

//wxml
<button bindtap="getUserProfile"> 获取头像昵称 </button>
//getUserProfile 回调里面嵌套wx.login
getUserProfile{
    wx.getUserProfile({
        desc: '用于完善会员资料',
        success: function (userInfoRes) {
            //...

            //调用 wx.login 登录接口
            wx.login({
                success: function (res) {
                    //换取openid & session_key
                    wx.request({
                        url: wx.getStorageSync('domainName') + '/WxOpen/OnLogin',
                        method: 'POST',
                        header: { 'content-type': 'application/x-www-form-urlencoded' },
                        data: {
                            code: res.code
                        },
                        success: function (json) {
                            var result = json.data;
                            if (result.success) {
                                wx.setStorageSync('sessionId', result.sessionId);
                                //校验
                                wx.request({
                                    url: wx.getStorageSync('domainName') + '/WxOpen/CheckWxOpenSignature',
                                    method: 'POST',
                                    header: { 'content-type': 'application/x-www-form-urlencoded' },
                                    data: {
                                        sessionId: result.sessionId,//wx.getStorageSync('sessionId'),
                                        rawData: userInfoRes.rawData,
                                        signature: userInfoRes.signature
                                    },
                                    success: function (json) {
                                        console.log(json.data);
                                    }
                                });

                                //解密数据(建议放到校验success回调函数中,此处仅为演示)
                                wx.request({
                                    url: wx.getStorageSync('domainName') + '/WxOpen/DecodeEncryptedData',
                                    method: 'POST',
                                    header: { 'content-type': 'application/x-www-form-urlencoded' },
                                    data: {
                                        'type': "userInfo",
                                        sessionId: result.sessionId,//wx.getStorageSync('sessionId'),
                                        encryptedData: userInfoRes.encryptedData,
                                        iv: userInfoRes.iv
                                    },
                                    success: function (json) {
                                        console.log('数据解密:', json.data);
                                    }
                                });

                            } else {
                                console.log('储存session失败!', json);
                            }
                        }
                    })
                }
            })
        }
    });
}
微信小程序常用 API 微信小程序提供了丰富的 API,覆盖用户交互、数据处理、设备控制等多个场景。以下是常用 API 及其典型应用场景的详细说明:​。 阅读详情

相关推荐

【微信小程序】wx.login 和 wx.getUserProfile 同时使用问题

场景 在使用微信登录时,通常会在调用 wx.login 获取 code 后再通过 wx.getUserProfile 获取 iv 和 encryptedData (加密数据)一起发到后端进行登录验证; 但是,在实际使用中如果在 wx.login 方法调用后再调用 wx.getUserProfile 会报错; 官方解释 也就是说,不能在调用方法的回调中使用 wx.getUserProfule(); 解决方法 使用Promise.all()方法实现平级调用; Promise.all() 方法接收一个 pro

Jessieeeeeee的博客 3739

微信小程序getUserProfile详解,CRMEB系统修复流程

小程序所有新进用户的昵称全部变成了“微信昵称”,当时我就 吓得我赶紧爬起来翻文档(需要代码直接往后翻) wx.getUserProfile(Object object) 基础库 2.10.4 开始支持,低版本需做兼容处理。 获取用户信息。每次请求都会弹出授权窗口,用户同意后返回 userInfo。 getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息 即wx.getUserInfo接口的返回参数不变,但开发者获取的userIn

CRMEB小程序商城的博客 2415

微信小程序授权获取用户信息之wx.getUserInfo 切换到 wx.getUserProfile的使用(已弃用)

最近在做一个小程序的项目,需要微信授权获取用户信息(用户头像、昵称、性别及地区信息等),在微信小程序官方文档中查看这部分内容,由于一开始没有仔细看到已经被回收,于是,尝试使用进行授权获取用户信息时并不会有弹框,而是直接返回了用户信息,相信很多人也有同样的经历,在此总结一下解决方式。

fighting ~的博客 1万+

微信小程序wx.getUserProfile接口获取用户信息的使用

按钮去触发,而wx.getUserProfile是以弹框的方式去触发。去判断登录状态,而wx.getUserProfile是通过。1.以往wx.getUserInfo是通过。2.以往wx.getUserInfo是通过。

前端程序员、项目经理、人工智能博主 8779

记录一次微信小程序getUserProfile的踩坑经历

一、新注册的微信用户怎么昵称都变成了微信用户了? 最近我们公司的运营小姐姐反馈说小程序新注册的用户的昵称都是微信用户,而且头像也都是一张灰色的头像。以前能拿到的省市区也都没了。并且质问我们是不是我们开发人员在憋什么大招,搞出了一个BUG。 之前前端一直使用的wx.getUserInfo方法获取到的encryptedData传给服务端是一直可以解析到用户信息的,最近发现新注册的用户都变成了微信用户,灰色头像。 查看微信官方文档发现原来微信对getUserInfo接口做了调整,以及新增了一个getUs

Coding Earth Engine 3183

微信小程序 - 最新获取用户昵称 / 头像(wx.getUserProfile 接口被废弃后的代替方案)详细教程,2022 年之后的所有微信小程序,获取用户信息最新详细教程,附带示例源代码

微信小程序wx.getUserProfile接口废了用什么代替,微信小程序wx.getUserProfile不能用了怎么办,wx.getUserProfile失效有什么替代方案吗,微信新规定头像昵称填写最新教程,目前微信小程序最新获取用户头像昵称教程,微信小程序用户头像昵称获取规则调整公告,2022改版后的微信小程序如何获取用户头像和昵称信息,微信小程序官方废弃getUserProfile后如何实现获取用户信息,微信小程序wx.getUserProfile接口返回了默认头像昵称,微信小程序获取用户信息不

🏆 前端领域优质创作者 2万+

微信小程序最新wx.getUserProfile接口获取用户信息和登陆信息的方法,迭代wx.getUserInfo方法。

最近,微信小程序发布了新的版本,是关于用户信息的问题, 2021年4月13日后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像、昵称、性别与地区), 将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息), 获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。 这就需要我们之前的代码进行升级适配。 小程序登录、用户信息相关接口调整说明 更新方法: 在WXML内,使用bin

陈先生的博客 2万+

升级微信开发工具后,wx.getUserProfile失效报错wx.getUserProfile too frequently?

invoke wx.getUserProfile too frequently(env: Windows,mp,1.06.2503300; lib: 3.8.7)

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 531

关于小程序wx.getUserProfile接口

关于小程序wx.getUserProfile接口的调用 最近微信小程序对于审核小程序提出了带有wx.login、wx.getUserInfo接口的调整,并提出了一个新的接口供开发者调用 下图是对于新的接口的官方文档详情 点击前往官网查看更多详细信息 值得注意的是新的接口wx.getUserProfile,只能使用catchtap或者bindtap进行调用(ps:可以再wx.showmodel中使用),并不能再onload、onshow等位置直接调用,并且返回参数有所改变 下图是新的接口wx.getUse

qq_45221690的博客 4万+

别再手动下单了!用Python+EasyTrader+同花顺,5分钟搞定你的第一个自动化交易机器人

本文详细介绍了如何使用Python和EasyTrader结合同花顺客户端快速构建自动化交易机器人。从环境配置到实战脚本编写,涵盖自动打新、条件单、跟单策略等核心功能,并分享性能优化与风险控制技巧,帮助投资者高效实现自动化交易。

weixin_30381317的博客 398

AIDC供电系统与算电协同

AIDC供电系统的技术革新为算电协同提供了基础保障,而算电协同则是解决AIDC高能耗问题、推动数字经济可持续发展的关键路径

数据中心全生命周期价值管理 2570

微信小程序wx.getUserProfile接口的使用

导语—— 1.为什么要增加—getUserProfile接口 2.接口改变之后带来的影响 3.改版之后如何使用getUserProfile接口 1.为什么要增加getUserProfile? 曾经的微信开发者使用getUserinfo来获得用户的昵称、头像、地区等信息。然而有些开发者在开发的过程中, **getUserProfile微信开发者文档 ...

qq_49896911的博客 1万+

汇总药用数据库(Pubchem,bingdingDB,Chembl,ExcapeDB)数据

记载一下如何汇总4大数据库的数据

recher_He1107的博客 3394

wx.getUserProfile和wx.login一起使用

搬砖自:bwx.getUserProfile不能和wx.login一起使用? | 微信开放社区mac 模拟器1.05.2102010 基础库2.16.0调用wx.login获取code后,再调用wx.getUserProfile,可能会失败,触发fail函数,error msg: ''getUserProfile:fail can only be invoked by user TAP gesture"。如果不能同时使用,那如何校验用户信息的准确性或者解密encryptedData呢?https://dev

qq_48455605的博客 1365

Dify实战:智能邮件工作流配置全解析

本文详细解析了如何利用Dify平台配置智能邮件工作流,实现邮件处理的自动化与智能化。内容涵盖从获取邮箱授权、安装插件、安全配置环境变量,到构建邮件发送工作流、创建调用该工作流的智能体(Agent)的完整步骤,并分享了连接知识库实现智能客服、定时发送日报等进阶自动化场景,旨在帮助用户显著提升邮件处理效率。

t8u9v0w1x的博客 795

自然语言处理在智能客服系统中的应用

引言与背景 1.1 书籍的目的和内容概述 《自然语言处理在智能客服系统中的应用》旨在探讨自然语言处理(NLP)技术在智能客服系统中的应用,帮助读者理解NLP的核心概念及其在解决实际业务问题中的关键作用。随着人工智能技术的快速发展,自然语言处理成为构建智能客服系统的核心模块之一。本书将深入解析NLP

AI天才研究院 967

微信小程序授权登陆 wx.getUserProfile

https://blog.csdn.net/lhkuxia/article/details/115163985 1.将授权登陆获取用户信息的接口调整了,新增了一个wx.getUserProfile。特说明一下授权登陆的注意事项: 2.原授权登陆流程不变,依旧是 wx.login>>>code>>>请求接口换取openid>>>openid>>>自定义请求态>>>uid 只是获取用户信息的地方发生改变了,获取用户信息

weixin_49295874的博客 2万+

基于深度学习的水果新鲜程度检测系统(UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集)

本文详细介绍了如何使用YOLO系列模型(YOLOv5、YOLOv6、YOLOv7、YOLOv8)构建水果新鲜度检测系统。通过数据集准备、模型训练、推理过程以及UI界面的实现,我们能够构建一个实时检测水果新鲜度的系统。通过本博客,您可以全面了解如何应用深度学习技术解决实际问题,尤其是在智能监控和食品质量检测领域。

YOLO 815

小程序wx.getUserProfile怎么使用?wx.getUserProfile is not a function?

小程序wx.getUserProfile怎么使用 官方:2021年4月13日后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息 现在我们开始使用wx.getUserProfile来更换之前的wx.getUserInfo接口或 直接上代码 wxml: <button class="wxlogbtn" catchtap="newGetInfo">登录</button> js: newGetInfo: function (e) { wx.ge

1万+

基于阿里云物联网平台设计的实时图传系统_采用MQTT协议传输图像

当前基于MQTT协议设计了一个实时图传系统,通过这个项目来演示,两个MQTT设备如何互相订阅,进行消息流转。 在阿里云服务器上创建2个设备,分为为设备A和设备B;设备A负责采集本地摄像头画面上传,设备B负责接收设备A上传的数据然后解析显示出来。在阿里云服务器上需要配置云产品流转,让设备A的数据上传后自动发送给设备B。这样就完成了视频画面数据的流转。不过因为阿里云的最大数据限制,每次最大发送10240字节的数据。

1万+

【Burp入门第三十三篇】BurpSuite+Proxifier安装配置,实现微信小程序抓包

本文介绍Burp+Proxifier安装配置,实现微信小程序抓包

等风来 5873

wx.getUserProfile踩坑填坑大全,is not a function?fail can only be invoked by user TAP gesture?

随着wx.getUserProfile上线日期的临近,相信很多老铁都在加班修改wx.getUserProfile逻辑吧。 为了让老铁们在开发,调试,编码wx.getUserProfile过程中少踩些坑,特分享一些个人碰到的坑,记录如下,希望能抛砖引玉让更多大佬分享自己的一些经验: 一、开发调试wx.getUserProfile的环境 1、基础库要求: 2.10.4以及以上 2、正式环境要求:微信iOS,Android最新版APP上的小程序体验版,正式版都已经支持wx.getUserProfile,具体见下

上善若水-架构师编程乐园 6888

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

微信小程序开发 - wx.getUserProfile接口使用

前言 在用wx.getUserInfo接口的时候,发现获取的信息都是匿名从,比如微信名是:微信用户,头像直接就是黑白照。 害我以为是我自己代码写错了,后面查询了一下才发现这个接口早就更新了,默认是匿名的。具体看小程序登录、用户信息相关接口调整说明 所以以后获取用户信息,都要通过用户进行授权才可以!所以就用到了wx.getUserProfile这个接口了!其实与前面哪个差不多像! 使用方法 var that = this; //判断是否已经授权,这里用wx.getStorageSync储存,如果已

hanzi552200的博客 3946

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

微信小程序 wx.getUserProfile 接口(最佳实践)

一为优化用户的使用体验,微信官方平台将进行以下调整: 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则

源码好优多 4064

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

wx.getUserProfile 和 wx.getUserInfo 的区别

2021年4月份,微信小程序官方宣布阉割 wx.getUserInfo 的权限,不再返回真实的用户信息 主要的调整如下: 不再推荐使用 wx.getUserInfo 或 <button open-type="getUserInfo"/> 将不再弹出弹窗 不可获取用户个人信息(头像、昵称、性别与地区),将直接获取 匿名数据(包括userInfo与encryptedData中的用户个人信息) 获取加密后的 openID 与 unionID 数据的能力不做调整。 新增 wx.getUserProf

weixin_42289080的博客 1653

wx.getUserProfile is not a function

微信 wx.getUserInfo 与 wx.getUserProfile 对比 1.功能上是 wx.getUserInfo 不在返回用户授权的头像昵称,只返回匿名信息,但 wx.getUserProfile 会返回用户授权的头像昵称。 2.wx.getUserInfo 授权成功后,当下次调用时,可以直接获取授权成功返回数据,不需要每次都需要用户确认,但 wx.getUserProfile 每次都需要用户确认允许后才能拿到用户信息 3.对于业务来说,可以通过 wx.getUserProfile 获取用户

weixin_52943048的博客 3449
上一篇: 微信小程序 页面跳转总结
下一篇: 前端防抖js代码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光机上敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值