IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> unity开发微信小游戏3-获取微信权限 -> 正文阅读

[移动开发]unity开发微信小游戏3-获取微信权限

获取微信权限


`请添加图片描述

请添加图片描述


前言

用unity3d开发微信小游戏,遇到了一些问题,记录一下, 同时创建了一个交流群QQ 641029627,有需要的可以加入一起讨论,广告哥远离


提示:以下是本篇文章正文内容,下面案例可供参考

一、设置

首先SDK里面的微信小游戏-使用好友关系链要勾选

二、介绍下SDK

1.WX.InitSDK

初始化SDK,首次调用

WX.InitSDK((code) =>
{
});

2.WX.GetSetting();

获取设置,也就是能获取到授权结果(用户信息,地理位置,信运动步数等)
https://developers.weixin.qq.com/minigame/dev/api/open-api/setting/AuthSetting.html

GetSettingOption setTingOp = new GetSettingOption();
setTingOp.success = (e) =>
{
	//if (!e.authSetting.ContainsKey("scope.userInfo") || !e.authSetting["scope.userInfo"])
	//scope.userInfo
	//scope.userInfo
};
WX.GetSetting(setTingOp);

3. WX.Authorize();

提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。更多用法详见 [用户授权]
https://developers.weixin.qq.com/minigame/dev/api/open-api/authorize/wx.authorize.html

AuthorizeOption authorizeOption = new AuthorizeOption();
authorizeOption.scope = "scope.userInfo"; //{scope: "scope.userInfo"}
authorizeOption.success = (e) =>
{
    Debug.Log("success");
};
authorizeOption.fail = (e) =>
{
     Debug.Log("fail");
};
authorizeOption.complete = (e) =>
{
     Debug.Log("complete");
};
 WX.Authorize(authorizeOption);

4. WX.Authorize();

调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。更多使用方法详见 [小程序登录]
https://developers.weixin.qq.com/minigame/dev/api/open-api/login/wx.login.html

LoginOption login = new LoginOption();
login.success = (e) =>
{

};
WX.Login(login);

5. WX.GetUserInfo();

获取用户信息( 必须是在用户已经授权的情况下调用)
appid和secret 在小游戏设置那里可以找到

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

GetUserInfoOption callBack = new GetUserInfoOption();
                        callBack.withCredentials = true;
                        callBack.lang = "zh_CN";
                        //Debug.Log(e.code);
                        callBack.success = (d) =>
                        {
                            /*Debug.Log(e.encryptedData);
                            Debug.Log(e.iv);
                            Debug.Log(e.rawData);
                            Debug.Log(e.signature);*/
                            string url = string.Format("https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code", "自己的appid", "自己的secret", e.code);
                            StartCoroutine(GetRequest(url));
                            RoleManager.roleData.roleName = d.userInfo.nickName;
                            RoleManager.roleData.headUrl = d.userInfo.avatarUrl;
                            Debug.Log(d.userInfo.avatarUrl);
                        };
                        callBack.complete = (e) =>
                        {
                            Debug.Log("完成");
                        };
                        callBack.fail = (e) =>
                        {
                            Debug.Log("失败");
                            Debug.Log(e.errMsg);
                        };

 WX.GetUserInfo(callBack);

//携程也放进去了
private IEnumerator GetRequest(string url)
    {
        using (UnityWebRequest webRequest = UnityWebRequest.Get(url))
        {
            yield return webRequest.SendWebRequest();
            if (!string.IsNullOrEmpty(webRequest.error))
            {
                Debug.Log("error:" + webRequest.error);
            }
            else
            {
                UserData data = JsonUtility.FromJson<UserData>(webRequest.downloadHandler.text);
                if (data != null)
                {
                    
                    
                }
                Debug.Log(webRequest.downloadHandler.text);
            }
        }

    }

总结

今天先总结到这里了,如果感觉有帮助可以帮忙扫了上面的二维码_

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:34:46  更:2022-07-17 16:38:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 2:50:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码