Управляемые аккаунты Meta и сторонние интеграции

Обзор

Управляемые аккаунты Meta предназначены для инструментов для бизнеса в продуктах Meta. Для управления такими аккаунтами организации получают различные административные функции, такие как поддержка единого входа, автоматическое предоставление аккаунтов и др. Лица, владеющие этими аккаунтами, могут получать доступ к инструментам Meta для компаний, таким как Business Manager, с использованием своих рабочих учетных данных. Личные аккаунты Facebook для этого не требуются.

Управляемые аккаунты Meta предназначены исключительно для работы, поэтому для них действуют следующие ограничения:

  • В них нет социальной хроники и Ленты новостей Facebook.
  • У них нет доступа к продуктам и интерфейсам для клиентов на facebook.com, но они могут делать публикации от имени Страницы.
  • Они не могут иметь разрешений на личные объекты (это возможно только для бизнес-аккаунтов).
  • Они могут предоставлять разрешения только для бизнес-приложений и не могут предоставлять разрешения, относящиеся к user_*, например user_friends или user_posts. Примечание. Управляемые аккаунты Meta могут выполнять запросы процессов входа, но разрешения, относящиеся к user_*, будут игнорироваться.
Произошла ошибка
Не удается воспроизвести видео.

Интеграция сторонних приложений

Пользователи компаний, выполняющих перенос на управляемые аккаунты Meta, будут обращаться к инструментам Meta для бизнеса с указанием своих рабочих учетных данных, а не личных аккаунтов Facebook. Чтобы сохранить доступ к собственным и сторонним инструментам Meta, пользователи должны завершить перенос до конечного срока, который определяется на уровне компании. Важно отметить, что конечный срок устанавливается организацией специально для отдельных пользователей в конкретных подразделений компании. После переноса пользователи смогут входить в Business Manager, используя свои управляемые аккаунты Meta, а не аккаунты Facebook. Это обеспечит им постоянный доступ к необходимым инструментам и ресурсам.

Если ваше приложение обращается к объектам клиентских компаний, используя маркеры доступа системного пользователя или обмен информацией с партнерами, это не должно повлиять на вашу стороннюю интеграцию. Если ваше приложение использует маркеры доступа пользователей (или маркеры доступа страниц, сгенерированные с применением маркеров доступа пользователей), разрешения вашего приложения и права доступа к объектам компании, предоставленные аккаунтам Facebook, не будут автоматически применяться к новым управляемым аккаунтам Meta. Чтобы сохранить доступ ваших приложений к этим объектам, пользователи должны будут повторно предоставить разрешения для объектов компании, используя свои новые управляемые аккаунты Meta.




Руководство для поставщиков технологий

Чтобы заранее минимизировать возможные перебои в запросах API, рекомендуется предусмотреть в приложении следующее:

  • Возможность заранее повторно авторизовать объекты (например, страницы или рекламные аккаунты) до того, как маркер станет недействительным. Это можно сделать путем периодической проверки поля user_access_expire_time каждого объекта и отправки пользователям запроса на повторную авторизацию, если возвращается метка времени.
  • Возможность массовой повторной авторизации отключенных или отключаемых в ближайшем будущем объектов для пользователей. Это можно сделать, предоставив в приложении кнопку "Подключить заново" или "Заменить устаревшие маркеры", которая позволяла бы пользователям заново подключить все объекты их компании одновременно, а не по одному. Эта кнопка должна инициировать вызов API к вашему серверу со списком ID объектов компании и новым маркером доступа в качестве параметров. Ваш сервер может затем использовать новый маркер доступа для каждого объекта компании в списке и надежно сохранить их в базе данных или хранилище вашего приложения.
  • Начало тестирования

    Чтобы убедиться, что ваши интеграции поддерживают управляемые аккаунты Meta, используйте песочницу.

    Тестирование управляемых аккаунтов Meta

    В разделе "Тестовые пользователи" на панели вашего приложения имеется возможность создавать эмулированные управляемые аккаунты Meta для тестирования реализации входа через Facebook, разрешений и функций, которые используются в вашем приложении, а также управлять этими аккаунтами. Используя возможности инструмента тестирования пользователей для создания тестовых пользователей управляемых аккаунтов Meta и управления ими, вы можете сделать удобнее работу пользователей, вошедших в управляемые аккаунты Meta, при интеграции функциональности входа через Facebook в ваше приложение.

    Эти тестовые аккаунты не могут взаимодействовать с реальными пользователями, а все данные, которые вы создаете с помощью тестового пользователя, видны только другим тестовым пользователям вашего приложения и реальным пользователям, имеющим в этом приложении роли администратора, разработчика или тестировщика. Создавать, редактировать, удалять тестовых пользователей, а также входить в их аккаунты можно только в панели приложений. Это нельзя делать через Graph API.

    Ограничения

    Дополнительные сведения об ограничениях тестовых пользователей см. в основной документации. Ограничения для тестовых пользователей Facebook применяются и к тестовым управляемым аккаунтам Meta с одним исключением: приложения могут иметь только 1 тестовый управляемый аккаунт Meta.

    Создание тестовых управляемых аккаунтов

    Чтобы создать тестовых пользователей, в Панели приложений перейдите в раздел Тестовые пользователи на панели Роли > Тестовые пользователи, выберите вкладку Управляемые аккаунты Meta и нажмите кнопку Создать тестовых пользователей. Откроется окно, в котором можно создать тестовый аккаунт.

    В окне Создание тестовых аккаунтов можно:

    • создать отдельный тестовый аккаунт;
    • выбрать, будет ли приложение установлено по умолчанию для созданного тестового аккаунта;
    • выбрать версию Graph API для использования в вызовах;
    • предоставить разрешения для приложения для каждого тестового пользователя.

    После создания тестовые пользователи появятся в таблице управляемых аккаунтов Meta.

    Тестирование с использованием управляемых аккаунтов Meta

    Вы можете протестировать работу приложения, выполнив вход через Facebook с учетными данными тестового управляемого аккаунта Meta и предоставив приложению необходимые разрешения. Кроме того, чтобы предоставить приложению разрешения от имени тестового пользователя, можно нажать значок многоточия (•••) в столбце "Параметры" в строке выбранного тестового пользователя в таблице управляемых аккаунтов Meta. Значок многоточия позволяет изменить разрешения, которые тестовый пользователь предоставил вашему приложению, создать для него маркеры доступа пользователя и войти в его аккаунт.

    После входа в тестовый аккаунт рекомендуется назначить объекты компании, необходимые для успешной интеграции приложений. Это можно сделать в разделе Настройки компании, где можно управлять бизнес-портфолио вашего тестового пользователя и назначенными ему объектами, такими как страницы, рекламные аккаунты и каталоги товаров.

    Моделирование переноса с тестовыми пользователями

    Вы можете смоделировать изменения в разрешениях для компании, которые происходят при переносе пользователя Facebook на управляемый аккаунт Meta, чтобы протестировать, как перенос пользователей влияет на ваше приложение. Чтобы использовать эту функцию, перейдите на страницу тестового пользователя Facebook, нажмите значок многоточия (•••) в столбце "Параметры", затем нажмите Передать разрешения для компании в управляемый аккаунт Meta и следуйте инструкциям.

    Для использования этой функции выполните следующие действия:

  • создайте тестового пользователя Facebook;
  • убедитесь, что у тестового пользователя Facebook есть доступ к бизнес-портфолио с объектами (такими как страницы или каталоги);
  • убедитесь, что тестовый пользователь Facebook предоставил разрешения для доступа к данным компании;
  • создайте тестового пользователя, которому необходимо передать разрешения для доступа к данным компании.
  • После передачи разрешений вы сможете:

  • Входить в систему с использованием аккаунта, чтобы посмотреть информацию о подключении пользователей
  • Извлекать поля user_access_expire_time с использованием маркера доступа тестового пользователя Facebook
  • Webhooks

    Webhooks — это инструмент, позволяющий приложениям получать автоматические уведомления об изменениях в доступе пользователя к определенным объектам данных. Инструмент Webhooks расширяет возможности вашего приложения для разработки, предоставляя своевременные автоматические обновления. После оформления подписки Webhooks отправляет уведомление в ваше приложение для разработки. Это уведомление содержит полезную нагрузку с указанием ID пользователя внутри приложения и времени истечения срока действия.

    Основные особенности:

    • уведомление за 30 дней — инструмент оповещает вас за 30 дней, когда пользователь инициирует перенос управляемых аккаунтов Meta или продлевает период переноса;
    • оповещение об истечении срока доступа — инструмент своевременно информирует вас о том, когда доступ будет утрачен из-за переноса аккаунта.

    Примечание. Уведомления Webhooks активируются в начале 30-дневного окна после начала переноса. Благодаря этому ваше приложение будет оперативно получать информацию обо всех важных изменениях в доступе пользователей к данным, что позволит обеспечить плавный переход и управление объектами данных.

    Подписка

    Чтобы получать уведомления, вам необходимо подписаться на информацию о переносе управляемых аккаунтов Meta пользователя. Мы создадим новый компонент Webhooks, на который вы сможете подписаться.

    Если вы только начали использовать Webhooks, ознакомьтесь с нашим руководством по началу работы с Webhooks, чтобы настроить свои Webhooks и протестировать темы Webhooks, на которые вы подписаны.

    Чтобы настроить Webhooks управляемых аккаунтов Meta, на панели приложений перейдите в раздел Продукты > Webhooks, в раскрывающемся меню выберите Управляемый аккаунт Meta и нажмите Подписаться для этого объекта.

    Уведомление

    Уведомления о событиях Webhooks отправляются при каждом изменении даты окончания переноса управляемых аккаунтов Meta (когда закончится гибридный режим пользователей). Это произойдет во время создания переноса, а также если пользователь запросит продление своего гибридного режима и получит дополнительное время гибридного режима.

    Пример уведомления о событии управляемого аккаунта Meta:

    {
      "field": "migration_expire_time",
      "value": {
        "user_id": "4444444444",
        "migration_expire_time" => "2024-05-04T10:00:00Z"
      }
    }
    

    API переноса и устранение неполадок

    API переноса на управляемые аккаунты Meta и документация по устранению неполадок предоставляют информацию о том, как определить, какие пользователи и бизнес-аккаунты выполняют перенос, и сроки их действия, а также узнать, являются ли они управляемыми аккаунтами Meta. Возвращаемое логическое значение is_work_account указывает, задействует ли пользователь управляемый аккаунт Meta. Его можно получить в объекте пользователя. Поле user_access_expire_time — это метка времени, которая указывает, когда будет отозван доступ пользователя к конкретным объектам. Когда это время пройдет, у пользователя не должно остаться доступа на управление этими объектами. Последующие вызовы API с применением маркера доступа пользователя Facebook, требующие доступа к этим объектам, будут возвращать ошибки разрешений. Поле user_access_expire_time можно получить в следующих объектах:

    Ограничения

    Поле user_access_expire_time имеет некоторые ограничения. Оно возвращает только дату и время истечения срока действия для объектов, к которым пользователь имеет явный доступ с применением разрешений компании, выполняющей перенос на рабочие аккаунты. Например, метка времени будет возвращена, только если пользователь Facebook является администратором Страницы в переносимом бизнес-аккаунте. Страницы, принадлежащие выполняющим перенос компаниям, не назначенные непосредственно пользователю, не вернут эту метку времени.

    Рекомендуемое использование

    Эти данные можно использовать в различных сценариях для расширения функциональности вашего приложения и превентивного сокращения количества проблем с аутентификацией и разрешениями, с которыми могут столкнуться ваши клиенты:
    • для проверки того, что полученные от клиента маркеры доступа принадлежат управляемому аккаунту Meta;
    • для проверки срока прекращения доступа пользователя к объектам компании;
    • для отправки пользователям уведомлений или напоминаний о прекращении их доступа к определенным объектам и предложений авторизоваться с использованием своих аккаунтов, чтобы сохранить функциональность;
    • для обработки ошибок API путем обнаружения закончившегося доступа и выдачи пользователям соответствующих сообщений об ошибках или инструкций по подключению их аккаунтов к доступу к этим объектам компании.

    Примеры вызовов Graph API

    1. Получение статуса is_work_account

    Запрос
    GET /<API_VERSION>/<USER_ID>?fields=is_work_account
    
    Ответ
    {
      "id": "<USER_ID>",
      "name": "Romane Richter"
      "is_work_account": true
    }
    2. Получение user_access_expire_time в пределах 30-дневного окна

    Запрос
    GET /<API_VERSION>/<OBJECT_ID>?fields=user_access_expire_time&access_token=<ACCESS_TOKEN>
    Ответ
    {
       "user_access_expire_time": "2023-06-23T12:00:00+00:00"
    }
    3. Запрос поля до переноса вернет пустой набор данных

    Запрос
    GET /<API_VERSION>/<OBJECT_ID>?fields=user_access_expire_time&access_token=<ACCESS_TOKEN>
    Ответ
    {}
    
    4. Запросы через 30 дней после переноса (по истечении user_access_expire_time), скорее всего, вернут ошибки

    Запрос
    GET /<API_VERSION>/<OBJECT_ID>?fields=user_access_expire_time&access_token=<ACCESS_TOKEN>
    Ответ
    {
      "error": {
        "message": "(#100) Object does not exist, cannot be loaded due to missing permission or reviewable feature, or does not support this operation. This endpoint requires the 'pages_read_engagement' permission or the 'Page Public Content Access' feature or the 'Page Public Metadata Access' feature. Refer to https://developers.facebook.com/docs/apps/review/login-permissions#manage-pages, https://developers.facebook.com/docs/apps/review/feature#reference-PAGES_ACCESS and https://developers.facebook.com/docs/apps/review/feature#page-public-metadata-access for details.",
        "type": "OAuthException",
        "code": 100,
        "fbtrace_id": "AZdHiJUBflrZnE-RNKrHAah"
      }
    }
    

    Разрешения и ошибки

    Чтобы обращаться к полю user_access_expire_time и выполнять вызовы API к нему, разработчики должны убедиться в том, что для загрузки этих объектов даны необходимые разрешения. В примерах выше, если object-id указывает на ID объекта компании, у пользователя должно быть как минимум разрешение business_management для загрузки объекта. Подробнее см. в этой статье.
    При попытке доступа к объекту после истечения срока действия API должен возвращать общую ошибку с кодом 100 и типом OAuthException. Это означает, что объект больше не доступен через API, поскольку у пользователя больше нет доступа к этому объекту.

    См. также

    Часто задаваемые вопросы об интеграциях поставщиков технологий.

    API call disruptions related to managed Meta account migrations might be caused by:

    1. Users failing to migrate before the deadline set by their business/organization
    2. Users failing to re-authenticate with your apps using the managed Meta accounts