Решение для работы с несколькими партнерами — Встроенное создание | Документация для разработчиков
Многопартнерское решение — Встроенное создание
Обновлено: 12 декабря 2025 г
Многопартнерские решения (MPS) позволяют партнерам по решениям и поставщикам технологий совместно управлять активами клиентов в WhatsApp для предоставления услуг обмена сообщениями WhatsApp клиентам.
Если вы являетесь партнером по решениям, вместо использования панели управления приложения для создания MPS, вы можете создать его с помощью фрагмента JavaScript и HTML-кнопки, которую можно встроить где-нибудь на вашем веб-сайте. Поставщики технологических решений, желающие сотрудничать с вами, могут использовать эту кнопку, чтобы предоставить вашему приложению разрешение на управление решениями для одного или нескольких их приложений, что вы затем сможете сделать с помощью серии запросов API.
Поток
Технологические компании, посещающие ваш веб-сайт и нажимающие кнопку создания встроенного решения, будут вынуждены пройти аутентификацию, после чего им будет представлен интерфейс, позволяющий выбрать существующее приложение:

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


После того, как поставщик технических услуг закроет интерфейс, будет сгенерирован и возвращен в поток токен доступа пользователя, который вы сможете получить. Затем вы можете использовать этот токен в серии вызовов API, чтобы получить идентификаторы приложений, выбранных поставщиком технических услуг, и создать и принять решение.
Требования
Встроенная кнопка создания
Шаг 1: Предоставьте приложению разрешение
Получите доступ к Meta Business Suite и, используя учетную запись вашей системы, предоставьте вашему приложению manage_app_solution .
Используйте этот токен при принятии любых многопартнерских решений, которые вы создаете для своих партнеров (см. ниже).
Шаг 2: Добавьте код встроенной кнопки
Добавьте следующий код на свой веб-сайт или портал, или в любое другое место, куда вы планируете направлять поставщиков технических услуг, которые будут работать с вами в рамках MPS. Обязательно замените...
с вашим идентификатором приложения. async defer crossorigin = "anonymous" src = "https://connect.facebook.net/en_US/sdk.js" > // Configure JavaScript SDK window.fbAsyncInit =function(){ FB.init({ appId:"" ,// Replace with your app ID cookie:true, xfbml:true, version:"v20.0"});};// Launch MPS creation flowfunction launchSolutionCreationFlow(){ FB.login(function(response){if(response.authResponse){const accessToken = response.authResponse.accessToken; console.log(accessToken);// Replace with your code that captures access token}else{ console.log("User failed to authorize");// Replace with your code that logs auth failure}},{ scope:"manage_app_solution"});} onclick = " launchSolutionCreationFlow () " style = " background - color : #1877f2; border: 0; border-radius: 4px; color: #fff; cursor: pointer; font-family: Helvetica, Arial, sans-serif; font-size: 16px; font-weight: bold; height: 40px; padding: 0 24px; " > Запуск создания решенияНаправьте потенциальных партнеров-поставщиков технологий по этому адресу и попросите их пройти процедуру. Сообщите им, что завершение процедуры не создает решение (для этого потребуются некоторые вызовы API с вашей стороны), и что вы предоставите им идентификатор решения после его создания.
Создание решения
Шаг 1: Получение пользовательского токена
Всякий раз, когда поставщик технических решений использует встроенную кнопку создания решения и завершает процесс, процесс возвращает
authResponse ( response.authResponse ), содержащий accessToken :{ status: 'connected', authResponse: { accessToken: '<USER_ACCESS_TOKEN> ', expiresIn:'<TOKEN_EXPIRATION_TIMESTAMP> ', reauthorize_required_in:'<SECONDS_UNTIL_REAUTH_REQUIRED> ', signedRequest:'<SIGNED_PARAMETER> ', ID пользователя:'<USER_ID> ' } }Получите
accessToken . Это токен доступа пользователя от поставщика технических услуг, который вам понадобится в дальнейшем.Шаг 2: Получите подробную информацию о приложении
Используйте токен доступа пользователя поставщика технических услуг и GET /me/assigned_applications , чтобы получить список идентификаторов приложений, которые поставщик технических услуг выбрал при завершении процесса.
Пример запроса
curl 'https://graph.facebook.com/v20.0/me/application_details' \ -H 'Авторизация: Bearer EAAJB'
Пример ответа
Пример ответа поставщика технологических услуг, выбравшего в процессе только одно приложение.
{ "data": [ { "link": "www.mediamonsoon.com", "name": "media_monsoon_prod", "id": "634974688087057" } ] }Каждый объект в ответе описывает приложение, выбранное поставщиком технических услуг при выполнении процесса. Сохраните
id каждого приложения для следующего шага.Шаг 3: Создайте решение для поставщика технологий
Используйте токен доступа поставщика технологий и идентификатор приложения из предыдущего шага, чтобы отправить запрос POST / /whatsapp_business_solution endpoint.
Повторите этот запрос для каждого идентификатора приложения, полученного на предыдущем шаге.
Синтаксис запроса
POST /< APP_ID >/ whatsapp_business_solution{ "owner_permissions": ["MESSAGING"], "partner_app_id": "<SOLUTION_PARTNER_APP_ID> ", "partner_permissions": ["MESSAGING"], "solution_name": "<SOLUTION_NAME> " }— Ваш идентификатор приложения.— Название для решения. Это название будет отображаться на панели управления приложения как для вас, так и для поставщика технических услуг, поэтому оно должно быть уникальным и отличаться от других решений, которые вы или поставщик технических услуг можете инициировать или принять в дальнейшем.Ответ
В случае успеха API создаст решение и свяжет ваше приложение и приложение поставщика технологий с ним.
{ "solution_id": "<SOLUTION_ID> " }Получите
solution_id . Это идентификатор решения, который понадобится вам на следующем шаге.Шаг 4: Примите решение
Используйте токен доступа системного пользователя, полученный на этапе предоставления разрешений приложению , и идентификатор решения, чтобы отправить запрос POST / /accept для любых решений, которые вы создали для поставщиков технологий.
Пример запроса
curl -X POST 'https://graph.facebook.com/v20.0/795033096057724/accept' \ -H 'Авторизация: Bearer EAATA...'.
Пример ответа
В случае успеха:
{ "success": true }После того как вы примете решение, сообщите техническому партнеру об успешном создании решения и предоставьте ему все идентификаторы решений, которые вы создали и приняли.