[英]Facebook UNITY SDK login issue
我刚刚安装了新版本的Unity 4.3和新的facebook sdk,但我无法使用它。
我在facebook上创建了应用程序,根据需要将app id复制到unity facebook设置,并将Package Name和Class名称复制回facebook。
因为Android Key Hash是空的(即使它不应该),我使用其他人发布的方法来创建一个openssl。 我根据需要创建并复制到Facebook。
在此之后我创建了一个小脚本以便能够登录。
// Use this for initialization
void Start () {
enabled = false;
FB.Init(SetInit, OnHideUnity);
}
// Update is called once per frame
void Update () {
}
private void SetInit()
{
FbDebug.Log("SetInit");
enabled = true; // "enabled" is a property inherited from MonoBehaviour
if (FB.IsLoggedIn)
{
FbDebug.Log("Already logged in");
OnLoggedIn();
}
}
private void OnHideUnity(bool isGameShown)
{
FbDebug.Log("OnHideUnity");
if (!isGameShown)
{
// pause the game - we will need to hide
Time.timeScale = 0;
}
else
{
// start the game back up - we're getting focus again
Time.timeScale = 1;
}
}
void OnGUI(){
if (!FB.IsLoggedIn)
{
if (GUI.Button(new Rect(179 , 11, 287, 160), "Login to Facebook"))
{
FB.Login("email", LoginCallback);
}
}
}
void LoginCallback(FBResult result)
{
FbDebug.Log("LoginCallback");
Debug.Log("LoginCallback");
if (FB.IsLoggedIn)
{
OnLoggedIn();
}
}
void OnLoggedIn()
{
FbDebug.Log("Logged in. ID: " + FB.UserId);
}
现在,当我点击登录按钮时,会出现一个请求权限的Facebook窗口,在我按下确定后,它会返回,但我还没有登录...有人可以帮忙吗? 我发现另一个奇怪的事情是,一旦我点击登录按钮就会调用LoginCallback,即使我认为只有在我允许的情况下才应该这样做。 无论如何,当我给予许可它返回我的应用程序,没有任何反应。 我可以再次单击登录按钮,同样的事情发生,登录回调呼叫,它要求permisions,我给permision并返回,没有任何反应。 有人可以帮忙吗?
sdk的4.3.6版应该可以解决这个问题。 它可以在这里找到: https : //developers.facebook.com/我们还在等待它在资产商店获得批准,所以现在唯一能够获得它的地方是来自Facebook的网站。
注意 - 如果您使用的是Mac,它仍然会损坏(2014年5月)。 只需按照“Rafael解决方案”,从public void OnLoginComplete(字符串消息)中正确发现您的哈希。 干杯
因此,在不得不追踪我的手机钥匙几天后感到沮丧,我决定调查它在做什么。
经过一些研究后发现,当你发布到Android设备时,facebook会使用你的发布设置中定义的密钥库,而不是你的.android / debug.keystore文件。 所以我进去改变了sdk以使其以正确的方式工作。 基本上我改变了SDK来查看ProjectSettings而不是调试目录来获取密钥哈希。 在FacebookAndroidUtils.cs中,我添加了以下内容。
// Using the user defined keystore values instead of the debug one.
degbugKeyHash = GetKeyHash( PlayerSettings.Android.keyaliasName, PlayerSettings.Android.keystoreName, PlayerSettings.Android.keyaliasPass, PlayerSettings.Android.keystorePass );
我创建了一个小型repo,提供修复以及一些gui更改,以便更容易更新密钥哈希。
Github Facebook Unity SDK 6.1修复
更新 - 修复了OS X与字符串路径上的空间转义相关的错误
希望这可以帮助!
从登录功能中获取“电子邮件”权限并尝试使用。 哎呀我以为我也看到了“publish_actions”的许可。
确保清单中的loginactivity是纵向的。
不要自己实现所有内容,请尝试使用免费和开源的SOOMLA Profile插件来满足您的所有社交网络需求: https : //github.com/soomla/unity3d-profile
也可在资产商店下载: https : //www.assetstore.unity3d.com/en/#!/ content / 24601
它涵盖Facebook,Twitter和Google+,并具有统一的API,用于登录,发布雕像,上传图像和获取朋友列表。 为了正确披露,我是其中一位创始人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.