Unity使用shareSDK做微信登录时无法实现的解决办法

在缠着MOB的客服哥哥的几个小时,终于解决了微信登录的问题!


之前一直在用shareSDK的Demo 来测试第三方登录、分享,结果微博QQ都没问题,但微信就是不行,反反复复地看了很多次文档、以及一些论坛讨论,还是怎么改都不行

于是跑去烦了很久的客服,现在问题都解决了!


首先,当然是按照shareSDK官方的集成文档来正确操作设置


然后就是一些要注意的事项了,以官方提供的Demo为例:


1.要注意所有包名的设置都要跟微信开发平台里登录注册的信息一致

①PlayerSetting里的两个包名

②AndroidManifest表里的package的包名

③AndroidManifest表里微信分享回调的包名

④修改DemoCallback.jar里的包名

以上参考:http://bbs.mob.com/thread-23519-1-1.html


2.要项目里的签名要跟微信开发平台里设置的签名一致

①创建一个Keystore,以保证每次打包出来的签名一致

②用MD5签名工具,解析出自己的包的签名

③要把微信公众平台的签名设置为解析出来的签名

以上参考:http://bbs.mob.com/thread-95-1-4.html


以上都保证一致之后,基本就可以了。


另外是分享后,选择返回第三方软件后,如果还是停留在微信上的话,

应该是shareSDK脚本设置微信参数时选择了绕过审核分享 "BypassApproval = true",

选择不绕过再打包应该就没问题了。


问了客服,绕过和不绕过的区别:

绕过审核:只能分享图文的样式,且不正式,回调会无法完全正确实现   

不绕过审核:正式,分享的样式多,且能完成正确实现



要在Unity实现微信登录,需要以下步骤: 1. 在微信开放平台上注册并创建一个应用,获取到AppID和AppSecret。 2. 在Unity中导入微信SDK,并将SDK中的相关文件添加到项目中。 3. 在代码中使用微信SDK提供的接口,调用微信登录功能。这个过程需要用户在微信客户端中授权登录。 4. 登录成功后,获取到微信返回的access_token和openid等信息,用于后续的操作,如获取用户信息等。 下面是一个简单的示例代码: ```c# using UnityEngine; using cn.sharesdk.unity3d; using System.Collections.Generic; public class WeChatLogin : MonoBehaviour { public ShareSDK ssdk; void Start () { ssdk = GetComponent<ShareSDK>(); } public void Login() { //配置微信平台信息 Dictionary<string,object> setting = new Dictionary<string, object>(); setting.Add("app_id", "your app id"); setting.Add("app_secret", "your app secret"); ssdk.SetPlatformConfig(PlatformType.WeChat, setting); //调用微信登录 ssdk.Authorize(PlatformType.WeChat, OnLoginResult); } //微信登录回调 void OnLoginResult(int reqID, ResponseState state, PlatformType type, Hashtable data) { if (state == ResponseState.Success) { //登录成功,获取access_token和openid等信息 string access_token = data["access_token"].ToString(); string openid = data["openid"].ToString(); //TODO: 进一步操作,如获取用户信息等 } else { Debug.LogError("微信登录失败:" + data["error_msg"]); } } } ``` 需要注意的是,微信登录需要在微信客户端中进行授权,所以在使用微信登录功能前,需要确保用户已经安装了微信客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值