User Profile API позволяет извлекать из пользовательского профиля данные по ID внутри страницы (PSID), чтобы персонализировать переписку в Messenger.
Чтобы получить информацию о пользователе, вам необходим расширенный уровень доступа для функции доступа к профилю пользователя объектов компании. Для доступа к некоторым полям требуются дополнительные разрешения.
В некоторых случаях получить информацию о профиле пользователя по PSID невозможно, даже если идентификатор действителен. Например, PSID, связанные со Страницами моментальных игр, недоступны через User Profile API.
Ваш бот Messenger получает разрешение на доступ к информации о профиле пользователя в результате следующих событий:
askPermission()
SDK расширений Messenger в веб-представлении, чтобы запросить разрешение user_profile
;Некоторые точки входа позволяют приложениям начинать переписку без получения разрешения на получение общедоступной информации о профиле пользователя. В таких случаях приложение получает разрешение на доступ к профилю человека, когда он ответит на изначальное сообщение. Следует отметить ситуации, когда человек начинает переписку с приложением, но не дает разрешение на доступ к профилю. Примеры таких ситуаций:
Сейчас User Profile API не поддерживает получение информации о профиле для аккаунтов Messenger, созданных по номеру телефона.
В этом случае API возвращает ошибку с кодом 2018218
и сообщением "У этого пользователя нет профиля".
Приложения, успешно прошедшие проверку для необходимой функции или разрешения, могут получать следующие поля для пользователей, которые сделали эту информацию доступной всем и дали согласие на получение сообщений от вашей Страницы.
Название поля | Описание | Разрешение |
---|---|---|
| PSID пользователя | Нет |
| Имя и фамилия пользователя | Нет |
| имя | Нет |
| фамилия | Нет |
| Фото профиля | Нет |
| Локаль пользователя на Facebook |
|
| Часовой пояс — число, связанное с GMT |
|
| Пол |
|
Чтобы использовать User Profile API, отправьте запрос GET
с полями профиля пользователя, которые вы хотите получить:
curl -X GET "https://graph.facebook.com/<PSID>?fields=first_name,last_name,profile_pic&access_token=<PAGE_ACCESS_TOKEN>"
Если у приложения есть доступ к профилю человека, User Profile API вернет строку JSON с запрошенными полями этого профиля.
{
"first_name": "Peter",
"last_name": "Chang",
"profile_pic": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpf1/v/t1.0-1/p200x200/13055603_10105219398495383_8237637584159975445_n.jpg?oh=1d241d4b6d4dac50eaf9bb73288ea192&oe=57AF5C03&__gda__=1470213755_ab17c8c8e3a0a447fed3f272fa2179ce",
"locale": "en_US",
"timezone": -7,
"gender": "male",
"last_ad_referral": {
"source": "ADS",
"type": "OPEN_THREAD",
"ad_id": "6045246247433"
}
}
Если у приложения нет доступа к профилю, будет возвращен пустой объект.