Правильный постинг в соцсети из Битрикс

Задача:

Как постить материал из поста Битрикс в любую социальную сеть, используя протокол Open Graph

Задача, сделать так, чтобы при добавлении новостей в Битрикс, в соцсети автоматически подгружалось необходимое изображение, заголовок и описание. Чтобы не приходилось каждый раз выбирать картинку вручную. Для решения этой задачи, существует Open Graph protocol.


Решение:
Для выполнения задачи используем следующие мета-теги, которые нужно разместить между тегами <head>...</head>:
<meta property="og:title" content="Заголовок новости" />
<meta property="og:description" content="Текст анонса" />
<meta property="og:image" content="Путь к изображению анонса" />
1 В качестве примера возьмем шаблон компонента news.detail. В папку шаблона (к примеру .default) добавляем файл result_modifier.php со следующим кодом:
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

//Кэшируем необходимые нам ключи $arResult что бы можно было их использовать в component_epilog.php
$this->__component->SetResultCacheKeys(array(
    "NAME",
    "PREVIEW_TEXT",
    "PREVIEW_PICTURE"
));?>
2 Далее создаем в этой же папке файл component_epilog.php с кодом:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$APPLICATION->AddHeadString('<meta property="og:title" content="' . $arResult["NAME"] . '" />');
$APPLICATION->AddHeadString('<meta property="og:description" content="' . $arResult["PREVIEW_TEXT"] . '" />');
$APPLICATION->AddHeadString('<meta property="og:image" content="' . $arResult["PREVIEW_PICTURE"]["SRC"] . '" />');
?>
3 Не забудьте в настройках компонента выделить в пункте «Источник данных» — «Картинка для анонса»

4 Что бы мета-теги появились в исходном коде, в шаблоне сайта должна присутствовать функция $APPLICATION->ShowHeadStrings(); или $APPLICATION->ShowHead();
Изменено: 03 09 2016
Просмотров: 924