Анонимный режим запуска игр

В ОК есть возможность запускать игры неавторизованными пользователями на следующих платформах:

Для приложений ОК на платформах android и ios анонимный режим не поддерживается.

В данный момент эта возможность находится на этапе beta-тестирования, поэтому для подключения данного режима требуется обратиться к команде игровой платформы ОК, оставив заявку либо на jira.apiok.ru, либо написав на почтовый адрес api-support@ok.ru.

Подключить данную возможность можно только для игр, которые уже запущены в Одноклассниках.

Запуск игры в анонимном режиме

После подключения анонимного режима ваша игра станет доступна для пользователей, которые не авторизованы в ОК.

Это накладывает несколько ограничений:

  • вместо настоящего id пользователя в фрейм игры передаётся logged_user_id = 0;
  • в данный момент практически все методы FAPI недоступны;
  • в данный момент практически все методы OK API недоступны.

Список доступных методов FAPI и OK API будет дополняться в будущем.

Хранение состояния / прогресса пользователя

При запуске игры в анонимном режиме платформа ОК не хранит никакой информации о состоянии пользователя.

Хранения прогресса пользователя в игре должно быть реализовано на стороне игры.

Рекомендуется предусмотреть инструмент трансляции прогресса игры в текстовое представление и, наоборот, при авторизации - из текстового представление в реальный прогресс в игре.

Конвертация анонимного пользователя в авторизованного

Для конвертации анонимного пользователя в реального пользователя необходимо предлагать пользователю авторизоваться в ОК.

Реализовать это можно двумся способами:

  • с помощью метода FAPI.invokeUIMethod(“showLogin”) - это авторизация без дополнительного UI. Пользователя сразу перенаправляет на страницу авторизации, а после успешной авторизации - на страницу игры;
  • с помощью метода FAPI.UI.showLoginSuggestion - авторизацией с показом дополнительного UI от ОК с информацией о предложении авторизоваться. Пользователь может как согласиться пройти авторизацию, так и отказаться.

В качестве параметра метод принимает произвольную строку, в которой вы можете хранить некоторое состояние (state) пользователя:

/*авторизация без подтверждения пользователя*/
function showLogin(){
    FAPI.invokeUIMethod("showLogin", "some_user_state_as_a_string");
}

/*авторизация с подтверждением пользователя*/
function showLoginSuggestion(){
   FAPI.UI.showLoginSuggestion("some_user_state_as_a_string");
}

Если пользователь успешно пройдёт авторизацию в ОК, то он будет перенаправлен в игру. Указанный при вызове метода state будет передан в фрейм игры в параметре saved_state.

С помощью данного параметра вы можете либо перенести прогресс анонимного пользователя для авторизованного пользователя, либо, например, наградить его за авторизацию.

Обратите внимание, что один и тот же пользователь может переходить из неавторизованного в авторизованное состояние неограниченное количество раз и платформа OK всегда будет передавать saved_state после авторизации.