文章目录

  • 前言
    • 1.wx.login:
    • 2.wx.getUserInfo(应该是要废弃):
    • 3.wx.getUserProfile(重点推广,重点说明):
  • 总结

前言

本文转载于头条号:https://www.toutiao.com/i6977243571930055181/
虽然我是一个后端,但是是小程序刚出来的时候就开始学习并上线个人小程序的玩家,个人小程序有:小猪翻译、位置帮手、票票帮手 企业小程序:码农帮手、星家edu、飘飘诊断都是我个人开发的作品。小程序整个的体验确实比网页好,还能屏蔽操作系统,并且我个人的体会是特别适合后端程序员开发使用一些有用的工具。本篇我来介绍针对这半年至一年微信登录获取用户信息的调整,来帮助大家更好的梳理和完微信接口整改。

1.wx.login:

官网api说明地址:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
代码:

wx.login({success (res) {if (res.code) {//发起网络请求wx.request({url: 'https://example.com/onLogin',data: {code: res.code}})} else {console.log('登录失败!' + res.errMsg)}}
})

这个是干什么呢?就是使用此方法拿到临时code去自己的服务器后台(appId+秘钥)获取openId等用户的私密信息,openId的唯一获取渠道。此接口经常被开发者滥用,我之前开发也是在页面当中onLoad、onShow、onReady中调用,这样其实做了很多无用功,现在小程序规范要求是在小程序初始化事件onLaunch中调用一次即可,然后通过getApp()的全局变量去维护用户信息就可以。

2.wx.getUserInfo(应该是要废弃):

官方api文档地址:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html
之前的代码调用:

// 必须是在用户已经授权的情况下调用
wx.getUserInfo({success: function(res) {var userInfo = res.userInfovar nickName = userInfo.nickNamevar avatarUrl = userInfo.avatarUrlvar gender = userInfo.gender //性别 0:未知、1:男、2:女var province = userInfo.provincevar city = userInfo.cityvar country = userInfo.country}
})

官方最新的淘汰说明是:
为优化用户的使用体验,平台将进行以下调整:

2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID
2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。

3.wx.getUserProfile(重点推广,重点说明):

旧的获取用户信息的apiwx.getUserInfo的替代api为:wx.getUserProfile
官方api地址:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html
代码:

 getUserProfile(e) {// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认// 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗wx.getUserProfile({desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写success: (res) => {this.setData({userInfo: res.userInfo,hasUserInfo: true})}})},

这个是最新的用户信息的获取的api,其实很上面的2.wx.getUserInfo用法差不多。应用场景就是用户没有进行过头像和昵称授权的时候

<button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>

通过前端绑定此事件授权获取用户的最新昵称和头像,然后进行用户的信息操作。

总结

我不知道我上面介绍完是不是已经帮大家梳理清楚三个接口api的使用情况,总的来说流程就是:在小程序的启动事件onLaunch中进行wx.login通过code传递到后端获取openId,相当于用户登录操作,获取用户信息返回给前端。假入用户是初次登录或者想更新昵称和头像再进行wx.getUserProfile授权调用等。如果你有什么跟我交流的欢迎关注公众号:Java时间屋 进行交流。

微信开放接口getUserInfo、login、getUserProfile的爱恨情仇?相关推荐

  1. 如何基于微信开放接口开发企业的微信CRM

    业内一直都在传说微信是天生的 CRM,可是没有人看到过微信 CRM 的真容.随着微信最新公众平台的改版和开放接口的微信认证开放,微信 CRM 离企业越来越近.汉拓科技第一时间申请认证并对接了微信开放接 ...

  2. 如何基于微信开放接口开发企业的微信 CRM?

    一直说微信公众平台可以做CRM,但都说得很肤浅,这篇文章比较详细的做了说明,值得一读: 转自:http://www.geekpark.net/read/view/193267 By 黑板报值日生 |  ...

  3. html的爱恨情仇—部署HTMl5结婚微信电子请柬(含源码)

    html的爱恨情仇-部署HTMl5结婚微信电子请柬 这个是一个简单得html得结婚请柬效果图,是动态得,上面得文字可以更改,图片都可以更换,更主要得是部署简单,你值得拥有 献上效果图 背景 听老人说, ...

  4. Maven的爱恨情仇

    前言 在如今的互联网项目开发当中,特别是Java开发中,可以说Maven是随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven ...

  5. 前端后端的爱恨情仇--续集

    文章目录 前端妹子给我打电话了 Eolink 直呼真香 1. DTDD:文档与测试驱动开发 2. API研发测试天花板 3. 超强的Mock API 4. 隐秘又好用的小亮点 5 . 针对开发者比较友 ...

  6. 产品经理和程序员的爱恨情仇

    产品经理跪求程序员,程序员跪求程序成功上线! 前几天纯银V在微博上发了一条微博「很多人吐槽"人人都是产品经理"这句话,其实在我看来,这句话的正确理解是"人人都应该学习产品 ...

  7. 深度解析单例与序列化之间的爱恨情仇

    转载自 深度解析单例与序列化之间的爱恨情仇 本文将通过实例+阅读Java源码的方式介绍序列化是如何破坏单例模式的,以及如何避免序列化对单例的破坏. 单例模式,是设计模式中最简单的一种.通过单例模式可以 ...

  8. 同步通信和异步通信的爱恨情仇

    前言 一开始在学习JMS的时候,心中一直有一个疑惑,由于那时候对JMS的了解还不够深入,我当时很不理解传统的RPC远程过程调用和java消息服务有什么区别,他们两不都是在两个不同的分布式或者集群系统传 ...

  9. 借华为鸿蒙系统发布,谈谈操作系统的爱恨情仇发展史

    2019.08.09,华为在其全球开发者大会上,正式向全球发布了全新的自有系统 HarmonyOS 鸿蒙--基于微内核的面向全场景的分布式操作系统.余承东在现场表示, HarmonyOS 鸿蒙拥有分布 ...

最新文章

  1. 前端:jQuery对象和dom对象的转换
  2. 小学生python-小学生学python(三)
  3. java虚拟机6.HotSpot的GC实现
  4. OSI七层模型中每层的协议及网络设备—Vecloud微云
  5. JavaScript那些事儿-不被知晓的预解释
  6. c++ map用法_Pandas数据处理三板斧——map、apply、applymap详解
  7. 在WPF程序中使用多线程技术
  8. isinfinite_Java Double类isInfinite()方法与示例
  9. iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方...
  10. jupyter notebook python插件_Python文学化编程-Jupyter notebook使用和插件拓展
  11. update-apt-xapian-index 意外关闭
  12. 从吃喝玩乐到学习,71个良心网站,看完你会回来点收藏
  13. 在线流程图绘制网站gliffy
  14. 计算机二级证能落户嘛,有哪些二级技师证可以办理落户深圳 - 入户吐槽网
  15. NTC功率型热敏电阻
  16. 2022-06微软漏洞通告
  17. 计算机 蓝牙鼠标卡顿,蓝牙鼠标卡顿、漂移现象的解决方法
  18. 教你用Ossim平台检测网络的Shellcode攻击
  19. 网易云linux版本如何安装包,网易云音乐linux版下载-网易云音乐linux 安装包v1.1.0 官方版 - 极光下载站...
  20. 2022年软件设计师考试复习资料(1)

热门文章

  1. 拔刀剑服务器r87修复版,拔刀剑模组教程5:修复以及刀之耀魂
  2. 漫步者蓝牙自动断开_EdiCall通话降噪黑科技-漫步者蓝牙耳机技术有多强?
  3. 去中心化电商平台调研报告
  4. NFT 为何能够重塑艺术价值?
  5. COO 叶谦解读:《2017年全域互联网发展报告》
  6. 分享业余时间开发的一个影视采集及管理系统
  7. 泛微OA-一键清空明细表
  8. 【100%通过率】华为OD机试真题 Java 实现【羊、狼、农夫过河】【2022.11 Q4新题】
  9. 【Linux鸟哥笔记】20-启动流程、模块管理与Loader
  10. Java微服务架构有哪些功能?