11/08/2024 16:35:55
解决方案
业务在开发阶段,需要在 Editor 环境上登录,进行联调。MSDK 目前提供模拟登录方案,以供业务在 Editor 环境联调。
目前 MSDK 提供了 Unity 的模拟登录方案,实现原理是一样的。
模拟登录替换了 token,采用万能 token,该方案只能在测试环境中使用。
新接入业务如果需要使用该功能,请在企业微信上联系 MSDK助手。
目前支持模拟登录的渠道有:WeChat、QQ、Facebook、GameCenter、Google、Twitter、Garena、Line。
[info] 正式环境的模拟登录
在正式环境模拟登录,需要使用真实的 openid 和 token 才可以通过校验。
一、Unity 模拟登录
模拟 PC 登录以下几步操作(以微信为例):
- 在 PC 上点击微信渠道登录,MSDK 会在 Assets/GCloudSDK/Scripts/MSDKCore/MSDK/UnityEditor/Data/ 目录下创建对应渠道的模拟登录态信息的.txt 文件,比如微信的是 WeChatLoginData.txt,如果 editor 中没看到,右键 Refresh 即可。
- 将游戏打包到手机上运行,从日志中获取登录态信息,拷贝到 WeChatLoginData.txt 文件中。 完成以上两个步骤,就可以在 PC 上登录了。
需要注意:
- 如果改变了 Assets/GCloudSDK/ 插件目录,请在 UnityEditorData.cs 中修改 dataFilePath 的路径
- xxx/MSDK/UnityEditor/Data/ 目录下默认有一个 LoginData.txt 用来保存当前登录态信息
二、登录态获取方法
2.1 Android 登录日志的获取
Android 手机上安装游戏 App 后 ,在 Logcat 中通过 Tag: MSDK 过滤日志。登录后在结果中搜索 OnLoginResp ,在日志中复制登录结果即可。
2.2 iOS 登录日志的获取
iPhone / iPad 上安装游戏 App 后 ,打开 MAC 的控制台并选择测试机。登录后在结果中搜索 handleCallback ,在日志中复制登录结果即可。
[info] 可以直接拷贝登录态示例中的代码,填写到对应渠道的 LoginData.txt 文件中。随意更改 openid 即可。 如果需要在 pc 中测试购买,需要从真机中拿去真正的 openid 和 pfKey 等相关字段。
三、登录态示例
1、 WeChat 的登录态示例,WeChatLoginData.txt 的内容
{
"extraJson": "",
"methodNameID": 112,
"retCode": 0,
"retMsg": "Success",
"thirdCode": 0,
"thirdMsg": "success",
"channel": "WeChat",
"channelid": 1,
"channel_info": "{\"code\":\"071H5ihk0HTfoq1W6Pek0MYuhk0H5ihH\",\"access_token\":\"16_l4kRVRLBvAUfUyWXz6evSZwwXvNcrTj-XdIVC4ryc5koTQeymyvsELbyZ8zH0SU-6EheFuY78jNF7zaymzF_uObPf9d92U3JK9fddJXUnRI\",\"expired\":7200,\"refresh_token\":\"16_caPx3PRfwkP8NOGL89Q4H4h_k-eEBNSLKIekJsC82tW3iCMUZNfkVKNcVaZyLZKzQEU-hCACRJpBua422UEAB9_UjwY2SQqu_9663IdR25E\",\"scope\":\"snsapi_userinfo,snsapi_friend,snsapi_message\",\"funcs\":\"\",\"other_funcs\":\"\",\"extend\":\"\"}",
"uid": "oHlap1QDpmRiwliuWdvMH3mAWnQM",
"first": 0,
"gender": 0,
"health_game_ext": "{\"serial_number\":\"oHlap1QDpmRiwliuWdvMH3mAWnQM-1543845913-ahnZ\",\"prajna_ext\":\"{ \"type\": 0, \"webview_frame\": { \"buttons\": [ ], \"show_title\": 0, \"show_titlebar\": 0, \"url\": \"\" } }\",\"username\":\"\"}",
"openid": "3042973086530817307",
"pf": "wechat_wx-App Store-android-App Store-wx-xxxxx-oHlap1QDpmRiwliuWdvMH3mAWnQM",
"pfKey": "74ffe118eb96e85e87957566796fcc40",
"picture_url": "",
"need_name_auth": false,
"reg_channel_dis": "",
"seqID": "11-afd9d432-0527-4429-a905-5e9742399f30-1543845916-14",
"token": "MSDKLOGINMOCKER_51433213c2e72a6304fb805b10a2201d",
"token_expire_time": 1543853113,
"user_name": "rdgztest_INWRBE"
}
2、 QQ 的登录态示例,QQLoginData.txt 的内容
{
"ret": 0,
"msg": "success",
"openid": "3042973086530817307",
"token_expire_time": 1541658617,
"first": 0,
"reg_channel_dis": "",
"user_name": "kysduolc",
"picture_url": "http://qzapp.qlogo.cn/qzapp/ 1106977030/FA1981312F1A9ABA31CC5EC5E62690B9/100",
"need_name_auth": false,
"channel_info": "{\"pay_token\":\"493C9D67E5F3C653253F9CA8D8043498\",\"access_token\":\"0 3FE61DCBC55C86C18B9455D5D91AA89\",\"openid\":\"FA1981312F1A9ABA31CC5EC5E62690B9\",\"expired\":0,\"refresh_ token\":\"\",\"scope\":\"\",\"funcs\":\"\",\"other_funcs\":\"\",\"extend\":\"\"}",
"extra": "",
"retCode": 0,
"retMsg": "Success",
"token": "A23EsnNaIT@7ISkex5JOg3Tl@LMFlDS3SvzqsEp14wiuK087owIv4vgu BV6MVGU5",
"gender": 0,
"pf": "qq_qq-00000000-android-00000000-qq-110 6977030-FA1981312F1A9ABA31CC5EC5E62690B9",
"pfKey": "",
"channel": "QQ",
"channelID": 2,
"methodNameID": 112
}
3、 Facebook 的登录态示例,FacebookLoginData.txt 的内容
{
"ret": 0,
"msg": "success",
"openid": "8530819274717341879",
"token_expire_time": 1592992929,
"first": 0,
"reg_channel_dis": "App Store",
"user_name": "Waylen Zhang",
"picture_url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=1133609683487391&height=50&width=50&ext=1592992929&hash=AeQ2ZeBsG7Bj8-Gk",
"need_name_auth": false,
"channel_info": "{\"access_token\":\"EAAFRgC9tvzIBAOwccnO5J2m5tqZAbLxRaHvdK2B69L0wyMAcYmZAlmEV3SNVAPHPEDvEVip9FvF8SlbApb2E2gB51yjb3ocAAE7YGnYq8Ddi2SAWbnA1qGT1BZC2YZCIOnQZBkAoZAZCE5N55vXBGSjJxMtQJ5jVUbMYZAaTbRQNn5bKImpD61q0fn6qhqf7krbUJgzwz4uMeWhd4qZB2REm6wFDGalDFZCCCBcBuKGd1KVgZDZD\",\"expire_ts\":1592992929}",
"bind_list": "",
"confirm_code": "",
"confirm_code_expire_time": 0,
"channelid": 4,
"retCode": 0,
"retMsg": "Success",
"token": "98f65d31821a070d0db4847ac7062fbc542a498a",
"gender": 0,
"pf": "facebook_fb-App Store-iap-App Store-fb-380401719179584-8530819274717341879",
"pfKey": "9bdf639cf67f40351af244caf493513b",
"channel": "Facebook",
"methodNameID": 112,
"extraJson": ""
}
4、Logout 可以在 Logout.txt 中添加以下内容,在 editor 模式下获取 Logout 成功的返回值
{"ret":1,"msg":"","methodNameID":117,"retCode":0,"retMsg":"Success","extraJson":""}
All rights reserved.