C# FB.Logout()在Facebook UnitySDK中不工作

C# FB.Logout()在Facebook UnitySDK中不工作,c#,facebook,authentication,unity3d,facebook-unity-sdk,C#,Facebook,Authentication,Unity3d,Facebook Unity Sdk,我已成功使用FB.Login功能登录FB。现在我想注销: FB.Logout(); Debug.Log("FB IS LOGGED IN " + FB.IsLoggedIn); 我希望上述代码将FB.IsLoggedIn的值打印为false,并在下一个FB.login中询问我的登录名和密码 事实上,FB.IsLoggedIn的值是真的,我没有被注销:下次调用FB.Login不会要求输入密码,当我在浏览器中打开facebook站点时,我也没有被注销 我还尝试使用未记录的请求https://www

我已成功使用
FB.Login
功能登录FB。现在我想注销:

FB.Logout();
Debug.Log("FB IS LOGGED IN " + FB.IsLoggedIn);
我希望上述代码将
FB.IsLoggedIn
的值打印为false,并在下一个
FB.login
中询问我的登录名和密码

事实上,
FB.IsLoggedIn
的值是真的,我没有被注销:下次调用
FB.Login
不会要求输入密码,当我在浏览器中打开facebook站点时,我也没有被注销

我还尝试使用未记录的请求
https://www.facebook.com/logout.php?next=[YourAppURL]&access\u token=[ValidAccessToken]
但它对我没有任何影响

如何在我的独立unity应用程序中将用户注销facebook

事实上,我需要的是使用不同的登录名和密码登录。

也许我可以以某种方式使访问令牌无效,这将导致FB再次要求我登录和密码

非常感谢您的帮助

SDK版本:5.0.1

构建版本:140401.725CC2C9002A


Unity版本4.3.3f1(c8ca9b6b9936)

我相信FB.Logout操作是异步的,调用FB.Logout()后FB.IsLoggedIn的值将立即为true,它说:

您几乎可以肯定不应该使用提供的此函数 主要是为了完整性。在游戏中有一个注销控件 执行Facebook范围的注销将违反用户的期望。 相反,允许用户控制他们在Facebook上的登录状态 本身

实际上,FB.Logout()没有委托让您知道帐户已成功注销,因此您必须创建自己的listner

其次,它不会让你从Facebook应用程序或浏览器的实际设备上注销。 如果您想使用不同的帐户登录,则可以通过从应用程序或浏览器显式注销来完成

下面是如何检测您是否注销的代码。显示Facebook的“登录和注销”按钮可能很有用,该按钮指示何时登录或注销

以下是您可以确定用户已在游戏中注销的代码

public void OnFacebookLogout()
{
    if (FB.IsLoggedIn)
    {                                                                                  
        FB.Logout (); 
        StartCoroutine ("CheckForSuccussfulLogout");
    } 
}

IEnumerator CheckForSuccussfulLogout()
{
    if (FB.IsLoggedIn) 
    {
        yield return new WaitForSeconds (0.1f);
        StartCoroutine ("CheckForSuccussfulLogout");
    } else 
    {
    // Here you have successfully logged out.
    // Do whatever you want as I do, I just enabled Login Button and Disabled
    // logout button through this method.
        EnableFacebookLoginButton ();
    }
}

我不确定它是否正确,但为什么不做一些while循环呢

IEnumerator FBLogout(){
FB.Logout();
while(FB.IsLoggedIn){
打印(“注销”);
收益返回空;
}
打印(“注销成功”);

}
每个异步函数(通常)都有一个注销时没有的回调。为什么您认为它是异步的?我在注销后等了一分钟——什么也没发生。我认为这是异步的,因为与服务器通信的所有其他facebook功能都是异步的,我只是看不出有任何其他方式。除了facebook说可能不应该在应用程序中使用它(除非,很明显,如果用户打算从facebook altoghether注销),我对此不太了解。你只是在编辑器中测试它吗?Facebook说Unity编辑器中的版本功能很少,最好在实际设备上测试。我是在实际设备上测试的。除了注销,我别无选择。我需要允许用户使用不同的FB帐户登录我的应用程序。该评论实际上仅适用于Web。文档已经更新,这句话现在以“在网上”开头。你可以自己进行注销回调。你可以查看上面的评论,这一点都没有帮助。这个问题正好指向这个问题仅供参考:合并自