С выпуском версии 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 и недоступны для других платформ.
Имя | Описание |
---|---|
| Значение перечислимого типа, которое указывает, нужно ли включать отслеживание для запроса на вход. Допустимые варианты: |
| Вспомогательный класс, который содержит строку маркера аутентификации, предоставленного вашему приложению текущим пользователем. Этот маркер содержит такие данные, как ID пользователя, его имя, фото профиля и электронный адрес (если они предоставлены пользователем). |
| Вспомогательный класс, позволяющий получить базовые данные профиля на основе маркера |
Имя | Описание |
---|---|
| Предлагает пользователю предоставить приложению запрошенные разрешения на основе выбранного режима отслеживания. |
| Возвращает маркер AuthenticationToken, предоставленный приложению текущим пользователем. |
| Возвращает базовые данные профиля, предоставленные приложению текущим пользователем. |
FB.Mobile.LoginWithTrackingPreference
Параметры
LoginTracking
— значение перечислимого типа (ENABLED
или LIMITED
). Scopes
— разрешения (Permissions
) для данного запроса. Nonce
— необязательная строка, используемая для проверки ответа. IResult
) — функция обратного вызова, которая обрабатывает ответ входа.Результат: обрабатывает запросы пользователя на вход и его сеанс.
FB.Mobile.CurrentAuthenticationToken
Параметры: нет.
Результат: возвращает маркер AuthenticationToken с базовыми данными из профиля пользователя, включая ID, имя, фото профиля и адрес электронной почты (если пользователь предоставил соответствующее разрешение).
FB.Mobile.CurrentProfile
Параметры: нет.
Результат: возвращает объект Profile, содержащий базовые данные из профиля пользователя. Они автоматически извлекаются из маркера аутентификации пользователя.
Перед использованием маркера OIDC на сервере выполните проверку маркера среди открытых ключей Facebook и убедитесь, что значение nonce
соответствует значению nonce
, которое вы указали.