Аутентификация при входе от имени компании


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

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

Во время установки расширения Facebook Business создается бизнес-решение делегирования (On-Behalf-Of Solution, OBO), которое связывает компании партнера и клиента. Оно позволяет партнеру получить маркер доступа системного пользователя расширения Facebook Business с указанием учетных данных системного пользователя-администратора партнерского аккаунта Business Manager, а не только учетных данных администратора клиентского аккаунта Business Manager (текущий метод).

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

Требования

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

  • catalog_management — только если приложение будет использовать функции каталога (чтобы управлять рекламой продавца от лица клиента, можно также запросить разрешение ads_management);
  • business_creative_management — если ваше приложение использует API Draper.

Настройка процесса входа

Для входа можно использовать один из следующих методов:

  • Загрузка входа от имени компании через URL — рекомендуется, если вы не планируете использовать Facebook SDK для JavaScript. В этом случае вам нужно будет связать кнопку на вашем сайте с динамически генерируемым URL для каждой компании.

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

Загрузка входа от имени компании через URL


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

В запрос URL входа от имени компании нужно включить следующие параметры:

Поле Описание

client_id

Тип: строка

Обязательный параметр.

ID приложения Meta

display

Тип: строка

Обязательный параметр.

Тип отображения входа от имени компании: popup, window или page.

redirect_uri

Тип: строка

Обязательный параметр.

URI перенаправления после завершения процесса входа.

response_type

Тип: строка

Обязательный параметр.

Указывает, где будет содержаться ответ на запрос входа от имени компании при перенаправлении обратно в приложение: в параметрах или во фрагментах URL.

Используйте значение token, если к URI перенаправления в качестве фрагмента URL нужно добавить access_token, или значение code, если вы хотите получать ответ как параметр URL (его нужно будет обменять на маркер доступа через вызов API).

scope

Тип: строка

Обязательный параметр.

Необходимые разрешения или области: manage_business_extension.

В зависимости от сценария использования это также могут быть ads_management или catalog_management.

Для приложения с креативом область также должна содержать business_creative_management.

extras

Тип: строка

Обязательный параметр.

Содержит информацию о процессах и параметрах, которые пользователь будет видеть в процессе входа. К ним относятся setup и business_config. См. поддерживаемые поля extra.

setup

Тип: строка

Обязательный параметр.

Настройки Facebook для продавца, например его уникальный ID (external_business_id) или валюта каталога (currency). См. поддерживаемые поля setup.

business_config

Тип: строка

Обязательный параметр.

Объект, с помощью которого настраивается рабочий процесс FBE. См. поддерживаемые поля business_config.

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

Подробные сведения о том, как форматировать этот URL и его обязательные параметры, см. в списке полей в разделе Объекты и типы API расширения Facebook Business.

В примере ниже правильно отформатированный параметр запроса extras определяет объекты business_config и setup.

Пример URL

https://facebook.com/dialog/oauth?
client_id=<FB_APP_ID>
&display=page
&redirect_uri="https://partner-site.com/redirectlanding"
&response_type=token
&scope=manage_business_extension
//   alternatively use catalog_management or ads_management
//   &scope=manage_business_extension,catalog_management,ads_management
&extras={
  "setup": {
    "external_business_id": "foo-123",
    "timezone": "America/Los_Angeles",
    "currency": "USD",
    "business_vertical": "APPOINTMENTS"
  },
  "business_config": {
    "business": {
      "name": "Foo Business"
    },
    "page_cta": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business",
      "below_button_text": "Powered by FBE Partner"
    },
    "page_card": {
      "enabled": true,
      "see_all_text": "See All",
      "see_all_url": "https://partner-site.com/foo-business",
      "cta_button_text": "Book"
    },
    "ig_cta": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business"
    },
    "messenger_menu": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business"
    },
    "thread_intent": {
      "enabled": true,
      "cta_button_url": "https://partner-site.com/foo-business"
    }
  },
  "repeat": false
}

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

URL перенаправления — это механизм защиты для перенаправлений FBE. Если адрес перенаправления из расширения Facebook Business не совпадает с доменом в поле URL перенаправления в приложении, расширение не будет открывать этот адрес после завершения входа.

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

Как и при обычном входе через Facebook, в конце процесса возвращается маркер access_token, который позволяет получить ID пикселя, ID Страницы и ID Instagram Business.



Загрузка входа от имени компании через Facebook SDK


1. Загрузите Facebook SDK для JavaScript.

Вы можете скачать SDK и разместить его на своей платформе или воспользоваться SDK, размещенным на Facebook. Рекомендуем использовать SDK на Facebook.

2. Добавьте в объект Window функцию fbAsyncInit, чтобы настроить SDK.

Чтобы можно было загрузить SDK для JavaScript, в объекте window должна присутствовать функция fbAsyncInit. SDK вызовет функцию window.fbAsyncInit() для настройки.

Для настройки используются следующие параметры:

  • appId — ID приложения Facebook;
  • cookie — включает файлы cookie и предоставляет серверу доступ к этому сеансу;
  • xfbml — обрабатывает социальные плагины на этой странице;
  • version — сообщает SDK, какую версию API Graph нужно использовать (на момент написания этого документа последней была версия 10).

Перед загрузкой SDK для JavaScript добавьте в объект window функцию fbAsyncInit.

3. Запустите расширение Facebook Business с помощью функции входа от имени компании FB.login().

После загрузки и правильной инициализации SDK загрузите функцию FB.login(). В FB.login() нужно передать следующие важные параметры:

  1. Функцию обратного вызова для ответа.
  2. Объекты для полей scope и extras.
Поле Описание

scope

Обязательный параметр.

Необходимые разрешения или области: manage_business_extension и ads_management или catalog_management.

extras

Обязательный параметр.

Содержит информацию о процессах и параметрах, которые пользователь будет видеть в процессе входа в расширение Facebook Business. К ним относятся setup и business_config.

setup

Обязательный параметр.

Определяет настройки Facebook для продавца, например его уникальный идентификатор (external_business_id) или валюту каталога (currency). См. поддерживаемые поля setup.

business_config

Обязательный параметр.

Объект, с помощью которого настраивается рабочий процесс расширения Facebook Business. См. поддерживаемые поля business_config.

Подробные сведения см. в разделе Объекты и типы API расширения Facebook Business.

Пример:

<script>
    window.fbAsyncInit = function() {
    //2. FB JavaScript SDK configuration and setup
        FB.init({
            appId      : '<app_id>', // FB App ID
            cookie     : true,  // enable cookies to allow the server to access the session
            xfbml      : true,  // parse social plugins on this page
            version    : 'v4.0' // uses graph api version v4.0
        });
    };

    //1. Load the JavaScript SDK asynchronously
    (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "https://connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

     //3. Facebook login with JavaScript SDK
    function launchFBE() {
        FB.login(function (response) {
            if (response.authResponse) {
                // returns a User Access Token with scopes requested
                const accessToken = response.authResponse.accessToken;
                const message = {
                    'success':true,
                    'access_token':accessToken,
                };
                // store access token for later  
            } else {
              console.log('User cancelled login or did not fully authorize.');
            }
        }, {
            scope: 'catalog_management,manage_business_extension',
          // refer to the extras object table for details
            extras: {
                "setup":{
                  "external_business_id":"<external_business_id>",
                  "timezone":"America\/Los_Angeles",
                  "currency":"USD",
                  "business_vertical":"ECOMMERCE"
                },
                "business_config":{
                  "business":{
                     "name":"<business_name>"
                  },
                  "ig_cta": {
                    "enabled": true,
                    "cta_button_text": "Book Now",
                    "cta_button_url": "https://partner-site.com/foo-business"
                  }
                },
                "repeat":false
            }
        });
    }
</script>

4. Создайте кнопку или ссылку для запуска расширения Facebook Business.

Чтобы загрузить экран, добавьте для кнопки или ссылки функцию onClick, вызывающую метод launchFBE():

<button onclick="launchFBE()"> Launch FBE Workflow </button>

Введите URL перенаправления в панели приложений.

URL перенаправления — это механизм защиты для перенаправлений расширения Facebook Business. Если адрес перенаправления из расширения Facebook Business не совпадает с доменом в поле URL перенаправления в приложении, расширение не будет открывать этот адрес после завершения входа.

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

Мобильные устройства

Информацию о том, как использовать расширение Facebook Business на мобильных устройствах, см. в документации.