Перейти к публикации

Автопостинг новостей в канал Телеграм


Рекомендованные сообщения

Уважаемые форумчане!

Возможно ли реализовать идею, когда новость (вступительная часть и картинка к ней) автоматически публикуется в канал телеграм. Наш сайт работает пока еще на пробной версии скрипта: https://omcbs.ru (я так понял по правилам я его должен указать). И перед покупкой хотелось бы как можно больше узнать.

На вордпрес есть специальный плагин с такой возможностью.

Замысел такой:

В редакторе появляется дополнительный флажок (не публиковать же все новости подряд)

Отметили флажок и заголовок с картинкой улетает в заданный канал через заданного бота...

На API ТЛГ реализовал отправку текста, команда простая: <?php fopen("https://api.telegram.org/bot{токен бота}/sendMessage?chat_id={Куда слать (канал или чат)}&text={Текст сообщения}", "") ?>

А вот как прикрутить данную конструкцию, не понимаю. Поиск на форуме проходил по словам автопостинг, телеграм, telegram. Нашел всего два сообщения и в них нет ничего дельного.

Ссылка на сообщение
Поделиться на других сайтах

1. А зачем сайту библиотечной системы что то слать в инстаграмм?
2. Изучаете код добавления новостей, и вставляете ваше "API" как душе угодно, если нужно заводите ещё одну таблицу куда указываете отправлялась ли эта новость уже в телеграмм, что бы после каждого редактирования не дублировалась.

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, SKYNET74 сказал:

2. Изучаете код добавления новостей

 

6 часов назад, filippst сказал:

Наш сайт работает пока еще на пробной версии скрипта

Много же он изучит в зашифрованных файлах...

 

6 часов назад, filippst сказал:

А вот как прикрутить данную конструкцию, не понимаю

Не потому ли, что все файлы демо версии зашифрованы?

Ссылка на сообщение
Поделиться на других сайтах

Самое элементарное в случае, если у вас демо версия:

1. Создать доп поле telegram

Тип поля: Список

Значение по умолчанию:

botyes|Отправить

botno|Не отправлять

2. Создать файл telegramcron.php с следующим содержимым:

<?php

// Изменить данные
$cronpass = "mypass";
$token = "mytoken";
$channel = "mychannel";
// =====================

if ($_GET['pass'] == $cronpass){
	include ('engine/api/api.class.php');
	
	$result = $db->query("SELECT * FROM " . PREFIX . "_post WHERE xfields LIKE '%botyes%' ORDER BY id ASC");
	$num_rows = $db->num_rows($result);
	if ($num_rows > 0){
		while ( $row = $db->get_array($result) ) {
			$id = $row['id'];
			$text = htmlspecialchars(stripslashes($row['short_story']), ENT_QUOTES, $config['charset'] );
			file_get_contents("https://api.telegram.org/bot$token/sendMessage?chat_id=$channel&text=$text", "");
			$upd_query = $db->query("UPDATE `" . PREFIX . "_post` SET `xfields` = REPLACE(`xfields`, 'botyes', 'botno') WHERE id=$id");
		}
		echo "Success send $num_rows news";
	} else {
		echo "No news for telegrambot";
	}
	
} else {
	die("Hacking attempt");
}

?>

3. Поставить задание cron на выполнение telegramcron.php?pass=mypass с периодичностью 1-30 минут (время по своему желанию)

 

Код не тестировал, написал на скорую руку

 

P.S. Покупайте лицензию, иначе много сообщений в телеграм отправить не сможете, лимит демо версии DLE = 100 новостей.

 

Изменено пользователем webair
Ссылка на сообщение
Поделиться на других сайтах
В 11.04.2017 в 00:34, webair сказал:

Самое элементарное в случае, если у вас демо версия:

1. Создать доп поле telegram

Тип поля: Список

Значение по умолчанию:

botyes|Отправить

botno|Не отправлять

2. Создать файл telegramcron.php с следующим содержимым:


<?php

// Изменить данные
$cronpass = "mypass";
$token = "mytoken";
$channel = "mychannel";
// =====================

if ($_GET['pass'] == $cronpass){
	include ('engine/api/api.class.php');
	
	$result = $db->query("SELECT * FROM " . PREFIX . "_post WHERE xfields LIKE '%botyes%' ORDER BY id ASC");
	$num_rows = $db->num_rows($result);
	if ($num_rows > 0){
		while ( $row = $db->get_array($result) ) {
			$id = $row['id'];
			$text = htmlspecialchars(stripslashes($row['short_story']), ENT_QUOTES, $config['charset'] );
			file_get_contents("https://api.telegram.org/bot$token/sendMessage?chat_id=$channel&text=$text", "");
			$upd_query = $db->query("UPDATE `" . PREFIX . "_post` SET `xfields` = REPLACE(`xfields`, 'botyes', 'botno') WHERE id=$id");
		}
		echo "Success send $num_rows news";
	} else {
		echo "No news for telegrambot";
	}
	
} else {
	die("Hacking attempt");
}

?>

3. Поставить задание cron на выполнение telegramcron.php?pass=mypass с периодичностью 1-30 минут (время по своему желанию)

 

Код не тестировал, написал на скорую руку

 

P.S. Покупайте лицензию, иначе много сообщений в телеграм отправить не сможете, лимит демо версии DLE = 100 новостей.

 

Для своего сайта сегодня взял лицензию, буду разбираться. Большое спасибо за пример, есть от чего двигаться дальше.

А по поводу сайта библиотечной системы, то руководство одобрило приобретение скрипта, так что в ближайшее время :)

 

В 10.04.2017 в 17:02, SKYNET74 сказал:

1. А зачем сайту библиотечной системы что то слать в инстаграмм?
2. Изучаете код добавления новостей, и вставляете ваше "API" как душе угодно, если нужно заводите ещё одну таблицу куда указываете отправлялась ли эта новость уже в телеграмм, что бы после каждого редактирования не дублировалась.

Телеграм - не инстаграм :)

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

Тем более, что сейчас почти невозможно найти людей, не использующих социальные сети и службы мгновенных сообщений...

 

 

Ссылка на сообщение
Поделиться на других сайтах

Скрипт проверил, работает :)

Сейчас изучаю код на вывод новостей. (купил скрипт для своего личного сайта, буду переезжать с джумлы).

Я веб программирование только недавно начал осваивать, до этого почти 10 лет программы на форточки писал)

 

Ссылка на сообщение
Поделиться на других сайтах
  • 10 месяцев спустя...

скрипт не работает. Я переписал его. Единственное что да он может посылать сообщения

file_get_contents("##############################################################################=$text", "");

проблема в подаче этой ссылки она не принимает текст из переменной выше. Переменная просто не работает.  если вместо $text  писать словами -то будет выводится сообщение как раз это слово. А переменная на отрез не работает.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
В 18.02.2018 в 05:45, vinurd сказал:

скрипт не работает. Я переписал его. Единственное что да он может посылать сообщения

file_get_contents("##############################################################################=$text", "");

проблема в подаче этой ссылки она не принимает текст из переменной выше. Переменная просто не работает.  если вместо $text  писать словами -то будет выводится сообщение как раз это слово. А переменная на отрез не работает.

Проверяйте, у меня все пошло с первого раза :)

Может ошиблись в тексте?

Ссылка на сообщение
Поделиться на других сайтах
В 17.02.2018 в 20:45, vinurd сказал:

скрипт не работает. Я переписал его. Единственное что да он может посылать сообщения

file_get_contents("##############################################################################=$text", "");

проблема в подаче этой ссылки она не принимает текст из переменной выше. Переменная просто не работает.  если вместо $text  писать словами -то будет выводится сообщение как раз это слово. А переменная на отрез не работает.

Значит, у вас нет новостей, содержащих доп поле telegram с значением botyes, либо в новости отсутствует краткое описание (short story).

Проверьте, правильно ли вы создали доп поля.

 

В 14.04.2017 в 09:36, filippst сказал:

Скрипт проверил, работает :)

Сейчас изучаю код на вывод новостей. (купил скрипт для своего личного сайта, буду переезжать с джумлы).

Я веб программирование только недавно начал осваивать, до этого почти 10 лет программы на форточки писал)

 

Если скрипт купили, значит у вас расшифрованы файлы addnews.php и можно туда внедрить этот скрипт, чтобы при добавлении новости отправлялось, а не по cron

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, webair сказал:

Значит, у вас нет новостей, содержащих доп поле telegram с значением botyes, либо в новости отсутствует краткое описание (short story).

Проверьте, правильно ли вы создали доп поля.

 

Если скрипт купили, значит у вас расшифрованы файлы addnews.php и можно туда внедрить этот скрипт, чтобы при добавлении новости отправлялось, а не по cron

Тогда придется каждый раз не забывать запиливать код после обновления((( хотя если только инклудом) В данный момент все выполняется в ручную, отказался от крона, просто показал пользователям как выкладывать новости и куда тыкать для публикации в ТГ.

Хотя был бы не против подсказки, как в addnews поставить отсылку материала в ТГ. Вдруг пригодится) Да и ввиду популярности мессенджера, думаю не у меня одного такие запросы будут)

Изменено пользователем filippst
Ссылка на сообщение
Поделиться на других сайтах
  • 9 месяцев спустя...

С выходом 13 версии модуля никто не запилил?

Если для кого актуально - прошу в эту ветку)

Единственное, что нужно продумать запуск скрипта через прокси, поскольку на хостинге в РФ - телеграм вне закона(

Есть некоторые наработки, пока обкатку делаю.

Ссылка на сообщение
Поделиться на других сайтах

У меня реализовано гораздо проще. Сделал бота в телеграмме, который берёт новости из rss-ленты и постит в группе телеграма.

Ссылка на сообщение
Поделиться на других сайтах
В 27.12.2018 в 15:08, filippst сказал:

С выходом 13 версии модуля никто не запилил?

Если для кого актуально - прошу в эту ветку)

Единственное, что нужно продумать запуск скрипта через прокси, поскольку на хостинге в РФ - телеграм вне закона(

Есть некоторые наработки, пока обкатку делаю.

Самый дешевый хостинг вне РФ и через него гонять запросы.

Ссылка на сообщение
Поделиться на других сайтах
В 29.12.2018 в 02:06, webair сказал:

Самый дешевый хостинг вне РФ и через него гонять запросы.

По закону, нам не запрещено использовать мессенджер, но запрещено размещать сайты на зарубежных площадках(

В принципе вариант дельный, но неужели никакого другого выхода не предвидится?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, filippst сказал:

По закону, нам не запрещено использовать мессенджер, но запрещено размещать сайты на зарубежных площадках(

В принципе вариант дельный, но неужели никакого другого выхода не предвидится?

запрещено или нет, но хостинги в рф блокируют телеграм.

в гугле напишите telegram posting. найдётся куча решений, даже те, что не нуждаются в движке DLE. как платные, так и бесплатные решения

Ссылка на сообщение
Поделиться на других сайтах
  • 9 месяцев спустя...
В 27.12.2018 в 20:08, radrigo сказал:

Сделал бота в телеграмме, который берёт новости из rss-ленты и постит в группе телеграма.

Если не сложно, покажите ваш rss.tpl. У меня упорно ничего не уходит в ТГ. Может из-за того что rss под Яндекс турбо сделан?

Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, Dali3 сказал:

Если не сложно, покажите ваш rss.tpl. У меня упорно ничего не уходит в ТГ. Может из-за того что rss под Яндекс турбо сделан?

https://gusev-online.ru/rss.xml

 

rss.tpl

[yandexrss]<item turbo="true">
<title>{title}</title>
<author>Gusev-online.ru</author>
<guid isPermaLink="true">{rsslink}</guid>
<link>{rsslink}</link>
<description>{short-story}</description>
<category>{category}</category>[image-1]
<enclosure url="{image-1}" type="image/jpeg" />[/image-1]
<pubDate>{rssdate}</pubDate>
<yandex:full-text>{full-story}</yandex:full-text>
<turbo:content><![CDATA[<header>[xfgiven_glavfoto]<figure><img src="[xfvalue_image_url_glavfoto]" /></figure>[/xfgiven_glavfoto][xfnotgiven_glavfoto][image-1]<figure><img src="{image-1}" /></figure>[/image-1][/xfnotgiven_glavfoto]<h1>{title}</h1></header>{full-story}[xfgiven_galerea]<br><br><a href="{rsslink}">Фотографии, загруженные к новости, доступны только в полной версии сайта.</a>[/xfgiven_galerea][xfgiven_video][xfvalue_video][/xfgiven_video]<div data-block="share"></div>]]></turbo:content>
<content:encoded><![CDATA[[xfgiven_glavfoto]<figure><img src="[xfvalue_image_url_glavfoto]" />[xfgiven_podpis]<figcaption>[xfvalue_podpis]</figcaption>[/xfgiven_podpis]</figure>[/xfgiven_glavfoto][xfnotgiven_glavfoto][image-1]<figure><img src="{image-1}" />[xfgiven_podpis]<figcaption>[xfvalue_podpis]</figcaption>[/xfgiven_podpis]</figure>[/image-1][/xfnotgiven_glavfoto]{full-story}[xfgiven_galerea]<br><br><a href="{rsslink}">Фотографии, загруженные к новости, доступны только в полной версии сайта.</a>[/xfgiven_galerea][xfgiven_video]<br><br><a href="{rsslink}">Видео, добавленное к новости, доступно в только в полной версии сайта.[/xfgiven_video]]]></content:encoded>
<yandex:related>{custom category="2-7,9,17" template="yandex_rss" days="10" limit="5" order="rating" cache="yes"}</yandex:related>
</item>[/yandexrss]

 

yandex_rss.tpl

<link url="{full-link}" img="{image-1}">{title}</link>

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...