CMS DataLife Engine - Система управления сайтами

filippst

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

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

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

Возможно ли реализовать идею, когда новость (вступительная часть и картинка к ней) автоматически публикуется в канал телеграм. Наш сайт работает пока еще на пробной версии скрипта: 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
  • Поддерживаю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 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 лет программы на форточки писал)

 

Поделиться сообщением


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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 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

Поделиться сообщением


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

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

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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

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

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

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

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

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

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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти