针对小程序wx.getUserProfile接口将被收回后做出的授权调整

小程序文档中提出的调整说明

调整说明:

自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整:

自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。

自生效期起,插件通过 wx.getUserInfo 接口获取用户昵称头像将被收回:生效期后发布的插件新版本,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的插件版本不受影响,但如果要进行版本更新则需要进行适配。通过 wx.login 与 wx.getUserInfo 接口获取 openId、unionId 能力不受影响。

「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持),具体实践可见下方《最佳实践》。

小程序 wx.getUserProfile 与插件 wx.getUserInfo 接口兼容基础库 2.21.2 以下版本的头像昵称获取需求:上述「头像昵称填写能力」从基础库 2.21.2 版本开始支持(覆盖微信 8.0.16 以上版本)。对于来自更低版本的基础库与微信客户端的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将返回用户头像昵称,开发者可继续使用以上能力做向下兼容。

对于上述 3,wx.getUserProfile 接口、wx.getUserInfo 接口、头像昵称填写能力的基础库版本支持能力详细对比见下表:

在这里插入图片描述

*针对低版本基础库,兼容处理可参考 兼容文档

请已使用 wx.getUserProfile 接口的小程序开发者和已使用 wx.getUserInfo 接口的插件开发者尽快适配。小游戏不受本次调整影响。

对于此次调整现将小程序授权方式做以调整

添加判断当前基础库是否支持头像昵称填写能力

在根目录App.vue中加入判断基础库是否大于2.21.2版本(大于此版本支持头像/昵称填写能力)

···// #ifdef MPconst version = uni.getSystemInfoSync().SDKVersionif (Routine.compareVersion(version, '2.21.3') >= 0) {console.log(version)that.$Cache.set('MP_VERSION_ISNEW', true)} else {that.$Cache.set('MP_VERSION_ISNEW', false)}// #endif

2.修改/pages/users/wechat_login.vue文件

(1) 在data中加入基础库判断,决定授权逻辑

mp_is_new: this.$Cache.get('MP_VERSION_ISNEW') || false 

(2) dom中新增逻辑判断,对基础库版本进行判断,调用不同的方法

<!-- #ifdef MP --><button hover-class="none" v-if="mp_is_new" @tap="userLogin"class="bg-green btn1">{{$t(`微信登录`)}}</button><button v-else-if="canUseGetUserProfile && code" hover-class="none" @tap="getUserProfile"class="bg-green btn1">{{$t(`微信登录`)}}</button><button v-else hover-class="none" open-type="getUserInfo" @getuserinfo="setUserInfo"class="bg-green btn1">{{$t(`微信登录`)}}</button><!-- #endif -->

(3)methods中加入方法userLogin

// 小程序 22.11.8日删除getUserProfile 接口获取用户昵称头像userLogin() {Routine.getCode().then(code => {uni.showLoading({title: this.$t(`正在登录中`)});authLogin({code,spread_spid: app.globalData.spid,spread_code: app.globalData.code}).then(res => {if (res.data.key !== undefined && res.data.key) {uni.hideLoading();this.authKey = res.data.key;this.isPhoneBox = true;} else {uni.hideLoading();let time = res.data.expires_time - this.$Cache.time();this.$store.commit('LOGIN', {token: res.data.token,time: time});this.getUserInfo()}})}).catch(err => {console.log(err)});},

3.新增用户头像/昵称获取能力

(1)调整pages/users/user_info.vue文件

data中新增

 mp_is_new: this.$Cache.get('MP_VERSION_ISNEW') || false 

(2)调整dom中

<view class='item acea-row row-between-wrapper'><view>{{$t(`头像`)}}</view><view class="avatar-box" v-if="!mp_is_new" @click.stop='uploadpic'><image :src="userInfo.avatar"></image></view><button v-else class="avatar-box" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"><image :src="userInfo.avatar"></image></button></view><view class='item acea-row row-between-wrapper'><view>{{$t(`昵称`)}}</view><view class='input'><input type='nickname' name='nickname' :value='userInfo.nickname'></input></view></view>

(3)methods中加入方法,获取当前微信用户的头像,并上传至服务器。

onChooseAvatar(e) {const {avatarUrl} = e.detailthis.$util.uploadImgs('upload/image', avatarUrl, (res) => {this.userInfo.avatar = res.data.url}, (err) => {console.log(err)})},

这里有一个公共方法uploadImgs需要在/utils/util.js中添加

uploadImgs(uploadUrl, filePath, successCallback, errorCallback) {let that = this;uni.uploadFile({url: HTTP_REQUEST_URL + '/api/' + uploadUrl,filePath: filePath,fileType: 'image',name: 'pics',formData: {'filename': 'pics'},header: {// #ifdef MP"Content-Type": "multipart/form-data",// #endif[TOKENNAME]: 'Bearer ' + store.state.app.token},success: (res) => {uni.hideLoading();if (res.statusCode == 403) {that.Tips({title: res.data});} else {let data = res.data ? JSON.parse(res.data) : {};if (data.status == 200) {successCallback && successCallback(data)} else {errorCallback && errorCallback(data);that.Tips({title: data.msg});}}},fail: (err) => {uni.hideLoading();that.Tips({title: i18n.t(`上传图片失败`)});}})},

以上就是CRMEB本次分享调整的所有内容了!有不懂的地方可以在下方留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53853.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【微信小程序】图片违法违规内容鉴别

微信小程序通过云调用校验一张图片是否含有违法违规内容。官方参考文档 选择图片 wx.chooseImage({count: 6,sizeType: [compressed], // 可以指定是原图还是压缩图&#xff0c;默认二者都有sourceType: [album, camera], // 可以指定来源是相册还是相机&#xff0c;默认二者都…

小度智能音箱=高灵敏度窃听器

智能音箱的运行原理&#xff1a;录制用户房间的声音&#xff0c;上传至百度语音识别服务器&#xff0c;语音识别服务器根据识别结果向用户反馈相应的语音内容。 手机APP无时不刻都在窃取用户信息&#xff0c;那么智能音箱呢&#xff1f; 智能的音箱的原理决定着音箱自身无时不…

小度和天猫精灵哪个好?这次我站小度

之前家里已经有一个天猫精灵了在客厅&#xff0c;想买一个智能音箱放在卧室&#xff0c;然后就入手了一个小度在家。以前只有一个音箱没有对比&#xff0c;也就没有伤害&#xff0c;但是两个音箱都在家使用&#xff0c;才知道原来还是小度在家要好很多。 首先就说音质吧&…

亲测89元小度智能音箱,这或许是国民级智能音箱应有的姿态

作者&#xff5c;震霆 出品&#xff5c;遇见人工智能 公众号&#xff5c;GOwithAI 会场突然好一阵躁动&#xff0c;仔细一看&#xff0c;原来是蔡康永来了&#xff01; ▲图注&#xff1a;蔡康永现身“小度智能音箱发布会” 他来干嘛&#xff1f;难道不是走错…

小度C1可以改语言吗,小度音箱怎么更改唤醒词

小度音箱行业版2.3.6安卓版 类型&#xff1a;生活服务大小&#xff1a;13.6M语言&#xff1a;中文 评分&#xff1a;5.0 标签&#xff1a; 立即下载 小度音箱是通过语音进行唤醒的&#xff0c;唤醒词是默认的&#xff0c;用户说唤醒词来唤醒小度音箱&#xff0c;有小伙伴想更改…

大学里挂了一科MySQL_那些在大学中,学生容易“挂科”的科目,学生:挂柯南也帮不了我...

文/ 高中时期的课业繁重&#xff0c;为了考上家长和老师口中&#xff0c;大学中的“伊甸园”&#xff0c;为此很多学生不得不背负沉重的学习压力努力向前。 记得上高中的时候&#xff0c;上学的压力很大&#xff0c;而家长和老师总是将大学描绘的“生动多彩”。于是我们看着理想…

linux shell两条命令,Linux最常用的18个Shell命令

有些人仍然会有这中愚蠢的想法&#xff0c;他们认为使用Linux就必须使用Linux shell命令。胡说&#xff01;你可以不懂得任何Linux命令&#xff0c;比如说ps&#xff0c;grep&#xff0c;ls等&#xff0c;但是你仍然可以使用很多现代的Linux桌面发行版。 Linux的系统管理员与桌…

c语言游标使用案例,深入显出数据结构C语言版(6)——游标数组及其实现

深入浅出数据结构C语言版(6)——游标数组及其实现 在前两次博文中&#xff0c;我们由表讲到数组&#xff0c;然后又由数组的缺陷提出了指针式链表(即http://www.cnblogs.com/mm93/p/6576765.html中讲解的带有next指针的链表)。但是指针式链表也不是完美无缺的&#xff0c;在某些…

华为谷歌android 6.0是什么,盘点那些用上Android 6.0的手机

目前市面上大多数智能手机运行的都是Android系统&#xff0c;这些年来Android系统也是在不断地升级中。终于在今年的9月30日&#xff0c;广大用户迎来了Android 6.0版本&#xff0c;这个代号为棉花糖的新系统在UI设计和系统交互方面做出了很大的提升。 不过&#xff0c;大家也都…

测试自动化面试题

Python python有哪些数据类型? Python支持多种数据类型&#xff0c;包括以下常见的数据类型&#xff1a; 数字类型&#xff1a;整数&#xff08;int&#xff09;、浮点数&#xff08;float&#xff09;和复数&#xff08;complex&#xff09;。 字符串类型&#xff1a;由字…

视频自动生成字幕VideoSrt

软件介绍 这是一个可以识别视频语音自动生成字幕SRT文件的开源软件工具。适用于快速、批量的为媒体&#xff08;视频/音频&#xff09;生成中/英文字幕、文本文件的业务场景。 软件截图 GitHub https://github.com/wxbool/video-srt-windows

Video Caption(跨模态视频摘要/字幕生成)

Video Caption 视频摘要/视频字母生成属于多模态学习下的一个子任务&#xff0c;大体目标就是根据视频内容给出一句或多句文字描述。所生成的caption可用于后续的视频检索等等&#xff0c;也可以直接帮助智能体或者有视觉障碍的人理解现实情况。 典型的架构如上图&#xff08;图…

视频批量添加滚动字幕,我1分钟就搞定了

最近有很多朋友在问&#xff0c;如何剪辑视频&#xff0c;比如给多段视频添加滚动字幕&#xff0c;该如何实现呢&#xff0c;下面随小编一起来试试&#xff0c;希望能给大家带来帮助。 材料准备&#xff1a; 一台Win系统的电脑 视频素材若干 步骤演示&#xff1a; 打开【媒体…

如何根据音频转文字自动给视频加字幕

2020年2月更新&#xff1a;目前这款软件已经变成收费软件&#xff0c;须知&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 可以考…

android访问服务器405,Http 405 错误

因为现在都用的spring配置的&#xff0c;很少用到servlet了&#xff0c;今天想写一个demo,结果报了一个405的错误.....................真的是打扰了....... 405概念 请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接…

让数字人出圈的技术秘籍,华为率先公开了

明敏 萧箫 发自 凹非寺量子位 | 公众号 QbitAI 在刚刚结束的2022华为开发者大会&#xff08;HDC2022&#xff09;上&#xff0c;升级版的手语数字人再次亮相&#xff0c;为大会的主题演讲进行了实时翻译。 相较去年HDC&#xff0c;手语数字人不仅在形象上有了优化&#xff0c;覆…

马斯克组织Code Review,并晒出推特架构图?其代码能力被低估了

近日&#xff0c;马斯克前往 Twitter 总部大楼和工程师团队进行了 code review&#xff0c;并在结束后晒出了合照&#xff0c;以及 Twitter 的系统架构图。 当然这不是 Twitter 的整体架构图&#xff0c;主要是展示了 Timeline 部分的架构&#xff0c;其中关键的组件是 Timelin…

组织变革方法论:华为从IBM得到的关键启示

1998年&#xff0c;华为在IBM顾问帮助下启动了长达十年&#xff0c;以IPD为先导的组织变革&#xff0c;这是当时IBM给到华为的变革管理方法论。今天读来&#xff0c;对中国企业的组织变革依然具有很强的参考价值。 01 业务变革的背景 90年代初&#xff0c;新系统观及高速发展的…

向98年的华为学习:没有高管办公室的青铜器软件

1995~1998华为走上快车道&#xff0c;98年华为的销售额为89亿人民币&#xff0c;员工7000人&#xff0c;公司所有副总裁级别的人都没有独立办公室&#xff0c;也只是在偌大办公室后排&#xff0c;拥有一张简陋的办工桌而已。 如下文章摘抄自&#xff1a;《军工文化》 因为笔者…

华为干部分类赋能手册(珍藏)

战略决定人才配置&#xff0c;战略转型和业务发展意味着人才能力升级&#xff0c;人才是支撑战略实现的第一要素。 通常在不同的时代背景下和企业发展阶段&#xff0c;人力资源都会被赋予不同的使命和责任&#xff0c;在新的时代背景下&#xff0c;组织和个体的关系也发生了根本…