前言:
最近需要在接微信獲取用戶信息的功能,在小游戲官方API中翻找資料。不得不說官方接口很多、很全,但是真的很亂而且部分遺漏。
對(duì)于不明所以的人來說,真的非常不友好。文檔一堆堆的羅列下來,有些也不知道要怎么組合使用。
文檔下有不少留言也是“罵罵咧咧”想必也和在下一樣遇到了不少麻煩,也有朋友為此特地建立群組專門討論這些問題。
在各方碰壁與嘗試下,終于拿到了用戶的基本信息,在此記錄分享一下:
一、登錄
首先需要登錄一下,我這需要用到Code,不需要的可以忽視。不過如果你是剛接觸,我建議你一步步照著做。
使用 WX.Login()
接口進(jìn)行登陸:
參考代碼如下:
LoginOption info = new LoginOption();
info.complete = (aa) =>{ /*登錄完成處理,成功失敗都會(huì)調(diào)*/ };
info.fail = (aa) => { /*登錄失敗處理*/ };
info.success = (aa) =>
{
//登錄成功處理
Debug.Log("__OnLogin success登陸成功!查看Code:" + aa.code);
//登錄成功...這完成后,跳到下一步,《二、查看授權(quán)》
};
WX.Login(info);
接口詳情:https://developers.weixin.qq.com/minigame/dev/api/open-api/login/wx.login.html
二、查看授權(quán)
我們需要看下授權(quán)情況,之前有沒有授權(quán)過,因?yàn)槿绻跈?quán)過就不用再調(diào)用的接口了。
使用 WX.GetSetting()
接口進(jìn)行查詢:
參考代碼如下:
GetSettingOption info = new GetSettingOption();
info.complete = (aa) => { /*獲取完成*/ };
info.fail = (aa) => { /*獲取失敗*/};
info.success = (aa) =>
{
if (!aa.authSetting.ContainsKey("scope.userInfo") || !aa.authSetting["scope.userInfo"])
{
//《三、調(diào)起授權(quán)》
}
else
{
//《四、獲取用戶信息》
}
};
WX.GetSetting(info);
接口詳情:https://developers.weixin.qq.com/minigame/dev/api/open-api/setting/wx.getSetting.html
三、調(diào)起授權(quán)(特詳細(xì))
查看未有相關(guān)授權(quán)后,我們需要調(diào)起面板讓用戶選擇授權(quán)。實(shí)話說這一步卡了我很久,也是沒有看到相關(guān)文章和文檔寫了這些內(nèi)容才決定出這個(gè)文章。
使用接口 WX.Authorize()
我們還需要?jiǎng)?chuàng)建一個(gè)按鈕用戶點(diǎn)擊才開始授權(quán),使用接口:WX.CreateUserInfoButton()
先上代碼:
//調(diào)用請(qǐng)求獲取用戶信息
WXUserInfoButton btn = WX.CreateUserInfoButton(0, 0, Screen.width, Screen.height, "zh_CN", true);
btn.OnTap((res) =>
{
if (res.errCode == 0)
{
//用戶已允許獲取個(gè)人信息,返回的data即為用戶信息
Debug.Log(res.userInfo.nickName);
}
else
{
Debug.Log("用戶未允許獲取個(gè)人信息");
}
btn.Hide();
});
需要使用WX.CreateUserInfoButton接口在屏幕上創(chuàng)建一個(gè)“透明的” “透明的” “透明的”
區(qū)域,你需要在下面有個(gè)UI引導(dǎo)用戶去點(diǎn)擊。
我里我表示吐槽,剛開始沒看到這個(gè)透明區(qū),以為沒起作用。
接口詳情:https://developers.weixin.qq.com/minigame/dev/api/open-api/user-info/wx.createUserInfoButton.html
以為這就完了嗎?沒有…
到這一步會(huì)出現(xiàn)一個(gè)錯(cuò)誤,需要你提供授權(quán)…?當(dāng)是很疑惑這不是就是調(diào)用授權(quán)的嗎,為啥還有這一步。
后面在群才問到,原來在微信公眾平臺(tái)也需要做設(shè)置…
微信公眾平臺(tái)的設(shè)置
在 微信公眾平臺(tái)中:設(shè)置
> 服務(wù)內(nèi)容聲明
中設(shè)置 用戶隱私保護(hù)指引
和 隱私授權(quán)彈窗
吐槽:需要先設(shè)置用戶隱私保護(hù)指引
,否則就會(huì)像這樣一只轉(zhuǎn)圈:
于是我們先設(shè)置 用戶隱私保護(hù)指引
選擇下面這個(gè):
然后根據(jù)項(xiàng)目情況寫一下:
然后下一步再去開啟這個(gè)就可以了:
需要注意的這個(gè)選項(xiàng)開啟后無法關(guān)閉,請(qǐng)?jiān)敳榭次臋n。
設(shè)置好了以后就可順利獲得用戶基本信息了。
四、獲取用戶信息
經(jīng)過了上面的授權(quán)下次就可以直接獲取用戶信息了,通過接口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文章來源:http://www.zghlxwxcb.cn/news/detail-786021.html
結(jié)語:
網(wǎng)上的資料也很多,但是我覺得真的太零碎了,而且有些Unity也真的用不了。
官方文檔也一直在各種棄用,Demo也起不到多大作用,在些分享給大家。
如果你覺得有用的話,請(qǐng) 點(diǎn)選 和 收藏,謝謝。文章來源地址http://www.zghlxwxcb.cn/news/detail-786021.html
到了這里,關(guān)于Unity微信小游戲登錄授權(quán)獲取用戶信息的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!