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

这篇具有很好参考价值的文章主要介绍了针对小程序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.getUserProfile 接口的小程序开发者和已使用 wx.getUserInfo 接口的插件开发者尽快适配。小游戏不受本次调整影响。

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

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

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

···// #ifdef MP

  const version = uni.getSystemInfoSync().SDKVersion

  if (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.detail

  this.$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本次分享调整的所有内容了!有不懂的地方可以在下方留言文章来源地址https://www.toymoban.com/news/detail-493259.html

到了这里,关于针对小程序wx.getUserProfile接口将被收回后做出的授权调整的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • wx.getUserProfile is not a function微信小程序报错

    在使用小程序wx.getUserProfile接口调用时报错:wx.getUserProfile is not a function  解决办法: 在微信开发者工具上打开详情,对调试基础库进行升级  OK了!

    2024年02月07日
    浏览(26)
  • 微信小程序授权登录wx.getUserProfile获取不到昵称及头像解决方案

    半年前做的个小程序,更新了二个文字,重新上传审核通过,悲剧了,新用户的昵称全部变为微信用户,头像全部变为默认头像,查了半天代码没找到原因,相当头大,搜了一下文档,尴尬了,11月9号新更新的规则,不再返回昵称和头像值....需要用头像昵称获取能力去触发获

    2024年02月11日
    浏览(31)
  • wx.getUserProfile 不出现弹窗

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

    2024年02月11日
    浏览(30)
  • 微信小程序获取用户信息(getUserProfile接口回收后)——通过头像昵称填写获取用户头像和昵称

    背景:最近在用uniapp写微信小程序授权登录的时候,发现项目在微信开发者工具中调试是正常的,但是在真机运行时,返回的用户数据中昵称变成了微信用户,头像变成了默认的灰底头像。接着去百度了一下发现出现这个问题的原因是getUserProfile接口被回收了,微信小程序基

    2024年02月11日
    浏览(44)
  • 小程序坑录-wx.getLocation接口申请

    最近在用uni-app通用框架做h5和小程序,结果在小程序审核的时候,又遇到了很多天坑,故记录之。 从2022 年 7 月 14 日开始,使用位置接口,就必须在app.json中进行声明了,除此之外,在正式使用时,还需要在开发管理-接口权限内进行申请,申请的原因,必须要覆盖以下这些内

    2024年02月12日
    浏览(28)
  • 微信小程序地理位置接口wx.getLocation接口申请方法技巧

    我们在开发微信小程序的时候,提交审核微信官方就会检测咱们的小程序有没有用到位置功能,涉及用到哪个位置接口,然后就会要求我们先申请相应的位置接口,审核通过后才可以发布小程序。 这个接口审核一直是让大家头痛的事情,有的小伙伴申请几十次都不给过,有时

    2024年02月13日
    浏览(29)
  • 微信小程序wx.getLocation接口审核不通过

    审核不通过的原因一般包含这几种: 一、当前提审小程序代码包中地理位置相关接口( wx.getLocation )暂未开通 分析原因:接口未开通。 解决方法:按下图申请开通对应的接口即可。 二、你所描述的小程序接口使用场景,目前未符合接入wx.getLocation(获取当前的地理位置、速度

    2024年02月09日
    浏览(36)
  • 微信小程序之实名认证人脸识别接口-wx.startFacialRecognitionVerify

    小程序前端使用人脸识别功能 绑定用户

    2024年02月11日
    浏览(28)
  • wx 小程序打开调试模式正常,不打开不正常(遇到调用接口)

    1 登录小程序,打开开发管理设置,上传相关域名 2 上传之前进行相关设置   3 在手机上一定要删除--在微信已有的小程序 (因为存在缓存问题--自己试了很多遍,结果没有发现任何变化)后来删除了已有小程序,重新扫码或下载安装--结果好了。

    2024年02月12日
    浏览(34)
  • 使用小程序的wx.request()请求chatGpt流式接口的实现

    使用小程序的中wx.request()请求chatGpt流式接口的实现 可以成功接收到数据,但是遇到了下面的问题,就是在接收的数据如果是中文会出现乱码,英文没有问题,可以正常解析出来。 大家有遇到这个问题吗,求解,求解…

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包