Как выйти из Facebook и сменить пользователя? - PullRequest
0 голосов
/ 25 октября 2018

Я вошел в Facebook с пользователем в моем приложении.

Позже, когда я вручную выйду из этого пользователя в моем приложении Facebook и в браузере,

(FB.IsLoggedIn) все ещевозвращает истину.По какой-то причине старый профиль сохраняется, и я не могу войти с новым пользователем

Вот мой код:

public void FacebookLogin()
{
    if (FB.IsLoggedIn)
        FB.LogOut();  //it doesn't work, user is still logged in


     var permissions = new List<string>() {"email"};
      FB.LogInWithReadPermissions(permissions);  //trying to login a new user, but the last user is still logged in

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Вы входите в систему после выхода.

public void FacebookLogin()
    {
            if (FB.IsLoggedIn)
             {   
              FB.LogOut();  //it doesn't work, user is still logged in
              return;
             }
              var permissions = new List<string>() {"email"};
              FB.LogInWithReadPermissions(permissions);  //t
    }
0 голосов
/ 26 октября 2018

Измените свою функцию FacebookLogin на функцию сопрограммы.Сделав это, вы можете проверить, вошел ли пользователь в систему, выйти из системы, а затем подождать каждый кадр, пока FB.IsLoggedIn не станет false, прежде чем вы сможете войти в систему другого пользователя.Также добавьте таймер к ожиданию, чтобы, когда FB.IsLoggedIn никогда не было false в течение x времени, функция не продолжала работать, а показывала некоторую ошибку и завершала работу.

public IEnumerator FacebookLogin()
{
    //5 seconds loggout time
    float waitTimeOut = 5f;

    //Log out if loggedin
    if (FB.IsLoggedIn)
        FB.LogOut();  //it doesn't work, user is still logged in

    //Wait until logout is done. Also add a timeout to the wait so that it doesnt wait forever
    float timer = 0;
    while (FB.IsLoggedIn)
    {
        if (timer > waitTimeOut)
        {
            Debug.LogError("Failed to log out within " + waitTimeOut + " seconds");
            yield break;
        }
        timer += Time.deltaTime;
        yield return null;
    }
    Debug.Log("Successfully logged out. Now logging another user in");
    var permissions = new List<string>() { "email" };
    FB.LogInWithReadPermissions(permissions);  //trying
}

Если у вас все еще есть проблема с этим, вам нужно подать отчет об ошибке на странице facebook-sdk-for-unity Github с кодом в этом ответе.

...