Я разрабатываю Android-игру в Unity и использую Facebook SDK в качестве аутентификатора.Facebook всегда входит в систему с одним и тем же пользователем, хотя я пользуюсь разными пользователями.
После завершения фазы настройки в Unity я попытался войти в систему, и это сработало. Пользователь, которого я использовал для входа, был пользователем admin, который я также использовал для создания приложения на сайте developer.facebook.com.
Позже я попытался соединиться с другими пользователями. Они были реальными учетными записями, которые имеют роли разработчика и тестировщика, я даже использовал тестовых пользователей, которые автоматически создаются FB, но даже при том, что все они имеют разные учетные данные, которые они регистрировали как пользователь admin.
, чтобы понять, я сделал следующее:
1) Запустить игру на андроид.
2) Нажмите кнопку входа в систему, и приложение FB начнет работать.
3) Войти с пользователем администратора.
4) Теперь я вошел в систему с пользователем администратора.
5) Закрыть приложение и выйти из FB.
6) Запустите приложение и на этот раз вход в систему с пользователем B (Дев, тестер и т.д.)
7) Вместо пользователя B снова админ пользователь будет аутентифицировать.
Редактировать: Сегодня я обновил FB sdk. Сначала я зарегистрировался с тестовым пользователем и вошел в систему правильно. При более поздних подключениях я использовал Admin и других тестовых пользователей, но все они вошли в систему в качестве первого тестового пользователя. Я думаю, проблема не связана с пользователем-администратором, а с тем, что первый вход в систему.
В качестве примера для моей игры я использовал friendsmash tutorial, а ниже вы можете найти фрагмент кода, который я использовал в своем приложении.
public void Init() {
FB.Init(SetInit, OnHideUnity);
}
private void SetInit() {
enabled = true;
}
private void OnHideUnity(bool isGameShown) {
Debug.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;
}
}
public void FBLogin(LoginOnSuccess cb) {
loginOnSuccess = cb;
FB.Login("user_friends", LoginCallback);
}
void LoginCallback(FBResult result) {
if(FB.IsLoggedIn) {
FB.API("/me?fields=id,name", Facebook.HttpMethod.GET, delegate (FBResult response) {
if(response.Error != null) {
Debug.Log("Error: FB.API: /me?fields=id,name");
}
Debug.Log("Permissions: " + response.Text);
});
}
else {
//TODO login failed. Give a proper error message on gui
Debug.Log("FacebookController.cs: Couldn't connect to FB.");
}
}