我刚刚安装了新版本的 Unity 4.3 和新的 facebook sdk,但无法正常工作。
我在 facebook 上创建了应用程序,根据需要将应用程序 ID 复制到统一的 facebook 设置,并将包名称和类名称复制回 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,尽管我认为只有在我给予许可时才会调用它。无论如何,当我给予许可时,它会返回我的应用程序,但什么也没有发生。我可以再次单击登录按钮并发生同样的事情,调用登录回调,它要求权限,我给予权限并返回,没有发生任何事情。有人可以帮忙吗?