Unity微信小游戏登录授权获取用户信息

news2025/2/27 21:12:47

文章目录

  • 前言:
  • 一、登录
  • 二、查看授权
  • 三、调起授权(特详细)
      • 微信公众平台的设置
  • 四、获取用户信息
  • 结语:


请添加图片描述

前言:

最近需要在接微信获取用户信息的功能,在小游戏官方API中翻找资料。不得不说官方接口很多、很全,但是真的很乱而且部分遗漏。
对于不明所以的人来说,真的非常不友好。文档一堆堆的罗列下来,有些也不知道要怎么组合使用。
文档下有不少留言也是“骂骂咧咧”想必也和在下一样遇到了不少麻烦,也有朋友为此特地建立群组专门讨论这些问题。
在各方碰壁与尝试下,终于拿到了用户的基本信息,在此记录分享一下:


一、登录

首先需要登录一下,我这需要用到Code,不需要的可以忽视。不过如果你是刚接触,我建议你一步步照着做。
使用 WX.Login() 接口进行登陆:
参考代码如下:

LoginOption info = new LoginOption();
info.complete = (aa) =>{ /*登录完成处理,成功失败都会调*/ };
info.fail = (aa) => { /*登录失败处理*/ };
info.success = (aa) =>
{
    //登录成功处理
    Debug.Log("__OnLogin success登陆成功!查看Code:" + aa.code);
    //登录成功...这完成后,跳到下一步,《二、查看授权》
};
WX.Login(info);

接口详情:https://developers.weixin.qq.com/minigame/dev/api/open-api/login/wx.login.html


二、查看授权

我们需要看下授权情况,之前有没有授权过,因为如果授权过就不用再调用的接口了。
使用 WX.GetSetting()接口进行查询:
参考代码如下:

GetSettingOption info = new GetSettingOption();
info.complete = (aa) => { /*获取完成*/ };
info.fail = (aa) => { /*获取失败*/};
info.success = (aa) =>
{
    if (!aa.authSetting.ContainsKey("scope.userInfo") || !aa.authSetting["scope.userInfo"])
    {
        //《三、调起授权》
    }
    else
    {
        //《四、获取用户信息》
    }
};
WX.GetSetting(info);

接口详情:https://developers.weixin.qq.com/minigame/dev/api/open-api/setting/wx.getSetting.html


三、调起授权(特详细)

查看未有相关授权后,我们需要调起面板让用户选择授权。实话说这一步卡了我很久,也是没有看到相关文章和文档写了这些内容才决定出这个文章。
使用接口 WX.Authorize() 我们还需要创建一个按钮用户点击才开始授权,使用接口:WX.CreateUserInfoButton()
先上代码:

AuthorizeOption info = new AuthorizeOption();
info.scope = "scope.userInfo";
info.success = result =>
    {
        //调用请求获取用户信息
        WXUserInfoButton btn = WX.CreateUserInfoButton(0, 0, Screen.width, Screen.height, "zh_CN", true);
        btn.OnTap((res) =>
        {
            if (res.errCode == 0)
            {
                //用户已允许获取个人信息,返回的data即为用户信息
                Debug.Log(res.userInfo.nickName);
            }
            else
            {
                Debug.Log("用户未允许获取个人信息");
            }
            btn.Hide();
        });
    };
WX.Authorize(info);

通过获取WX.Authorize我们可以拿到需要获得的权限,接口详情:
https://developers.weixin.qq.com/minigame/dev/api/open-api/authorize/wx.authorize.html
然后还需要使用WX.CreateUserInfoButton接口在屏幕上创建一个“透明的” “透明的” “透明的”区域,你需要在下面有个UI引导用户去点击。

我里我表示吐槽,刚开始没看到这个透明区,以为没起作用。
接口详情:https://developers.weixin.qq.com/minigame/dev/api/open-api/user-info/wx.createUserInfoButton.html

以为这就完了吗?没有…
在这里插入图片描述

到这一步会出现一个错误,需要你提供授权…?当是很疑惑这不是就是调用授权的吗,为啥还有这一步。
后面在群才问到,原来在微信公众平台也需要做设置…

微信公众平台的设置

在 微信公众平台中:设置 > 服务内容声明 中设置 用户隐私保护指引隐私授权弹窗
在这里插入图片描述

吐槽:需要先设置用户隐私保护指引,否则就会像这样一只转圈:
在这里插入图片描述

于是我们先设置 用户隐私保护指引
在这里插入图片描述

选择下面这个:
在这里插入图片描述

然后根据项目情况写一下:
在这里插入图片描述

然后下一步再去开启这个就可以了:
在这里插入图片描述

需要注意的这个选项开启后无法关闭,请详查看文档。

设置好了以后就可顺利获得用户基本信息了。


四、获取用户信息

经过了上面的授权下次就可以直接获取用户信息了,通过接口WX.GetUserInfo()
//直接获取用户信息
GetUserInfoOption userInfo = new GetUserInfoOption()
{
withCredentials = true,
lang = “zh_CN”,
success = (data) =>
{
Debug.Log(data.userInfo.nickName);
}
};
WX.GetUserInfo(userInfo);
接口详情:https://developers.weixin.qq.com/minigame/dev/api/open-api/user-info/wx.getUserInfo.html


结语:

网上的资料也很多,但是我觉得真的太零碎了,而且有些Unity也真的用不了。
官方文档也一直在各种弃用,Demo也起不到多大作用,在些分享给大家。
如果你觉得有用的话,请 点选 和 收藏,谢谢。

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

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

相关文章

高德地图驾车导航避让点位

封路图标的位置就是避让路段 首先我们在 data 里声明一个 driving 为 null 用 this.driving 去接收轨迹 便于下次渲染轨迹时将其清除 避让的话我调用的是 setAvoidPolygons() 这个方法 他的参数是个二维数组 长这样 // [避让区域, 避让区域, ...] // 每个避让区域 [[lng,…

全网最细-深度解析 Istio Ambient Mesh 流量路径

作者:史泽寰 前言 Istio Ambient Mesh 是 Istio 社区的推出的将 Sidecar 的能力抽离至 ztunnel 和 waypoint 的全新架构,同时基于 iptables 和策略路由实现了该架构下的流量规则,目前网络上已经有些资料对这部分的实现进行了一定程度的剖析…

2023最新聚支付系统源码/去授权+支持易支付和码支付/能正常运营/全开源亲测可用

源码介绍: 聚支付去授权系统源码,它是一款支持易支付、码支付等功能,能正常运营的开源聚合支付系统源代码。采用 PHPMySQL技术栈,可完全自由定制。 2023最新聚支付系统源码/去授权支持易支付和码支付,能正常运营&…

物联网市场规模迅速增加,在交通、医疗、农业等方面发展势头迅猛

物联网(Internet of things)是一系列用于解决物的信息识别、交换、控制等技术的集合应用形成的网络。当连接从互联网时代的人与人走向万物互联,万物的数字化、智能化依赖物联网技术。因此,物联网是指利用各类信息识别设备&#xf…

电脑硬盘分区该怎么进行?这几种方法简单有效!

电脑硬盘分区该怎么进行?这几种方法简单有效! “我购买的电脑硬盘初次分区分为了四个区,分别是C盘、D盘、E盘、F盘,其中C盘有80G,其余各盘则拥有几百G的空间。初期使用时并未觉得有何问题,但随着文件的堆积…

增速波动!W「下」AR「上」!HUD前装供应商比拼硬核能力

作为汽车智能座舱人机交互的新配置之一,HUD(抬头显示)市场在经历一波快速增长周期后,进入调整阶段。 本周,高工智能汽车研究院发布数据显示,2023年8月,中国市场(不含进出口&#xff…

geecg-uniapp 同源策略 数据请求 获取后台数据 进行页面渲染 ui库安装 冲突解决(3)

一,同源策略 (1)首先找到env 要是没有env 需要创建一个替换成后端接口 (2)因为他封装了 先找到 http 请求位置一级一级找 然后进行接口修改 (3)appUpdata 修改接口 运行即可 &#x…

1.MySQL库的操作

个人主页:Lei宝啊 愿所有美好如期而遇 1.创建数据库: 语法:create database if not exists db_name charset字符集 collate校验规则 ; if not exists ,charset ,collate可以不加,直接create database 数…

mongodb简介、安装、搭建复制集以及切片

一、 简介 NoSQL数据库四大家族:列存储 Hbase,键值(Key-Value)存储 Redis,图像存储 Neo4j,基于分布式文档存储的数据库MongoDb。 MongoDB 和关系型数据库对比 关系型数据库MongoDBdatabase(库)database&…

uniapp小程序中给web-view页面添加授权弹窗(使用cover-view组件覆盖实现该功能)

效果图: web-view是承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用。 再看下面一个提示: 每个页面只能有一个 web-view,web-view 会自动铺满整个页面,并覆盖其他组件。 也就是说,…

DB2 数据库监控用户赋权手册

DB2 数据库监控用户赋权手册 1、系统管理表查询权限2、系统管理表函数执行权限3、数据库 mon 监控数据访问权限 皮皮运维平台数据统一采集用户(DBAA)需要被监控数据库赋予对应下查询表、表函数以 及获取数据库监控数据的权限,具体授权操作有以…

day14I102.二叉树的层序遍历

1、102.二叉树的层序遍历 题目链接:https://leetcode.cn/problems/binary-tree-level-order-traversal/ 文章链接:https://programmercarl.com/0102.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.html#%E7%AE%97%E6%B3%95…

记一次Redis Cluster Pipeline导致的死锁问题

作者:vivo 互联网服务器团队- Li Gang 本文介绍了一次排查Dubbo线程池耗尽问题的过程。通过查看Dubbo线程状态、分析Jedis连接池获取连接的源码、排查死锁条件等方面,最终确认是因为使用了cluster pipeline模式且没有设置超时时间导致死锁问题。 一、背…

【C++】:内存管理

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux的基础知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数…

Webmin远程命令执行漏洞复现

文章目录 Webmin_1.910_rce(CVE-2019-15107)漏洞编号漏洞描述影响版本漏洞评级利用方法(利用案例)漏洞挖掘加固建议参考信息漏洞分类 Webmin_1.910_rce(CVE-2019-15107) 漏洞编号 CVE-2019-15107 漏洞描述 Webmin是一个用于管理类Unix系统的管理配置…

MytatisP详解

MP详解 一、基础使用1.引入2.Entry中的常用注解3.BaseMapper 、IService、ServiceImpl3.1BaseMapper 3.2IService、ServiceImpl 4.常用配置4.1 application.yml配置4.2 configuration 配置 5.Wrapper6.分页6.1使用分页方式一 7.自定义分页:查询指定列7.1 先用MP的分…

nginx绑定tomcat与tomcat联合使用的配置(nginx反向代理tomcat的配置说明)

nginx反向代理tomcat通信配置 (内容来自网上,注解部分才是原创) 切记: url的意思就是 unifed resource location 统一资源定位 其中location就是定位的意思 所以上文中的location就有 对应匹配的 url 标识的资源的相关配置之…

go 递归 数据多层级横向展开 插入数据库

需求,在两张表(一张主表,一张明细表,一对多的关系)中有层级关系,比如A(主表数据),A1,A2,A3,A4(明细表数据),而A1这些数据下面还有别的数据那它们也会出现在主表中&#x…

Pygame中将鼠标形状设置为图片2-2

3 编写主程序 在主程序中,首先创建屏幕并且完成一些准备工作,之后在while循环中不断更新sprite实例即可。 3.1 创建屏幕及准备工作 创建屏幕及准备工作的代码如图5所示。 图5 创建屏幕及准备工作 其中,第20行代码调用pygame.mouse模块中的…

足球公平盘、实力盘和盘口合理性的模型探讨

1. 公平盘模型事件 9月份,突然间好多人加我vx问及公平盘模型能否依靠下图做出来,几年没有人提及公平盘,突然好多人这么一问应该是从同一个讨论群过来的。 1.1 公平盘介绍 按照字面意思:真实反应即将开赛的两支球队在主客场时的让…