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

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

Преимущества

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

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

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

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

Разрешения email и public_profile предоставляются всем приложениям автоматически. Однако их следует использовать с как минимум одним дополнительным поддерживаемым разрешением каждой установки приложения.

Разрешение public_profile предоставляется всем приложениям автоматически, однако не возвращается в параметре scope, если пользователь приложения предоставил хотя бы ещё одно поддерживаемое разрешение, за исключением email.

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

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_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

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

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

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

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

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

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

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

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

Обычный системный пользовательСистемный пользователь бизнес-интеграции

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

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

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

Доступ

Доступ могут иметь только пользователи в рамках одной компании.

Доступ могут иметь только поставщики технологий.

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

Неприменимо.

Маркеры доступа нельзя сделать недействительными на вкладке "Системный пользователь" в Business Manager. Вместо этого клиенты должны перейти в Business Manager, выбрать "Настройки компании > "Интеграции" > вкладка "Подключенные приложения" и нажать кнопку "Удалить приложение", что приведет к аннулированию маркеров.

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

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

  • Модульные маркеры доступа зависят от бизнеса компании-клиента. Ими нельзя делиться с компаниями других клиентов и использовать их в других компаниях.
  • Область действия и список объектов модульного маркера доступа должны быть подмножеством области и объектов исходного маркера доступа системного пользователя бизнес-интеграции.
  • Если маркер будет скомпрометирован, это повлияет только на конкретную клиентскую компанию и не затронет остальные бизнес-аккаунты всех других клиентских компаний. Это позволяет изолировать потенциальные инциденты безопасности и отменить взаимозависимости между бизнес-аккаунтами и (или) клиентскими компаниями.

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

Эта конечная точка позволяет разработчикам управлять существующим маркером доступа системного пользователя следующим образом:

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

Client business id

Целое число

Обязательно.

Когда конечный пользователь устанавливает приложение через процесс входа через Facebook для компаний, в конце которого генерируется маркер доступа системного пользователя, область действия такого маркера будет находиться в компании, выбранной клиентом. Client business id — это ID одной из таких компаний.

Appsecret_proof

Строка

Обязательно.

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

Access_token

Строка

Обязательно.

Для Access_token требуется разрешение manage_business.

system_user_id

Целое число

Необязательно.

system_user_id — это ID системного пользователя маркера доступа.

fetch_only

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

Необязательно.

Флаг fetch_only можно использовать для получения существующего маркера и указания того, что эта операция используется только для чтения.

asset

Целое число

Необязательно.

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

scope

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

Необязательно.

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

set_token_expires_in_60_days

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

Необязательно.

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

Пример запроса
curl -i -X POST \ 
  'https://graph.intern.facebook.com/v17.0/2738613836382965/system_user_access_tokens?appsecret_proof=<app_secret_proof_sanitized>&
access_token=<access token sanitized>&   
system_user_id={system_user_id}&
fetch_only=true'
Пример ответа
{
  "access_token": "{access_token}" 
}

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

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

Сравнение

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

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

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

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

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

Только код авторизации.

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

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

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

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

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

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

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

Аннулирование маркеров доступа клиентами

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

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

Установки приложения и процесс входа

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

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

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

Создание конфигурации

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

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

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

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

Произошла ошибка
Не удается воспроизвести видео.

Создание конфигурации "Регистрация на сайте поставщика с помощью WhatsApp"

Конфигурация "Регистрация на сайте поставщика с помощью WhatsApp" доступна только для поставщиков бизнес-решений.

  1. Загрузите свое приложение в Панели приложений .
  2. Добавьте продукт Вход через Facebook для компаний.
  3. Выберите Конфигурации.
  4. Нажмите + Создать конфигурацию.
  5. Укажите имя своей конфигурации.
  6. Выберите Регистрация на сайте поставщика с помощью WhatsApp. После этого ваше приложение сможет выполнять регистрацию на сайте поставщика с помощью WhatsApp. Для конфигурации "Регистрация на сайте поставщика с помощью WhatsApp" можно использовать только маркер доступа системного пользователя.
  7. Выберите срок действия маркера. Рекомендуемое значение — 60 дней. Такой срок позволяет минимизировать риск утечки маркера и повысить безопасность системы.
  8. Выберите объекты, к которым у вашего приложения должен быть доступ. Этот шаг доступен, только если на предыдущем шаге был выбран маркер доступа системного пользователя. Отменить выбор аккаунтов WhatsApp нельзя.
  9. Выберите следующие разрешения для своего приложения: whatsapp_business_management и whatsapp_business_messaging.
  10. Нажмите Создать.

Создание конфигурации для Instagram

Этот процесс оптимизирован только для использования с Instagram Graph API.

  1. Загрузите свое приложение в Панели приложений .
  2. Добавьте продукт Вход через Facebook для компаний.
  3. Выберите Конфигурации.
  4. Нажмите + Создать конфигурацию.
  5. Укажите имя своей конфигурации.
  6. Выберите Instagram Graph API. Так ваше приложение сможет подключиться к [процессу входа для Instagram] (см. https://developers.facebook.com/docs/instagram/business-login-for-instagram/). Можно использовать только маркеры доступа пользователя.
  7. Выберите для приложения следующие разрешения.
  8. Нажмите Создать.

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

Диалог "Вход через Facebook для компании" можно вызвать с помощью наших 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/v19.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 для компаний, либо могут согласиться на внедрение этой функции.

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

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

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

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

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

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

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

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

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

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

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

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

Почему мое приложение не может использовать вход через Facebook для компаний?

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

Что можно сделать, чтобы приложение смогло им пользоваться?

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

Какие разрешения нужно запросить при реализации входа через Facebook для компаний?

Запрашивайте только те разрешения, которые необходимы вашему приложению для работы. Объясняйте пользователям, зачем вам нужно каждое разрешение и каждая функция. Обратите внимание: разрешения email и public_profile должны запрашиваться как минимум с одним другим поддерживаемым разрешением для каждой установки приложения. Вы можете создать конфигурацию для просмотра поддерживаемых разрешений и объединить запросы на разрешения для более персонализированного подключения.