• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/lib/leadads/services/formfacebook.php
  • Класс: BitrixSeoLeadAdsServicesFormFacebook
  • Вызов: FormFacebook::getResult
public function getResult(WebHookPayloadLeadItem $item) : LeadAdsResult
{
	$result = new LeadAdsResult();

	// https://developers.facebook.com/docs/marketing-api/guides/lead-ads/create/v2.9#readingforms
	$response = $this->getRequest()->send(array(
		'methodName' => 'leadads.lead.get',
		'parameters' => [
			'lead_id' => $item->getLeadId()
		]
	));

	if (!$response->isSuccess())
	{
		foreach ($response->getErrors() as $error)
		{
			$result->addError(new Error('Can not retrieve result. ' . $error->getMessage()));
		}

		return $result;
	}

	if (!$responseData = $response->getData())
	{
		$result->addError(new Error('Can not retrieve result. Empty data.'));

		return $result;
	}

	if (!isset($responseData['id']) || !$responseData['id'])
	{
		$result->addError(new Error('Can not retrieve result. Empty `id`.'));

		return $result;
	}

	if (!isset($responseData['field_data']) || !is_array($responseData['field_data']) || !$responseData['field_data'])
	{
		$result->addError(new Error('Can not retrieve result. Empty `field_data`.'));

		return $result;
	}

	$result->setId($item->getLeadId());
	foreach ($responseData['field_data'] as $field)
	{
		if (!isset($field['name']) || !$field['name'])
		{
			continue;
		}

		if (!isset($field['values']) || !$field['values'])
		{
			continue;
		}

		if (!is_array($field['values']))
		{
			$field['values'] = array($field['values']);
		}

		$result->addFieldValues($field['name'], $field['values']);
	}

	return $result;
}