- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/publicaction/vk.php
- Класс: BitrixLandingPublicActionVk
- Вызов: Vk::getVideoInfo
static function getVideoInfo(string $videoId): PublicActionResult
{
$result = new PublicActionResult();
if (!Loader::includeModule('seo'))
{
$error = new Error;
$error->addError('SEO_NOT_INCLUDED');
$result->setError($error);
$result->setResult(false);
return $result;
}
$response = MediaService::getVideo($videoId);
if ($response->isSuccess())
{
$responseData = $response->getData();
if ($responseData['count'])
{
$responseItem = $responseData['items'][0];
if ($responseItem['content_restricted'] && $responseItem['content_restricted_message'])
{
$error = new Error;
$error->addError(
'CONTENT_RESTRICTED',
Encoding::convertEncoding(
$responseItem['content_restricted_message'],
'utf8',
SITE_CHARSET
)
);
$result->setError($error);
}
else
{
$result->setResult([
'player' => $responseItem['player'],
'preview' => $responseItem['image'][min(count($responseItem['image']), 4) - 1],
]);
}
}
else
{
$result->setResult([]);
}
}
else
{
$error = new Error;
foreach ($response->getErrors() as $err)
{
$error->addError($err->getCode(), $err->getMessage());
}
$result->setError($error);
}
return $result;
}