Ограниченный вход для Unity

С выпуском версии 9.0 SDK для iOS был обновлен и SDK для Unity, и теперь разработчики iOS могут предлагать своим пользователям функцию ограниченного входа. Если говорить вкратце, в рамках этого обновления был добавлен маркер аутентификации, который позволяет проверить идентификационные данные пользователя при входе, а также другие функции API Graph, доступные при использовании классического входа через Facebook.

Разрешения

Ограниченный вход предлагает ограниченный набор разрешений, которые вы можете запросить:

  • public_profile
  • email
  • gaming_profile
  • gaming_user_picture
  • user_age_range
  • user_birthday
  • user_friends
  • user_gender
  • user_hometown
  • user_link
  • user_location
  • user_messenger_contact

Реализация ограниченного входа

Чтобы использовать ограниченный вход с SDK для Unity, с помощью функции LoginWithTrackingPreference укажите для параметра LoginTracking значение LIMITED для соответствующего запроса на вход. Кроме того, разработчики могут добавлять необязательное значение nonce, позволяющее проверить ответ от SDK для Unity. Подробнее о проверке маркера OIDC см. в статье Проверка маркера OIDC для ограниченного входа.

FB.Mobile.LoginWithTrackingPreference(LoginTracking.LIMITED, scopes, "nonce123", this.HandleResult);

Получение данных профиля

После завершения процесса входа в режиме ограниченного входа или классического входа через Facebook разработчик теперь может получить от SDK для Unity маркер AuthenticationToken. Для получения базовых данных из профиля пользователя разработчик может запросить объект Profile с помощью функции CurrentProfile, и при этом будет прочитан соответствующий маркер AuthenticationToken.

private void GetProfileInfo()
{
     var profile = FB.Mobile.CurrentProfile();
     if(profile != null) {
          this.userName = profile.Name;
          this.userId = profile.UserID
          this.userEmail = profile.Email;
          this.profileImageUrl = profile.ImageURL;
          this.userBirthday = profile.Birthday;
          this.userAgeRange = profile.AgeRange;
          this.userFriendIDs = profile.FriendIDs;
          this.userGender = profile.Gender;
          this.userLink = profile.LinkURL;
          this.userHometown = profile.Hometown;
          this.userLocation = profile.Location;
     }
}

Помните, что функция ограниченного входа и класс профиля Profile в настоящее время доступны только в SDK для iOS и недоступны для других платформ.

Справка

Базовые данные

Имя Описание

LoginTracking

Значение перечислимого типа, которое указывает, нужно ли включать отслеживание для запроса на вход. Допустимые варианты: ENABLED и LIMITED.

AuthenticationToken

Вспомогательный класс, который содержит строку маркера аутентификации, предоставленного вашему приложению текущим пользователем. Этот маркер содержит такие данные, как ID пользователя, его имя, фото профиля и электронный адрес (если они предоставлены пользователем).

Profile

Вспомогательный класс, позволяющий получить базовые данные профиля на основе маркера AuthenticationToken текущего пользователя.

Методы

Имя Описание

FB.Mobile.LoginWithTrackingPreference

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

FB.Mobile.CurrentAuthenticationToken

Возвращает маркер AuthenticationToken, предоставленный приложению текущим пользователем.

FB.Mobile.CurrentProfile

Возвращает базовые данные профиля, предоставленные приложению текущим пользователем.

FB.Mobile.LoginWithTrackingPreference

Параметры

  1. LoginTracking — значение перечислимого типа (ENABLED или LIMITED).
  2. Scopes — разрешения (Permissions) для данного запроса.
  3. Nonce — необязательная строка, используемая для проверки ответа.
  4. Обработчик результата (IResult) — функция обратного вызова, которая обрабатывает ответ входа.

Результат: обрабатывает запросы пользователя на вход и его сеанс.

FB.Mobile.CurrentAuthenticationToken

Параметры: нет.

Результат: возвращает маркер AuthenticationToken с базовыми данными из профиля пользователя, включая ID, имя, фото профиля и адрес электронной почты (если пользователь предоставил соответствующее разрешение).

FB.Mobile.CurrentProfile

Параметры: нет.

Результат: возвращает объект Profile, содержащий базовые данные из профиля пользователя. Они автоматически извлекаются из маркера аутентификации пользователя.

Проверка маркера OIDC

Перед использованием маркера OIDC на сервере выполните проверку маркера среди открытых ключей Facebook и убедитесь, что значение nonce соответствует значению nonce, которое вы указали.