У меня проблемы с аутентификацией в моей игре для Android, я использую сервисы playfab + google play для аутентификации в Google, но я даже не могу добраться до той части, где я аутентифицирую в playfab с учетной записью Google, Social.localUser.Authenticate никогда не завершается успешно и сообщение об этом в обратном вызове возвращается "Аутентификация отменена", единственные полезные сообщения журнала, которые я получаю, это
[Play Games Plugin DLL] Application is pausing, which disconnects the RTMP client. Leaving room. Authentication canceled [Play Games Plugin DLL] DEBUG: Invoking user callback on game thread
иногда это бросает
[Play Games Plugin DLL] Starting Auth Transition. Op: SIGN_IN status: ERROR_TIMEOUT
или
[Play Games Plugin DLL] Starting Auth Transition. Op: SIGN_IN status: ERROR_NOT_AUTHORIZED
но это об этом. Самое странное, что он открывает всплывающее окно Google Play Games, он запрашивает разрешения, я принимаю его, и все идет так, как должно быть, но в приложении это никогда не удается. Я уже зарегистрировал надстройку платформы на Playfab, добавил веб-приложение, привязанное к консоли разработчика Google, скопировал идентификатор и секрет клиента oauth в playfab, настроил перенаправленный uri и ссылку на конечную точку (ссылки: https://thewikihow.com/video_FIse9VOk-FE, https://api.playfab.com/docs/tutorials/landing-players/sign-in-with-google). Но ничего из этого не работает, я не могу аутентифицироваться с ним, независимо от того, установлен ли он через игровой магазин или нет, единственное, что я еще не пробовал, это тестирование его как альфа-версии в игровом магазине, на данный момент он находится на внутренних тестах .
[Обновление 1:] Код, который я использую при пробуждении:
PlayGamesClientConfiguration config = new
PlayGamesClientConfiguration.Builder()
.AddOauthScope("profile")
.WithInvitationDelegate(GoogleInvitation)
.WithMatchDelegate(GoogleMatch)
.RequestEmail()
.RequestServerAuthCode(false)
.RequestIdToken()
.Build();
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true;
PlayGamesPlatform.Activate();
Код, который я использую для входа в систему:
Social.localUser.Authenticate((success, message) =>
{
Debug.Log("Authentication Message: " + message);
if (success)
{
var serverAuthCode = PlayGamesPlatform.Instance.GetServerAuthCode();
_AuthService.AuthTicket = serverAuthCode;
_AuthService.Authenticate(Authtypes.Google);
}
else
{
Debug.Log("Failed authenticating with google");
}
});
Вы можете предоставить код? Прежде всего, я думаю, тебе нужно вызвать
PlayGamesPlatform.Activate()
После этого все социальные функции должны работать.
Кроме того, чтобы протестировать сервисы Google Play, вам необходимо развернуть свое приложение для альфа / бета-тестирования или выпуска в Play Market и загрузить его с рынка, без этого оно фактически не будет работать.
Вы настроили платформу Google с идентификатором приложения, идентификатором достижений и т. д.? Это можно сделать с помощью Unity Edtior, просто проверьте руководство Google.
да, все это было сделано ... ну, оказывается, меня не было в другом списке для тестирования внутри конфигурации Google Play, я не владелец учетной записи, теперь все остальное решено, спасибо за ваше время, сэр!
Оказалось, что меня не было в списке доступа для тестирования игровых сервисов приложения, так как я не был владельцем, о котором не узнал. Сейчас это решено.
Я получал "Authentical Cancelled" и решил это через этот пост:
в основном это произошло из-за того, что я разрешил Google подписывать приложение своим собственным ключом. Это стало очевидно после того, как я перешел в GooglePlayConsole-> Release Management -> App Signing.
«Для этого приложения включена подписка на Google Play».
Поскольку он был включен, мне пришлось побеспокоиться о другой веб-странице «API Google». Там мне пришлось выбрать «Моя игра» из раскрывающегося списка на ленте, перейти на вкладку «Учетные данные» и создать новые учетные данные с соответствующим SHA-1.
Но ссылка (в этом ответе) объясняет это более подробно.
Я уже вызываю эту функцию, и приложение находится в альфа-версии, поскольку оно загружено и протестировано через рынок, оно все еще не работает (я добавил код, который я использую в вопросе)