[Модуль] Telegram (telegram)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

ekzorchik
Сообщения: 9
Зарегистрирован: Сб сен 16, 2017 7:55 am
Контактная информация:

Re: Модуль "Telegram"

Сообщение ekzorchik »

alekszander писал(а):
ekzorchik писал(а):Всем привет!
У меня не получается заставить моего бота в Telegram отправлять команды, т.е. вот банальный скрипт:

Код: Выделить всё

$url = "http://Admin:[email protected]/image/jpeg.cgi";
$img = "/var/www/cached/img/show.jpg";
$data = file_get_contents($url);
$handle = fopen($img, "w");
fwrite($handle, $data);
fclose($handle);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module→sendImageToUser(ID,'/var/www/cached/img/show.jpg','Я на работе');
В Telegram набираю команду "скрин" - в ответ тишина, если создать шаблон поведения с этим кодом и назвать "карт", то скрипт не отрабатывает пишет ошибку:

Код: Выделить всё

Fatal error: Function name must be a string in /var/www/modules/patterns/patterns.class.php(481) : eval()'d code on line 9
Но если писать команду вызывающую "Шаблон поведения", то она выполняется и отображается в боте, вижу это через программу Telegram на смартфоне, так и по логам:

Код: Выделить всё

pi@raspberrypi:~ $ tail -f /var/www/debmes/log_*-telegram.php.txt
==> /var/www/debmes/log_2017-09-30-telegram.php.txt <==
07:16:00  Send to ID - Всходит солнце
07:16:00  Send to ID - Режим Темное время суток выключен.
07:36:55  Send to ID - Внешний ай-пи адрес IP-ADDRESSS

Помогите!!!

В общем, заработало только через "Шаблон поведения"

Код: Выделить всё

$url = "http://Admin:[email protected]/dms.jpg";
$jpg = "/var/www/cached/img/show.jpg";

$data = file_get_contents($url);
$handle = fopen($img, "w");
fwrite($handle, $data);
fclose($handle);

$img = '/var/www/cached/img/show.jpg';
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module→sendFileToAdmin($img);
при наборе команды «Карт» в канал бота Telegram приходит изображение с камеры.
У вас в коде ошибка
Указано:

Код: Выделить всё

$url = "http://Admin:[email protected]/image/jpeg.cgi";
$img = "/var/www/cached/img/show.jpg";
$data = file_get_contents($url);
$handle = fopen($img, "w");
fwrite($handle, $data);
fclose($handle);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module→sendImageToUser(ID,'/var/www/cached/img/show.jpg','Я на работе'); 
А должно быть:

Код: Выделить всё

$url = "http://Admin:[email protected]/image/jpeg.cgi";
$img = "/var/www/cached/img/show.jpg";
$data = file_get_contents($url);
$handle = fopen($img, "w");
fwrite($handle, $data);
fclose($handle);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module→sendImageToUser($chat_id,'/var/www/cached/img/show.jpg','Я на работе'); 
вместо $chat_id просто укажите id пользователя в модуле
Нет не ошибка, это я специально указал ID для форума, пробывал как реальный ID, так $chat_id.

Итого: сейчас я имею, что только через "Шаблоны поведения" я могу писать боту в Telegram, команды из приложения Telegram установленного модуля, как со смартфона так и планшета не отрабатывают, даже банальный say.
millor83
Сообщения: 1
Зарегистрирован: Пн окт 02, 2017 6:15 pm

Re: Модуль "Telegram"

Сообщение millor83 »

помогите пожалуйста.
пытаюсь реализовать чтоб все сообщения (где требуется его отправка) шли в telegram, но только тому пользователю который написал команду (запрос)
Как не пытался не могу получить $chat_id
(единственно где его получаю, это в событиях самого модуля telegram)

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendMessageToUser($chat_id, "test message");
Аватара пользователя
S_Nick
Сообщения: 67
Зарегистрирован: Сб сен 30, 2017 7:44 pm
Откуда: Минск
Контактная информация:

Re: Модуль "Telegram"

Сообщение S_Nick »

При установке с маркета
admin.php?md=panel&action=market&ok_msg=Plugin+%27telegram%27+%282017-09-05+15%3A57%3A23%29+installed.

Parse error: syntax error, unexpected '[' in C:\_majordomo\htdocs\modules\telegram\Telegram.php on line 64
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Контактная информация:

Re: Модуль "Telegram"

Сообщение skysilver »

millor83 писал(а):помогите пожалуйста.
пытаюсь реализовать чтоб все сообщения (где требуется его отправка) шли в telegram, но только тому пользователю который написал команду (запрос)
Как не пытался не могу получить $chat_id (единственно где его получаю, это в событиях самого модуля telegram)
Давайте подробности, а то не понятно до конца что и как.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Контактная информация:

Re: Модуль "Telegram"

Сообщение skysilver »

Eraser, в инлайн-клавиатуре есть поддержка всплывающих сообщений (answerCallbackQuery)?

Скрин
SPOILERSPOILER_SHOW
photo_2017-10-13_09-33-01.jpg
photo_2017-10-13_09-33-01.jpg (12.17 КБ) 10562 просмотра
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser »

skysilver писал(а):Eraser, в инлайн-клавиатуре есть поддержка всплывающих сообщений (answerCallbackQuery)?

Скрин
SPOILERSPOILER_SHOW
Вложение photo_2017-10-13_09-33-01.jpg больше недоступно
да можно такое
в новой версии сделал более удобный вызов данной функции
function sendAnswerCallbackQuery($callback_id, $text, $show_alert = false )
  • $show_alert = false - всплывающее уведомление (закрывается само)
  • $show_alert = true - всплывающее уведомление требующее подтверждения ( с кнопкой OK)
вот пример использования

Код: Выделить всё

if ($callback == 'Callback_kitchenLed')
{
 cm("kitchenLed.switch");
 //3C D8 11 DF
 $off = json_decode('"'.'\ud83c\udf11'.'"');
 //D83C DF15
 $on = json_decode('"'.'\uD83C\uDF15'.'"');
 $text = "Свет на кухне ";
 if (gg("kitchenLed.on") == 1)
    $text .= "включен ". $on;
 else
      $text .= "выключен ". $off;
 $this->sendAnswerCallbackQuery($callback_id,$text, false);
} 
Вложения
baloon inline answer.png
baloon inline answer.png (6.33 КБ) 10564 просмотра
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser »

Управляем модулем "Онлайн радио" через телеграм
Выкладываю может кому пригодится

Автоматически подгружаются все станции из модуля

Для удобства выложил экспортированные команду "Радио" и обработчик события "CallbackRadio".
Команду и обработчик импортировать в интерфейсе модуля "Telegram", кнопка "Инструменты".
Вложения
Command_Telegram_Радио.txt
Команда "Радио"
(1011 байт) 1272 скачивания
Event_Telegram_CallbackRadio.txt
Обработчик CallbackRadio
(739 байт) 1170 скачиваний
radio.png
radio.png (24.75 КБ) 10393 просмотра
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам

Re: Модуль "Telegram"

Сообщение Pacific »

Обалденный модуль, спасибо.

1. Можно ли сделать проверку кода при сохранении в обработчике команд? Приходится ловить баги в своем быдлокоде в левом скрипте, а потом уже копировать код в обработчик команд сабжа.
2. Можно ли добавить обработку тега <br> ?
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser »

Pacific писал(а):Обалденный модуль, спасибо.

1. Можно ли сделать проверку кода при сохранении в обработчике команд? Приходится ловить баги в своем быдлокоде в левом скрипте, а потом уже копировать код в обработчик команд сабжа.
2. Можно ли добавить обработку тега <br> ?
1. скоро выложу обновление
2. какую обработку?
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам

Re: Модуль "Telegram"

Сообщение Pacific »

Eraser писал(а):2. какую обработку?
Сорри, неправильно выразился. Не обработку, а поддержку.
Тег <br> не поддерживается.
Из раздела Помощь модуля:
SPOILERSPOILER_SHOW
Текст может содержать HTML разметку. Поддерживаются следующие теги:
<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<a href="URL">inline URL</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
Ответить