Экспорт в Телеграм
Здравия желаю! Просьба о помощи.
На сегодняшний день можно при публикации настроить автоматический экспорт статьи в Телеграмм. При чём, не просто заголовка и ссылки, а в виде подгруженного «Instant View», когда пользователь мобильного устройства не переходя в браузер может почитать длинную статью. И при это совсем не обязательно публиковаться в telegra.ph или в medium.com. Это немножко отдельная тема (если нужны подробности могу описать, хотя информации много), сейчас речь о работе плагина в самом движке.
Я пытаюсь использовать плагин, который был опубликован в нашем сообществе. Плагин отлично работает, кроме случаев, когда бот в телеграмме недоступен. Тоесть когда недоступно API Телеграма. Подвисает вся работа, новые материалы невозможно опубликовать. Вот именно этот момент хотелось бы как-то обойти.
Сам плагин:
Заранее благодарю за помощь и подсказку!
На сегодняшний день можно при публикации настроить автоматический экспорт статьи в Телеграмм. При чём, не просто заголовка и ссылки, а в виде подгруженного «Instant View», когда пользователь мобильного устройства не переходя в браузер может почитать длинную статью. И при это совсем не обязательно публиковаться в telegra.ph или в medium.com. Это немножко отдельная тема (если нужны подробности могу описать, хотя информации много), сейчас речь о работе плагина в самом движке.
Я пытаюсь использовать плагин, который был опубликован в нашем сообществе. Плагин отлично работает, кроме случаев, когда бот в телеграмме недоступен. Тоесть когда недоступно API Телеграма. Подвисает вся работа, новые материалы невозможно опубликовать. Вот именно этот момент хотелось бы как-то обойти.
Сам плагин:
<?php
$title= $resource->get('pagetitle');
$alias= $resource->get('uri');
if ($resource->get('published') == "1") {
$fp=fopen("https://api.telegram.org/bot777777777AAAAAAAAAAA7777777/sendMessage?chat_id=-chatname&text={$title} http://site.ru/{$alias}","r");
while(!feof($fp))
{ $content .= fread($fp,1024); }
fclose($fp); };
Системные события:OnCommentPublish
OnCommentUnpublish
OnDocFormSave
OnDocPublished
OnDocUnPublished
OnResourceAutoPublish
Ещё один вариант — добавить прокси SOCKSЗаранее благодарю за помощь и подсказку!
Комментарии: 1
Помогло интересное и простое решение
habr.com/post/424427/
Нужно поднять свой служебный домен и настроить с него проксирование на api.telegram.org/
Nginx config
habr.com/post/424427/
Нужно поднять свой служебный домен и настроить с него проксирование на api.telegram.org/
Nginx config
server {
listen 80;
server_name proxyapitelegam.example.ru;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://api.telegram.org/;
client_max_body_size 100M;
}
}
Дальше остаётся подставить свой домен<?php
$title= $resource->get('pagetitle');
$alias= $resource->get('uri');
if ($resource->get('published') == "1") {
$fp=fopen("http://proxyapitelegam.example.ru/bot777777777AAAAAAAAAAA7777777/sendMessage?chat_id=-chatname&text={$title} http://site.ru/{$alias}","r");
while(!feof($fp))
{ $content .= fread($fp,1024); }
fclose($fp); };
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.