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

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

Модератор: immortal

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

Re: Модуль "Telegram"

Сообщение ekzorchik » Пн окт 02, 2017 1:54 pm

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

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

$url = "http://Admin:Aa1234567@10.7.8.118/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:Aa1234567@10.7.8.118/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:Aa1234567@10.7.8.118/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:Aa1234567@10.7.8.118/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
Благодарил (а): 0
Поблагодарили: 0

Re: Модуль "Telegram"

Сообщение millor83 » Пн окт 02, 2017 6:26 pm

помогите пожалуйста.
пытаюсь реализовать чтоб все сообщения (где требуется его отправка) шли в 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
Сообщения: 58
Зарегистрирован: Сб сен 30, 2017 7:44 pm
Откуда: Минск
Благодарил (а): 8 раз
Поблагодарили: 43 раза
Контактная информация:

Re: Модуль "Telegram"

Сообщение S_Nick » Чт окт 05, 2017 6:48 pm

При установке с маркета
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
Сообщения: 2855
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 368 раз
Поблагодарили: 1647 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение skysilver » Пт окт 06, 2017 1:09 pm

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

Re: Модуль "Telegram"

Сообщение skysilver » Пт окт 13, 2017 9:37 am

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

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

Re: Модуль "Telegram"

Сообщение Eraser » Пт окт 13, 2017 11:06 am

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

Скрин
СпойлерПоказать
Вложение 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 КБ) 5494 просмотра
За это сообщение автора Eraser поблагодарили (всего 2):
skysilver (Пт окт 13, 2017 11:17 am) • consul (Пт окт 13, 2017 1:59 pm)
Рейтинг: 2.47%
Connect ---- Telegram
Яндекс.Деньги для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
Eraser
Сообщения: 943
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 13 раз
Поблагодарили: 702 раза
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Вт окт 24, 2017 11:29 am

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

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

Для удобства выложил экспортированные команду "Радио" и обработчик события "CallbackRadio".
Команду и обработчик импортировать в интерфейсе модуля "Telegram", кнопка "Инструменты".
Вложения
Command_Telegram_Радио.txt
Команда "Радио"
(1011 байт) 887 скачиваний
Event_Telegram_CallbackRadio.txt
Обработчик CallbackRadio
(739 байт) 852 скачивания
radio.png
radio.png (24.75 КБ) 5323 просмотра
За это сообщение автора Eraser поблагодарили (всего 6):
consul (Вт окт 24, 2017 11:31 am) • skysilver (Вт окт 24, 2017 2:01 pm) • savenko_egor (Вт окт 24, 2017 2:08 pm) • man1ac (Чт апр 12, 2018 6:43 pm) • xor (Сб фев 23, 2019 12:40 am) • Alexander Znamensky (Чт май 14, 2020 10:17 am)
Рейтинг: 7.41%
Connect ---- Telegram
Яндекс.Деньги для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Pacific
Сообщения: 113
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

Re: Модуль "Telegram"

Сообщение Pacific » Вт окт 24, 2017 2:00 pm

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

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

Re: Модуль "Telegram"

Сообщение Eraser » Вт окт 24, 2017 2:33 pm

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

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

Re: Модуль "Telegram"

Сообщение Pacific » Вт окт 24, 2017 6:54 pm

Eraser писал(а):2. какую обработку?
Сорри, неправильно выразился. Не обработку, а поддержку.
Тег <br> не поддерживается.
Из раздела Помощь модуля:
СпойлерПоказать
Текст может содержать 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>
россыпь датчиков и серв <-> дюжина ESP8266(WiFi-IoT) <-> Malinka Pi2 :)
Ответить