Если вы хотите применять один и тот же ID пользователя внутри приложения на этапах разработки, тестирования, обкатки и контроля качества, используйте тестовые приложения.
Facebook выдает ID пользователя внутри приложения людям, которые впервые входят в экземпляр приложения или применяют ограниченный вход, и ID пользователя внутри страницы людям, которые впервые пользуются ботом Messenger. Из этого следует, что ID одного и того же пользователя в разных приложениях и ботах могут различаться.
У компании, например игровой студии, может быть несколько приложений или ботов Facebook, что помогает, например, в проведении перекрестных промоакций, обнаружении фактов мошенничества или взаимодействии с пользователями. В таких случаях может возникнуть необходимость сопоставить ID конкретного пользователя в разных приложениях и ботах.
Идентифицировать одного и того же пользователя в нескольких приложениях можно тремя способами:
Перед тем как использовать эти методы, необходимо сообщить Facebook, что ваши приложения принадлежат одной и той же компании и управляются ей. Для этого с помощью Facebook Business Manager необходимо:
token_for_business
в узле UserСвязав приложение с Business Manager, можно выполнить запрос к полю token_for_business
в узле User
с указанием ID пользователя внутри приложения, полученным в результате ограниченного входа или первого входа в экземпляр приложения. Возвращаемая для пользователя строка одинакова для всех приложений, управляемых этим аккаунтом Business Manager.
GET /me?fields=token_for_business
возвращает следующее:
{ "id": "1234567890" "token_for_business": "weg23ro87gfewblwjef" }
Указания по применению
token_for_business
также изменяется.token_for_business
, но приложение не связано с Business Manager, происходит ошибка.token_for_business
, представляет собой маркер, а не ID. Его нельзя использовать напрямую в API Graph для доступа к информации пользователя. ID необходимо хранить в базе данных и использовать в вызовах API Graph для получения информации пользователя.Для удобства поле token_for_business
доступно во всех версиях API.
token_for_business
в объекте signed_request
холстаЧтобы упростить сопоставление пользователей в нескольких приложениях с использованием холста, при загрузке таких приложений добавляется поле token_for_business
, которое затем передается в них через signed_request
. При этом приложение должно быть связано с Business Manager, и пользователь должен войти в него. Пример:
{ "algorithm": "HMAC-SHA256", "expires": 1414263600, "issued_at": 1414257389, "oauth_token": "CAAGEkq9GMZAkBAFnvvQ3M6msZBKITLa1gVZBVdnLTdJue2QeV6fMKRXn4G6fcEZB5ZAJyg3z6HdaKOJCCMJ1l9YFWmN4hq6nNnx77f9O7SYhsnPcJ6iH79xjFwqhrALgieDp7GiziMy5Y3Mol6RzHvCM5ceqQe9ZAijvrWZB5hEIwphbMQKEwZA4ZBozXP3NJgEZA3nZCMTTtvleWpxfmqIqO5XwxneCZBsZC4", "token_for_business": "AbwoGqummPbF3zp_", "user_id": "10154418713995634" }
Значение поля token_for_business
будет таким же, как и при прямом запросе к узлу User
, например через /me?fields=token_for_business
. В его отношении действуют те же правила. Например, если приложения переходят к другой компании, значение token_for_business
также изменяется.
Если приложение не связано с Business Manager или пользователь не вошел в него, свойство token_for_business
в объекте signed_request
будет отсутствовать.
ids_for_business
в узле UserДля сопоставления ID компании можно сделать вызов к границе контекста ids_for_business
в узле User
. Будет возвращен массив объектов, каждый из которых представляет приложение, в которое также вошел пользователь, связанное с той же компанией, что и вызывающее приложение.
GET /me/ids_for_business
Пример ответа:
{ "data": [ { "id": "10153949089790582", "app": { "name": "Business's App 1", "namespace": "business_app_1", "id": "647733625268125" } }, { "id": "605665581", "app": { "name": "Business's App 2", "namespace": "business_app_2", "id": "370612223054807" } }, { "id": "10154053730190582", "app": { "name": "Business's App 3", "namespace": "business_app_3", "id": "194890427204075" } } ] }
Чтобы API вернул данные, пользователь должен войти в одно или несколько приложений, связанных с той же компанией, что и приложение, из которого выполняется вызов API. Пример: если пользователь вошел в три из пяти приложений, связанных с определенной компанией, API вернет три объекта.
Нет. API Business Mapping полезен только для компаний, которые используют несколько приложений Facebook и которым нужно сопоставлять ID пользователей между ними. Если у вас одно основное приложение, вам вряд ли потребуется использовать API Business Mapping и поэтому не нужно настраивать компанию и связывать с ней приложения.
Business Manager — это инструмент, который позволяет компаниям и агентствам централизованно управлять своими Страницами Facebook, рекламными аккаунтами, приложениями и способами оплаты. Подробнее о Business Manager.
Если вам не требуется API Business Mapping, мы не рекомендуем настраивать компанию. Так как компания должна быть связана с основной Страницей Facebook, настройкой компании в Facebook должен в первую очередь заниматься тот, кто обычно управляет рекламными аккаунтами Facebook и разрешениями для Страницы. Если этот сотрудник уже настроил вашу компанию в Business Manager, вы можете связать приложения с ней.
Нет. Приложение может быть одновременно связано только с одной компанией.
Да. Сначала необходимо удалить приложение из компании, с которой оно связано в данный момент. Это можно сделать в Business Manager. Просто перейдите на вкладку "Приложения" в настройках компании, выберите приложение и нажмите кнопку "Удалить". После этого приложение можно будет связать с другой компанией.