Вход через Facebook для компаний

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

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

Требования

  • Ваше приложение Meta должно быть бизнес-приложением.
  • Пользователь вашего приложения должен дать все разрешения, которые приложение запрашивает во время входа. В противном случае приложение не получит ни одного разрешения.
  • Разрешения email и public_profile предоставляются всем приложениям автоматически. При этом для каждого приложения должно быть добавлено как минимум ещё одно поддерживаемое разрешение.
  • Чтобы работать с компаниями, которые вам не принадлежат и которыми вы не управляете, ваше приложение должно получить расширенный доступ, пройдя проверку приложения Meta.
  • Приложения, получившие расширенный доступ, должны проходить регулярные проверки, чтобы сохранить его. Однако для приложений, использующих вход через Facebook для компаний, требования к некоторым регулярным проверкам снижены, поскольку они ограничены доступом к разрешениям и функциям для компаний.

Поддерживаемые разрешения

В следующей таблице перечислены доступные разрешения для входа через Facebook для компаний.

Доступные разрешенияМаркеры доступа пользователяМаркеры доступа системного пользователя бизнес-интеграции (WhatsApp)
ads_management

ads_read

business_management

catalog_management

commerce_account_manage_orders

commerce_account_read_orders

commerce_account_read_reports

commerce_account_read_settings

commerce_manage_accounts

email

Неприменимо

instagram_basic

instagram_content_publish

instagram_manage_comments

instagram_manage_insights

instagram_manage_messages

instagram_shopping_tag_products

leads_retrieval

manage_app_solutions

manage_fundraisers

pages_manage_cta

page_events

pages_manage_ads

pages_manage_engagement

pages_manage_instant_articles

pages_manage_metadata

pages_manage_posts

pages_messaging

pages_read_engagement

pages_read_user_content

pages_show_list

private_computation_access

public_profile

Неприменимо

publish_video

read_insights

read_audience_network_insights

whatsapp_business_management

whatsapp_business_messaging

Поддерживаемые функции

  • Стандартный доступ к управлению рекламой
  • Доступ к профилю пользователя объектов компании
  • Оператор
  • Доступ к общедоступному контенту в Instagram
  • Live Video API
  • Упоминания Страницы
  • Возможность обращения к общедоступному контенту Страницы.
  • Обращение к общедоступным метаданным Страницы

Поддерживаемые маркеры доступа

Вход через Facebook для компаний можно использовать для получения маркеров доступа системного пользователя бизнес-интеграции или маркеров доступа пользователя.

Маркеры доступа пользователя

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

Маркеры доступа системного пользователя бизнес-интеграции

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

  • ежечасные автоматические вызовы API взаимодействия между серверами;
  • отправка автоматических ответов от имени Страницы Facebook или бизнес-портфолио WhatsApp;
  • постоянные автоматические обновления ассортимента каталогов товаров;
  • автоматическое получение статистики рекламы.

Требования

Для получения маркеров доступа системного пользователя бизнес-интеграции от клиентов:

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

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

Модульные маркеры доступа системного пользователя бизнес-интеграции

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

Модульные маркеры доступа зависят от бизнес-портфолио клиента. Ими нельзя делиться с компаниями других клиентов и использовать их в других компаниях. Их область действия и список объектов являются подмножеством области и объектов исходного маркера доступа системного пользователя бизнес-интеграции.

Во избежание потенциальных проблем безопасности, если маркер будет скомпрометирован, это повлияет только на конкретную клиентскую компанию и не затронет остальные бизнес-портфолио других клиентских компаний.

API управления маркерами доступа системных пользователей бизнес-интеграции

Когда компания-клиент устанавливает приложение через вход через Facebook для компаний и генерирует маркер доступа системного пользователя бизнес-интеграции, маркер включает в себя ID компании-клиента. Этот ID представляет компанию-клиента и используется вашим приложением в вызовах API.

Конечная точка /<CLIENT_BUSINESS_ID>/system_user_access_tokens позволяет управлять существующими маркерами доступа системных пользователей бизнес-интеграции. Возможные действия:

  • генерация модульных маркеров доступа системных пользователей бизнес-интеграции для существующих маркеров доступа системных пользователей бизнес-интеграции;
  • получение существующих маркеров доступа системных пользователей бизнес-интеграции.
Параметры
ОбъектОписание

access_tokenСтрока

Обязательный параметр. Для этого маркера доступа требуется разрешение business_management.

appsecret_proofСтрока

Обязательный параметр.appsecret_proof — это хэш sha256 маркера доступа, гарантирующий повышенную безопасность вызовов API с сервера.

assetЦелое число

Необязательный параметр. Если вы хотите сгенерировать более модульный маркер, в параметре asset можно задать массив ID объектов через запятую. Этот список должен быть подмножеством объектов исходного маркера доступа.

fetch_onlyЛогическое значение

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

scopeЛогическое значение

Необязательный параметр. Если вы хотите сгенерировать более модульный маркер, в параметре scope можно задать массив ID областей действия через запятую. Этот список должен быть подмножеством областей действия исходного маркера доступа.

set_token_expires_in_60_daysЛогическое значение

Необязательный параметр. При генерации нового маркера задайте значение true, чтобы срок его действия истек через 60 дней.

system_user_idЦелое число

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

Пример запроса

Для удобства чтения применено форматирование.

curl -i -X POST "https://graph.facebook.com/v21.0/<CLIENT_BUSINESS_ID>/system_user_access_tokens
    ?appsecret_proof=<APPSECRET_PROOF_HASH>
    &access_token=<ACCESS_TOKEN>
    &system_user_id=<SYSTEM_USER_ID>
    &fetch_only=true"

В случае успеха ваше приложение получит ответ JSON с новым маркером доступа для использования в последующих вызовах API.

{
  "access_token": "<NEW_ACCESS_TOKEN>" 
}

Сравнение

Маркеры доступа системного пользователя бизнес-интеграцииМаркеры доступа пользователя

Обозначения доступа

Доступ явным образом предоставляется при авторизации. Ваше приложение может получить доступ только к тем объектам, которые были указаны вашим клиентом при выполнении процесса входа через Facebook для компании. Только для поставщиков технологий.

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

Связь с аккаунтом

Связаны с бизнес-портфолио вашего клиента, а не с конкретным пользователем. Любой администратор группы вашего клиента может предоставить вашему приложению маркер доступа системного пользователя.

Связаны с личным аккаунтом пользователя вашего приложения.

Срок действия и обновление

По умолчанию срок действия не истекает никогда для обычного взаимодействия между серверами в режиме офлайн.

Маркер краткосрочного действия для операций в режиме онлайн, таких как работа в веб-браузере.

Тип предоставления OAuth

Только предоставление кода авторизации.

Неявное предоставление по умолчанию. Может также поддерживать предоставление кода авторизации для повышения степени безопасности. В основном используется для клиентов типа "пользовательский агент", таких как веб-браузеры и мобильные приложения.

Представление

Часть инфраструктуры интеграции поставщика технологий, инициализируемая компанией клиента путем установки приложений поставщика.

Представляет серверы или программное обеспечение, выполняющие вызовы API к объектам, которые принадлежат Business Manager или управляются им.

Аннулирование маркера

Ваши компании-клиенты могут аннулировать маркеры доступа системных пользователей бизнес-интеграции. Для этого им нужно выбрать Business Manager > Настройки > Настройки компании > Интеграции > Подключенные приложения и удалить ваше приложение.

Чтобы аннулировать маркеры доступа пользователя, вашим клиентам нужно перейти на Facebook, выбрать Настройки и конфиденциальность > Настройки > Безопасность и вход > Бизнес-интеграции и удалить ваше приложение.

Процесс входа

Процесс входа с маркером доступа пользователяПроцесс входа с маркером доступа пользователя бизнес-интеграции
Произошла ошибка
Не удается воспроизвести видео.
Произошла ошибка
Не удается воспроизвести видео.

Начало работы

Чтобы настроить вход через Facebook для компаний, если у вас ещё нет приложения, выполните следующие действия.

Создание приложения

  1. В панели приложений Meta создайте бизнес-приложение.
  2. Добавьте продукт Вход через Facebook для компаний.
  3. В меню слева выберите Конфигурации.
  4. Чтобы создать конфигурацию, выберите + Создать конфигурацию. Чтобы использовать одну из предварительно настроенных конфигураций Meta, выберите Создать по шаблону. Можно создать несколько конфигураций и передать их пользователям разного типа.
  5. Укажите имя своей конфигурации.
  6. Выберите тип маркера доступа, который вы будете запрашивать у своих клиентов-компаний (маркер доступа пользователи или маркер доступа системного пользователя) и срок его действия. Если выбрать маркер доступа пользователя, пользователи вашего приложения будут входить в него, указывая свой личный аккаунт Facebook. Если выбрать маркер доступа системного пользователя, пользователи вашего приложения будут входить в него, указывая бизнес-портфолио. Это необходимо, только если конфигурации требуется постоянный доступ к объектам компании, например Страницам Facebook, рекламным аккаунтам или аккаунтам Instagram.
  7. Выберите все объекты, к которым у вашего приложения должен быть доступ.
  8. Выберите разрешения, которые нужны вашему приложению, и нажмите Создать.

Вы получите ID конфигурации, который будете использовать в коде для вызова диалога входа.

Создание конфигурации со встроенной регистрацией на платформе WhatsApp Business

Информацию о том, как создать конфигурацию со встроенной регистрацией в WhatsApp, см. в нашем руководстве.

Создание конфигурации с Conversions API для бизнес-переписок

Информацию о том, как создать конфигурацию с Conversions API для переписок, см. в нашем руководстве.

Создание конфигурации с Instagram Graph API

Информацию о том, как создать конфигурацию с Graph API, см. в нашей документации по Instagram Graph API.

Вызов диалога входа

Вызовите диалог входа с помощью одного из наших SDK (рекомендуемый способ) или создайте свой процесс входа вручную.

Вызов диалога входа с использованием наших SDK

Чтобы вызвать диалог входа, вы можете использовать любой из наших SDK — для этого следует заменить список областей действия (разрешений), которые необходимы вашему приложению, указав вместо них ID конфигурации и требуемый тип предоставления OAuth маркера доступа.

Если вы не знакомы с нашими SDK, рекомендуем сначала установить SDK для JavaScript и обеспечить его работу с продуктом для входа через Facebook, поскольку в следующих примерах используется этот SDK.

Конфигурации маркеров доступа системного пользователя бизнес-интеграции

Ниже показан пример метода FB.login() из SDK для JavaScript, измененного таким образом, чтобы использовать конфигурацию для маркера доступа системного пользователя. Обратите внимание, что параметр config_id заменил параметр scope, который не должен использоваться, а для параметра response_type установлено значение code, поскольку маркеру доступа системного пользователя необходим тип предоставления кода авторизации, а для override_default_response_type должно быть установлено значение true. Если установлено значение true, все типы ответов, передаваемых в response_type, будут иметь приоритет над типами, установленными по умолчанию.

FB.login(
  function(response) [
    console.log(response);
  ],
  [
    config_id: '<CONFIG_ID>',
    response_type: 'code',
    override_default_response_type: true
  ]
);

Когда пользователь пройдет процесс с использованием диалога входа, мы перенаправим его на ваш URL перенаправления и укажем код. Затем вам необходимо обменять этот код на маркер доступа, отправив межсерверный вызов к нашим серверам.

GET https://graph.facebook.com/v21.0/oauth/access_token?
  client_id=<APP_ID>
  &client_secret=<APP_SECRET>
  &code=<CODE>

Подробнее об этом шаге см. в статье Обмен кода на маркер доступа.

Конфигурации маркеров доступа пользователя

Ниже приведен пример метода FB.login() из SDK для JavaScript, который изменен для использования конфигурации для маркера доступа пользователя. Обратите внимание, что параметр config_id заменил параметр scope (параметр scope по-прежнему можно использовать, однако мы рекомендуем не делать этого).

FB.login(
  function(response) {
    console.log(response);
  },
  {
    config_id: '<CONFIG_ID>' // configuration ID goes here
  }
);

Ниже приведен пример кнопки входа из SDK для JavaScript, который изменен для использования конфигурации маркера доступа пользователя:

<fb:login-button config_id="<CONFIG_ID>" onlogin="checkLoginState();"></fb:login-button>

Создание процесса входа вручную

Информацию о том, как вызвать диалог входа вручную, см. в статье Создание процесса входа вручную. При вызове диалога входа и настройке URL перенаправления в качестве дополнительного параметра добавьте ID конфигурации (область действия можно использовать по-прежнему, однако мы рекомендуем не делать этого).

config_id=<CONFIG_ID>

Переключение на вход через Facebook для компаний

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

Вход через Facebook для компаний можно использовать в бизнес-приложениях.

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

  1. Выберите свое приложение в Панели приложений.
  2. Перейдите в продукт "Вход через Facebook" или добавьте его.
  3. В меню слева нажмите Настройки или Начало работы.
  4. Нажмите кнопку "Начать работу с входом через Facebook для компаний" вверху страницы.

Обратите внимание: переключение на вход через Facebook для компаний не повлияет на ваши текущие маркеры доступа. Кроме того, все тестовые приложения, связанные с этим приложением, также переключаться на вход через Facebook для компаний.

После переключения для вашего приложения будет установлен тип Бизнес. Если приложение не работает должным образом, в течение 30 дней после переключения его можно вновь перевести на использование входа через Facebook.

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

Компании-клиенты могут получать сообщения об ошибках. Это происходит по следующим причинам:

  • недействительный ID конфигурации;
  • маркер доступа системного пользователя компании в настоящее время не поддерживается на мобильных устройствах;
  • для маркера доступа системного пользователя компании настроен неправильный параметр response_type.

Потенциальные важные изменения:

  • если в данный момент ваше приложение не имеет типа, при переключении на вход через Facebook для компаний ему будет присвоен тип Бизнес, так что оно сохранит доступ только к перечисленным выше разрешениям, функциям и продуктам;
  • если вы запросите разрешения или функции у клиентов-компаний, не поддерживаемых входом через Facebook для компаний, эти разрешения и функции будут немедленно отозваны, как только вы переключите приложение на использование входа через Facebook для компаний;
  • если вы запрашиваете у клиентов-компаний только разрешения email и (или) public_profile, переключение на вход через Facebook для компаний приведет к тому, что все ранее установленные маркеры для этих клиентов станут недействительными;
  • если в вашем приложении используются как вход через Facebook для компаний, так и расширение Meta Business, работа расширения Meta Business будет ограничена: будут действовать только разрешения, поддерживаемые входом через Facebook для компаний;
  • на доступ к данным профиля пользователя и управлением им через наши API может влиять доступ к профилям пользователей, взаимодействующих с объектами компании;
  • обратите внимание: если диалог входа через Facebook для компаний вызывается через ID конфигурации и вы решаете вернуться к использованию входа через Facebook, диалог входа может не загружаться, поскольку вход через Facebook не поддерживает параметр config_id, и вам нужно будет заменить параметр config_id параметром scope.

Подробнее о расширении Meta Business см. в этой статье.

Обратное переключение на вход через Facebook

Его можно выполнить, только если существующее приложение переключено на вход через Facebook для компаний. Новые приложения типа "Бизнес" нельзя переключить обратно на вход через Facebook.

Если после переключения на вход через Facebook для компаний ваше приложение не работает должным образом, вы можете вернуться к использованию входа через Facebook. Для этого выберите панель приложений > Вход через Facebook для компаний > Настройки и нажмите ссылку Переключиться на вход через Facebook. Вам будет предложено пройти опрос, который поможет нам повысить эффективность конфигурации входа через Facebook для компаний. Каждое приложение можно вновь перевести на использование входа через Facebook в течение 30 дней после первого переключения.

Часто задаваемые вопросы

The easiest way to add Facebook Login for Business is to create a new Business Type app, where Facebook Login for Business is automatically available, and request supported business permissions through Meta App Review. If you want to use it for an existing None type app, your app must have advanced access to at least one supported business permission.

If you are not a Tech Provider building solutions using Meta’s business APIs, Facebook Login is recommended for consumer authentication.

Only request the minimum permissions necessary for your app's functionality. Be transparent with users about why you need each permissions and features. Note that the email and public_profile permissions must be requested with at least one other supported business permission.

Yes, advanced access to the public_profile permission is required for Facebook Login for Business apps before they go live. This requirement is crucial to ensure that the app can support authorization from users who do not have an app role, commonly referred to as external users.