Вход через Facebook для компаний — это предпочитаемый метод аутентификации и авторизации для поставщиков технологий и разработчиков приложений для бизнеса, которым необходим доступ к объектам своих клиентов. Это альтернатива входу через Facebook. Если вы не являетесь поставщиком технологий и не разрабатываете приложение для бизнеса, предназначенное для использования другими компаниями, используйте в качестве метода аутентификации вход через Facebook.
В отличие от обычного входа через Facebook вход для компаний позволяет указать тип маркера доступа, типы объектов и разрешения, которые требуются вашему приложению, и сохранить эту информацию в виде подборки (конфигурации). Затем эту подборку можно передать клиентам, которые завершат процесс и предоставят вашему приложению доступ к объектам своих компаний. При этом у компании не остается возможности дать вам разрешение на доступ к информации определенных категорий, которая обычно не нужна приложениям для бизнеса. Вы можете выбирать различные маркеры доступа в зависимости от того, что требуется приложению.
Большинство приложений, которые могут получать доступ к пользовательским данным, должны проходить регулярные проверки. Однако если приложению необходимы только разрешения и функции для бизнеса, вы можете установить вход через Facebook для компаний, что снизит необходимость прохождения таких проверок.
Ниже приведены разрешения, которые вы можете запросить у своих клиентов. Обратите внимание: в отличие от входа через Facebook, для входа через Facebook для компании ваш клиент должен предоставить все разрешения, которые вы зададите в своей конфигурации.
Разрешения email
и public_profile
предоставляются всем приложениям автоматически. Однако их следует использовать с как минимум одним дополнительным поддерживаемым разрешением каждой установки приложения.
Разрешение public_profile
предоставляется всем приложениям автоматически, однако не возвращается в параметре scope
, если пользователь приложения предоставил хотя бы ещё одно поддерживаемое разрешение, за исключением email
.
Доступные разрешения | Маркеры доступа пользователя | Маркеры доступа системного пользователя бизнес-интеграции |
---|---|---|
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
commerce_account_manage_orders | ✓ | ✓ |
commerce_account_read_orders | ✓ | ✓ |
commerce_account_read_reports | ✓ | ✓ |
commerce_account_read_settings | ✓ | ✓ |
commerce_manage_accounts | ✓ | ✓ |
email * | ✓ | Н/Д |
✓ | ✓ | |
instagram_content_publish | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
instagram_shopping_tag_products | ✓ | ✓ |
✓ | ✓ | |
manage_fundraisers | ✓ | ✓ |
✓ | ✓ | |
page_events | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
private_computation_access | ✓ | ✓ |
✓ | Н/Д | |
✓ | ✓ | |
✓ | ✓ | |
read_audience_network_insights | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ |
Вход через Facebook для компаний можно использовать для получения маркеров доступа системного пользователя бизнес-интеграции или маркеров доступа пользователя. Обратите внимание: переключение на вход через Facebook для компаний не повлияет на ваши текущие маркеры доступа.
Маркеры доступа системного пользователя бизнес-интеграции генерируются в процессе входа через Facebook для компаний. Их следует применять, если ваше приложение выполняет программируемые автоматические действия с рекламными объектами или Страницами клиентов, не используя данные, вводимые пользователями приложения, и не требуя повторной аутентификации в будущем. Пример:
Для получения маркеров доступа системного пользователя бизнес-интеграции от клиентов должны соблюдаться следующие условия:
Чтобы протестировать процесс получения маркера доступа системного пользователя бизнес-интеграции, тестировщик должен иметь роль в приложении.
Обычный системный пользователь | Системный пользователь бизнес-интеграции | |
---|---|---|
Представление | Представляет серверы или программное обеспечение, выполняющие вызовы API к ресурсам, которые принадлежат или управляются Business Manager. | Часть инфраструктуры интеграции поставщика технологий, инициализируемая компанией клиента путем установки приложений поставщика. |
Доступ | Доступ могут иметь только пользователи в рамках одной компании. | Доступ могут иметь только поставщики технологий. |
Аннулирование маркера | Неприменимо. | Маркеры доступа нельзя сделать недействительными на вкладке "Системный пользователь" в Business Manager. Вместо этого клиенты должны перейти в Business Manager, выбрать "Настройки компании > "Интеграции" > вкладка "Подключенные приложения" и нажать кнопку "Удалить приложение", что приведет к аннулированию маркеров. |
Некоторые поставщики технологий (обычно крупные организации), которым могут требоваться различные конфигурации доступа для разных целей или отделов, а не использование одного маркера доступа системного пользователя бизнес-интеграции для каждой компании, могут использовать несколько модульных маркеров доступа системного пользователя бизнес-интеграции для клиентских компаний. Это упростит масштабируемость и повысит безопасность операций.
Эта конечная точка позволяет разработчикам управлять существующим маркером доступа системного пользователя следующим образом:
Объект | Описание |
---|---|
Целое число | Обязательно. Когда конечный пользователь устанавливает приложение через процесс входа через Facebook для компаний, в конце которого генерируется маркер доступа системного пользователя, область действия такого маркера будет находиться в компании, выбранной клиентом. |
Строка | Обязательно. Поскольку это API управления маркерами, в параметре |
Строка | Обязательно. Для |
Целое число | Необязательно.
|
Логическое значение | Необязательно. Флаг |
Целое число | Необязательно. Если вы хотите сгенерировать более модульный маркер, в параметре |
Логическое значение | Необязательно. Если вы хотите сгенерировать более модульный маркер, в параметре |
Логическое значение | Необязательно. Если вы хотите сгенерировать новый маркер, можно сделать так, чтобы срок его действия закончился через 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 для компаний устанавливается автоматически.
Конфигурация — это набор, состоящий из типа маркера, объектов компании и разрешений, которые ваше приложение должно получить от клиентов. Этот набор будет передан пользователям в процессе аутентификации и авторизации, когда они установят ваше приложение. Можно создать несколько конфигураций и передать их пользователям разного типа, в зависимости от потребностей вашего приложения. Чтобы создать конфигурацию, выполните следующие действия:
При создании конфигурации будет сгенерирован ее ID, который можно использовать с нашими SDK (или вручную).
Конфигурация "Регистрация на сайте поставщика с помощью WhatsApp" доступна только для поставщиков бизнес-решений.
whatsapp_business_management
и whatsapp_business_messaging
. Этот процесс оптимизирован только для использования с Instagram Graph API.
Диалог "Вход через Facebook для компании" можно вызвать с помощью наших 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 для компаний, нажмите кнопку "Согласиться" на баннере. Тестовые приложения, связанные с этим приложением, примут запрос автоматически.
После переключения для вашего приложения будет установлен тип Бизнес. Если приложение не работает должным образом, в течение 30 дней после переключения его можно вновь перевести на использование входа через Facebook. Такое переключение можно выполнить не более трех раз. Примечание: если диалог входа через Facebook для компаний вызывается через ID конфигурации и вы решаете вернуться к использованию входа через Facebook, диалог входа может не загружаться, поскольку вход через Facebook не поддерживает параметр config_id. Вам нужно будет заменить параметр config_id параметром scope.
При установке приложения могут выдаваться сообщения об ошибках. Это происходит по следующим причинам:
Потенциальные важные изменения:
Если после переключения на вход через Facebook для компаний ваше приложение не работает должным образом, вы можете удалить этот продукт и вернуться к использованию входа через Facebook. Для этого выберите панель приложений > Вход через Facebook для компаний > Настройки и нажмите ссылку Переключиться на вход через Facebook. Вам будет предложено пройти опрос, который поможет нам повысить эффективность конфигурации входа через Facebook для компаний. Каждое приложение можно вновь перевести на использование входа через Facebook в течение 30 дней после первого переключения. Такое переключение можно выполнить не более трех раз.
Вход через Facebook для компаний может поддерживать не все разрешения и функции. Приложение не может использовать вход через Facebook для компаний, если оно запрашивает неподдерживаемые этим продуктом разрешения или функции. Обратите внимание: разрешения email
и public_profile
должны запрашиваться как минимум с одним другим поддерживаемым разрешением.
Если ваше приложение не имеет такого права, вы можете создать новое бизнес-приложение, для которого вход через Facebook для компаний доступен автоматически, и запросить поддерживаемые бизнес-разрешения через проверку приложения.
Запрашивайте только те разрешения, которые необходимы вашему приложению для работы. Объясняйте пользователям, зачем вам нужно каждое разрешение и каждая функция. Обратите внимание: разрешения email
и public_profile
должны запрашиваться как минимум с одним другим поддерживаемым разрешением для каждой установки приложения. Вы можете создать конфигурацию для просмотра поддерживаемых разрешений и объединить запросы на разрешения для более персонализированного подключения.