gnvs
@gnvs
With best regards

Экспорт новостей с сайта в канал Телеграм?

Доброго времени, мне нужно сделать экспорт новостной ленты с сайта в Телеграм-канал. Решил сделать через событие OnAfterIBlockElementAdd - т.е. при создании нового элемента инфоблока (в моем случае новости) нужно, чтобы превью-текст, картинка и ссылка на новость сайта экспортировались.

<?

define('TELEGRAM_TOKEN', 'Тут мой токен');
define('TELEGRAM_CHATID', 'Тут id моего паблика');

AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyAddElement", "OnAfterIBlockElementAddHandler"));

class MyAddElement
{

    function OnAfterIBlockElementAddHandler(&$arFields)
    {
        if($arFields["ID"]>0 && $arFields["IBLOCK_ID"] == 1)
             
        {

        $ch = curl_init();
            curl_setopt_array(
                $ch,
                array(
                    CURLOPT_URL => 'https://api.telegram.org/bot' . TELEGRAM_TOKEN . '/sendMessage',
                    CURLOPT_POST => TRUE,
                    CURLOPT_RETURNTRANSFER => TRUE,
                    CURLOPT_TIMEOUT => 10,
                    CURLOPT_POSTFIELDS => array(
                        'chat_id' => TELEGRAM_CHATID,
                        'text' => $arFields['PREVIEW_TEXT'],
                    ),
                )
            );

        curl_exec($ch);
         
      }
    }
}


Данный пример, отлично отправляет превью-текст, но как подать ему картинку и url не пойму. Попробовал несколько вариантов из того, что попадалось в Гугле.

Отладочная команда показывает поле картинки

<? echo "<pre>"; print_r($arFields); echo "</pre>";?>


но что как ему скормить, например, это?

'picture' => $arFields['PREVIEW_PICTURE']['SRC'],

Может есть более грамотный вариант?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
anton99zel
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
'photo'     => new CURLFile(realpath("/path/to/image.png"))
и
CURLOPT_HTTPHEADER CURLOPT_URL => "Content-Type:multipart/form-data"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы