最新微信小程序一键获取真实微信头像和昵称方法

使用公开免费插件,快速实现获取用户头像和昵称,已附uniapp、微信开发工具开发详细教程。


前言

        为了保护用户隐私,wx.getUserInfo、wx.getUserProfile都没法获取到用户头像和昵称了,只能通过设计用户主动选择/输入形式,操作非常麻烦,而且可能获取到的是非真实头像和昵称,失去了获取意义。很多小程序的业务功能需要微信头像和昵称实现一定的社交性质,或者方便用户相互间的识别,接下来给大家介绍一个实现方法,详细可靠。

效果展示

点击登录后,会自动跳转提示使用“安全注册”插件服务,点击允许使用,就可以获取到用户真实的微信头像和昵称了~

              

一、申请插件

1.进入小程序管理后台(微信公众平台登录),点击左下角菜单->账号设置

2、点击第三方设置->插件管理->添加插件

3、搜索《安全注册》或者《微注册》,添加

注:《安全注册》插件,只能更改对话框的标题和内容,对话框按钮“取消”“登录”无法自定义;《微注册》插件灵活性更高,除可自定义标题和内容,还可以自定义按钮的文字内容和颜色,以及按钮的背景颜色,可根据自己需要添加需要的插件。

4、使用插件的小程序需要增加服务类目 工具->办公(插件服务类目为 工具->办公),否则可能无法正常调用插件

至此,已完成插件的关联,下面可以在开发中使用了。

二、使用插件

1.Uniapp使用方法

(1)在manifest.json中引入插件(源码视图):

    "mp-weixin" : {"appid" : "你的小程序appid","plugins" : {"loginplugin" : {//这里引用了登录插件,复制此部分"version" : "latest",//以下二选一,微注册灵活性更高,小程序要先添加插件"provider" : "wxc7b7f914565de923"//插件:安全注册"provider" : "wx12251485dfaf24d3"//插件:微注册}},"setting" : {"urlCheck" : false},"usingComponents" : true,"permission" : {}},

(2)在具体的page页面使用插件(只有需要使用登录功能的页面才需要引用):

举例:我的小程序设计时,在个人中心(pages/mine/mine)页面需要使用到用户登录功能,那么我就在这个页面需要使用这个插件。

{"path" : "pages/mine/mine","style" : {"navigationBarTitleText" : "个人中心","enablePullDownRefresh": false,"mp-weixin":{"usingComponents": {"login": "plugin://loginplugin/login"}}}
}

 (3)正式使用组件

<template><view><login class="login-modal" :modal="modal" @success="loginSuccess" @fail="loginFail" @cancel="loginCancel" v-show="login_show"></login><view class="user-area">用户业务部分</view></view>
</template><script>export default {data() {return {login_show: true, //控制登录提示是否显示modal://弹窗内容定义{title: '用户登录',  //弹窗标题内容content: '授权登录后,开始使用完整功能',  //弹窗提示内容//以下配置仅《微注册》插件支持confirmText: '更新',  //确认按钮文字内容,非必填,默认“登录”,cancelText: '暂不',  //取消按钮文字内容,非必填,默认“取消”confirmStyle: {  //确认按钮文字颜色和按钮背景色,非必填color: '#000000',    //文字颜色backgroundColor: '#FFFFFF'   //背景颜色},cancelStyle: {  //取消按钮文字颜色和按钮背景色,非必填color: 'red',     //文字颜色backgroundColor: '#FFFFFF'   //背景颜色}}}},onShow() {},methods: {loginSuccess (res) {//登录成功回调console.log(res);this.login_show = false;//登录成功后,关闭登录弹窗let _Info = res.target.res;//_Info.avatarUrl:用户头像地址//_Info.nickName:用户昵称//用户可以将获取到的头像和地址存储到服务器保存,下次就不用再次登录了上传用户信息到服务器,并标记用户已登录},loginFail (res) {//登录失败回调console.log(res);this.login_show = false;//某些手机端会出现登录失败情况,针对这部分的用户,如果业务需要登录后才能使用,建议这里按照登录成功处理,否则该类用户无法进入登录状态上传用户信息(默认头像和昵称)到服务器,并标记用户已登录},loginCancel (res){//用户取消登录回调console.log(res);this.login_show = false;}}}
</script><style lang="less">.login-modal{position: fixed;top: 0;z-index: 99999999;width: 100%;height: 100%;background-color: #00000098;}
</style>

注意:极少用户反馈登录会出现失败情况(大概率微信版本问题),失败会执行loginFail回调函数,如果你的业务需要登录后才能正常使用,这里建议登录失败的直接认为用户登录成功操作,否则用户可能始终无法登录成功,导致丢失这部分用户(经验总结哦)。

2.微信开发者工具使用方法

(1)在app.json中引入插件:

{...."plugins": {"loginplugin": {"version": "latest",//以下二选一,微注册灵活性更高,小程序要先添加插件"provider" : "wxc7b7f914565de923"//插件:安全注册"provider" : "wx12251485dfaf24d3"//插件:微注册}},.....
}

(2)在具体的page页面使用插件(只有需要使用登录功能的页面才需要引用):

举例:我的小程序设计时,在个人中心(pages/mine/mine)页面需要使用到用户登录功能,那么我就在mine.json文件中使用这个插件。

{"navigationBarTitleText": "个人中心","enablePullDownRefresh": false,"usingComponents": {"login": "plugin://loginplugin/login"}
}

 (3)正式使用组件

//mine.wxml
<view><login class="login-modal" modal="{{modal}}" bind:success="loginSuccess" bind:fail="loginFail" bind:cancel="loginCancel" wx:if="{{login_show}}"></login><view class="user-area">用户业务部分</view>
</view>//mine.js
export default {data: function data() {return {login_show: true, //控制登录提示是否显示modal://弹窗内容定义{title: '用户登录',  //弹窗标题内容content: '授权登录后,开始使用完整功能'  //弹窗提示内容//以下配置仅《微注册》插件支持confirmText: '更新',  //确认按钮文字内容,非必填,默认“登录”,cancelText: '暂不',  //取消按钮文字内容,非必填,默认“取消”confirmStyle: {  //确认按钮文字颜色和按钮背景色,非必填color: '#000000',    //文字颜色backgroundColor: '#FFFFFF'   //背景颜色},cancelStyle: {  //取消按钮文字颜色和按钮背景色,非必填color: 'red',     //文字颜色backgroundColor: '#FFFFFF'   //背景颜色}}};},onShow() {},methods: {loginSuccess: function loginSuccess(res) {//登录成功回调console.log(res);this.login_show = false;//登录成功后,关闭登录弹窗let _Info = res.target.res;//_Info.avatarUrl:用户头像地址//_Info.nickName:用户昵称//用户可以将获取到的头像和地址存储到服务器保存,下次就不用再次登录了上传用户信息到服务器,并标记用户已登录},loginFail: function loginFail(res) {//登录失败回调console.log(res);this.login_show = false;//某些手机端会出现登录失败情况,针对这部分的用户,如果业务需要登录后才能使用,建议这里按照登录成功处理,否则该类用户无法进入登录状态上传用户信息(默认头像和昵称)到服务器,并标记用户已登录},loginCancel: function loginCancel(res){//用户取消登录回调console.log(res);this.login_show = false;}}
}//mine.wxss
.login-modal{position: fixed;top: 0;z-index: 99999999;width: 100%;height: 100%;background-color: #00000098;
}

注意:极少用户反馈登录会出现失败情况(大概率微信版本问题),失败会执行loginFail回调函数,如果你的业务需要登录后才能正常使用,这里建议登录失败的直接认为用户登录成功操作,否则用户可能始终无法登录成功,导致丢失这部分用户(经验总结哦)。

总结

这样就可以获取到真实的微信用户头像和昵称了,使用虽然没有最开始微信的接口方便,但是比现在的方式方便多了。

提示:《安全注册》插件和《微登录》插件均为免费直接可用插件,部分用户可能会有开屏广告,介意慎用;《安全注册服务》插件为付费版,插件需要申请,通过才能使用,¥69/小程序永久授权。

如有使用问题,欢迎添加qq:2352695728 交流,有空看到就回,欢迎转载,转载请注明出处。

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

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

相关文章

路由器配置之模式

文章目录配置路由器时&#xff0c;有一个模式选择最佳实践各个选项的区别11b only11g only11n only11bg mixed11bgn mixed配置路由器时&#xff0c;有一个模式选择 最佳实践 • 追求速度&#xff1a;选 11n only&#xff08;需所有设备支持&#xff09;。 • 兼容性优先&…

评测系统构建

合成数据更“科研驱动”&#xff0c;强调 controllability 和 generalization evaluation&#xff1a; 之前往往直接采用经典数据集如OGB和OGB-large提供的经典数据集和数据划分思路 该思想从现有真实数据中学习参数&#xff0c;再构造类似但分布略异的数据集&#xff0c;验证模…

【计算机网络面试】TCP/IP网络模型有哪几层

参考&#xff1a; 2.1 TCP/IP 网络模型有哪几层&#xff1f; | 小林coding | Java面试学习 以下为自己做的笔记 应用层 专注于为用户提供应用功能&#xff0c;如HTTP、FTP、Telnet、DNS、SMTP等。应用层不关心用户是怎么传输的&#xff0c;当两个设备间的应用需要通信时&…

3 种方式玩转网络继电器!W55MH32 实现网页 + 阿里云 + 本地控制互通

目录 1 前言 2 项目环境 2.1 硬件准备 2.2 软件准备 2.3 方案图示 3 例程修改 4 功能验证 5. 总结 1 前言 HTTP&#xff08;超文本传输协议&#xff0c;HyperText Transfer Protocol&#xff09;是一种用于分布式、协作式、超媒体信息系统的应用层协议&#xff0c; 基于 TCP/IP…

第四篇:科技封锁与文化渗透篇——T-501 与 M-208 双引擎布局(节奏增强版)

科技封锁与文化渗透篇——T-501 与 M-208 双引擎布局&#xff08;节奏增强版&#xff09; 引子 在全球竞争中&#xff0c;光有资本和市场远远不够。 • 科技封锁&#xff08;T-501&#xff09;&#xff1a;通过技术标准、专利网络、供应链控制&#xff0c;让对手进入成本极高的…

python实现梅尔频率倒谱系数(MFCC) 除了傅里叶变换和离散余弦变换

语音识别第4讲&#xff1a;语音特征参数MFCC https://zhuanlan.zhihu.com/p/88625876/ Speech Processing for Machine Learning: Filter banks, Mel-Frequency Cepstral Coefficients (MFCCs) and What’s In-Between https://haythamfayek.com/2016/04/21/speech-processing-…

springBoot+knife4j+openapi3依赖问题参考

pom文件附带版本<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.12</version></parent><dependencies><!-- SpringDoc starter --><d…

XML DOM 高级

XML DOM 高级 引言 XML DOM(Document Object Model)是用于解析和操作XML文档的一种标准,它允许开发者通过编程方式访问和修改XML文档的内容。本文将深入探讨XML DOM的高级特性,包括XML解析、节点操作、事件处理以及性能优化等,帮助读者全面理解并掌握XML DOM的高级应用。…

「第18讲 内容生成应用场景与多语言支持」AI Agent开发与应用:基于大模型的智能体构建

第18讲核心内容概述内容生成应用场景营销文案生成&#xff1a;基于产品特征自动生成广告语、社交媒体文案&#xff0c;支持个性化推荐和A/B测试优化。新闻报道辅助&#xff1a;快速生成财经、体育等领域的结构化新闻摘要&#xff0c;结合实时数据更新内容。教育内容定制&#x…

金融业务安全增强方案:国密SM4/SM3加密+硬件加密机HSM+动态密钥管理+ShardingSphere加密

国密SM4/SM3 SM4&#xff1a;对称加密算法&#xff0c;分组长度128位&#xff0c;密钥长度128位&#xff0c;适用于数据加密&#xff08;如数据库字段、通信报文&#xff09;】 加密存储&#xff1a;用户身份证号、银行卡号等敏感字段&#xff08;配合ShardingSphere等中间件自…

Chaos Vantage 2.8.1 发布:实时探索与材质工作流的全新突破

作为行业领先的实时光线追踪渲染器&#xff0c;Chaos Vantage再添利器。2.8.1版本更新聚焦材质工作流、硬件效率与API拓展&#xff0c;为建筑可视化、动画制作等领域带来更流畅的操作体验与更深层的定制化可能。 一、核心功能更新&#xff1a;让创作更顺畅 完整V-Ray材质节点支…

【集合框架List接口】

&#x1f449; 用 ArrayList 存数据&#xff0c;结果插入时卡住了&#xff1f; &#x1f449; 想删除某个元素&#xff0c;却发现索引错乱了&#xff1f; &#x1f449; 不知道该用 ArrayList 还是 LinkedList&#xff0c;选错了导致性能瓶颈&#xff1f;一、List 是什么&#…

《棒球百科》奥运会取消了棒球·野球1号位

⚾️ 奥运会棒球消失&复活之谜&#xff01;深度揭秘全球体育权力游戏 ⚾️❌ 2008年为何被踢出奥运&#xff1f;(Why Removed in 2008?)MLB的致命抵制➤ 奥运赛期撞车MLB常规赛白热化阶段&#xff01;➤ 球队老板拒放巨星&#xff1a;2000年悉尼奥运美国队仅剩"替补阵…

基于js和html的点名应用

分享一个在课堂或者是公司团建上需要点名的应用程序&#xff0c;开箱即用。1、双击打开后先选择人员名单&#xff08;可以随时更改的&#xff09;2、下面的滚动速度可以根据需求调整<!DOCTYPE html> <html lang"zh"> <head> <meta charset"…

【深度学习-基础知识】单机多卡和多机多卡训练

1. 单机多卡训练&#xff08;Single Machine, Multi-GPU&#xff09; 概念 在同一台服务器上&#xff0c;有多块 GPU。一个训练任务利用所有 GPU 并行加速训练。数据集存放在本地硬盘或共享存储上。 核心原理数据并行&#xff08;Data Parallelism&#xff09; 将一个 batch 划…

数据库原理及应用_数据库基础_第2章关系数据库标准语言SQL_SQL语言介绍数据库的定义和删除

前言 "<数据库原理及应用>(MySQL版)".以下称为"本书"中2.1节和2.2节第一部分内容 引入 本书P40:SQL(Structure Query Language结构化查询语言)是一种在关系数据库中定义和操纵数据的标准语言,是用户和数据库之间进行交流的接口. ---SQL是一种语言,是…

实变函数中集合E的边界与其补集的边界是否相等

在实变函数&#xff08;或一般拓扑学&#xff09;中&#xff0c;给定一个集合 E \subseteq \mathbb{R}^n &#xff08;或更一般的拓扑空间&#xff09;&#xff0c;集合 E 的边界&#xff08;boundary&#xff09;与 E 的补集 E^c 的边界是否相等&#xff1f; 即&#x…

# C++ 中的 `string_view` 和 `span`:现代安全视图指南

C 中的 string_view 和 span&#xff1a;现代安全视图指南 文章目录C 中的 string_view 和 span&#xff1a;现代安全视图指南目录1. 原始指针的痛点1.1 安全问题1.2 所有权不明确1.3 接口笨拙1.4 生命周期问题2. string_view 深入解析2.1 基本特性2.2 高效解析示例2.3 防止常见…

Linux学习-多任务(线程)

定义轻量级进程&#xff0c;实现多任务并发&#xff0c;是操作系统任务调度最小单位&#xff08;进程是资源分配最小单位 &#xff09;。创建由进程创建&#xff0c;属于进程内执行单元。- 独立&#xff1a;线程有8M 独立栈区 。 - 共享&#xff1a;与所属进程及进程内其他线程…

高级堆结构

一、二项堆&#xff08;Binomial Heap&#xff09;&#xff1a;理解「合并操作」的优化二项堆的核心优势是高效合并&#xff0c;类似 “二进制加法”。我们通过「合并两个二项堆」的伪代码和步骤来理解&#xff1a;核心结构伪代码&#xff1a;class BinomialTreeNode:def __ini…