- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/leadads/services/formfacebook.php
- Класс: BitrixSeoLeadAdsServicesFormFacebook
- Вызов: FormFacebook::add
public function add(array $data) : Response
{
// https://developers.facebook.com/docs/marketing-api/guides/lead-ads/create/v2.9#create-forms
$locale = $data['LOCALE'] ?? $this->getLocaleByLanguageId();
$questions = static::convertFields($data['FIELDS']);
$privacyPolicy = array(
'url' => $data['PRIVACY_POLICY_URL']
);
$privacyPolicy['url'] = self::getPrivacyPolicyUrl();
$contextCard = [
'style' => 'PARAGRAPH_STYLE',
'content' => [' '],
'button_text' => $data['BUTTON_CAPTION']
];
if ($data['TITLE'])
{
$contextCard['title'] = $data['TITLE'];
}
if ($data['DESCRIPTION'])
{
$contextCard['content'] = [$data['DESCRIPTION']];
}
elseif ($data['TITLE'])
{
$contextCard['content'] = [$data['TITLE']];
}
$response = $this->getRequest()->send([
'methodName' => 'leadads.form.create',
'parameters' => [
'page_id'=> $this->accountId,
'params' => [
'name' => $data['NAME'],
'privacy_policy' => $privacyPolicy,
'follow_up_action_url' => $data['SUCCESS_URL'],
'locale' => mb_strtoupper($locale),
'context_card' => $contextCard,
'questions' => $questions
]
]
]);
if (!$response->isSuccess() || !$formId = $response->getData()["id"] ?? null)
{
return $response;
}
$response->setId($formId);
$subscribeResult = $this->subscribeAppToPageEvents();
if (!$subscribeResult->isSuccess())
{
$response->addError(new Error('Can not subscribe App to Page events.'));
return $response;
}
if(!$this->registerFormWebHook($formId))
{
$response->addError(new Error('Can not register Form web hook.'));
return $response;
}
return $response;
}