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

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

Модератор: immortal

eygen
Сообщения: 392
Зарегистрирован: Чт сен 25, 2014 5:37 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 52 раза

Re: Модуль

Сообщение eygen » Чт сен 21, 2017 3:32 pm

alekszander писал(а):Коллеги подскажите как организовать следующий функционал. Есть команда для отправки фото с камер, к телеграмм подключено два пользователя. При нажатии на камеру к примеру гостиная фото отправляется всем. Есть ли такой функционал как разделить отправку только в определенный чат, именно в тот с которого пришёл запрос.


Отправлено с моего iPhone используя Tapatalk
Примерно так...
$telegram_module->sendImageToUser($chat_id,'c:\...');
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Модуль "Telegram"

Сообщение alekszander » Чт сен 21, 2017 3:40 pm

eygen писал(а):
alekszander писал(а):Коллеги подскажите как организовать следующий функционал. Есть команда для отправки фото с камер, к телеграмм подключено два пользователя. При нажатии на камеру к примеру гостиная фото отправляется всем. Есть ли такой функционал как разделить отправку только в определенный чат, именно в тот с которого пришёл запрос.


Отправлено с моего iPhone используя Tapatalk
Примерно так...
$telegram_module->sendImageToUser($chat_id,'c:\...');
Не работает. Пишет upload photo но фотография до получателя не доходит.


Отправлено с моего iPhone используя Tapatalk
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль

Сообщение Eraser » Чт сен 21, 2017 5:45 pm

alekszander писал(а):Коллеги подскажите как организовать следующий функционал. Есть команда для отправки фото с камер, к телеграмм подключено два пользователя. При нажатии на камеру к примеру гостиная фото отправляется всем. Есть ли такой функционал как разделить отправку только в определенный чат, именно в тот с которого пришёл запрос.
надо отправлять картинку тому от кого пришла команда, а именно $chat_id

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

sendImageToUser($chat_id,$img,$namecam);
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
eygen
Сообщения: 392
Зарегистрирован: Чт сен 25, 2014 5:37 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 52 раза

Re: Модуль

Сообщение eygen » Чт сен 21, 2017 7:16 pm

alekszander писал(а):
eygen писал(а):
alekszander писал(а):Коллеги подскажите как организовать следующий функционал. Есть команда для отправки фото с камер, к телеграмм подключено два пользователя. При нажатии на камеру к примеру гостиная фото отправляется всем. Есть ли такой функционал как разделить отправку только в определенный чат, именно в тот с которого пришёл запрос.


Отправлено с моего iPhone используя Tapatalk
Примерно так...
$telegram_module->sendImageToUser($chat_id,'c:\...');
Не работает. Пишет upload photo но фотография до получателя не доходит.


Отправлено с моего iPhone используя Tapatalk
Весь код команды покажи, у меня отправляет. Уважаемый Eraser про то же пишет...
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Модуль "Telegram"

Сообщение alekszander » Пт сен 22, 2017 2:29 am

Все меню полностью формируется через messegeHook.
Кусок кода отвечающий за заупуск скрипта и саму кнопку в телеграмм
СпойлерПоказать
$pos = strripos($text , "На балконе");
if ($pos > -1) {
$this->sendAction($chat_id, "upload_photo");
rs('balkon_cam');
$skip = true;
$option = array( array($em_kom." В гостиной", $em_balkony." На балконе"), array($em_bed." В спальне", $em_hallway." В прихожей"), array($em_nurs." В детской", $em_door." В подъезде"), array($em_back."Меню") );
}
А вот сам скрипт который запускается для формирования и отправки
СпойлерПоказать
safe_exec("sudo /var/www/scripts/outside/balkon.sh");
sleep(10);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToUser($chat_id,'/home/pi/images/balkon.jpg', 'Камера на балконе');
За это сообщение автора alekszander поблагодарил:
Samir77 (Вс янв 24, 2021 10:10 am)
Рейтинг: 1.16%
I_I_Imonder
Сообщения: 256
Зарегистрирован: Сб янв 11, 2014 2:54 pm
Благодарил (а): 12 раз
Поблагодарили: 14 раз

Re: Модуль "Telegram"

Сообщение I_I_Imonder » Сб сен 30, 2017 2:29 pm

Доброго дня! при попытке установки модуля вылетает ошибка:

Parse error: syntax error, unexpected '[' in C:\_majordomo\htdocs\modules\telegram\Telegram.php on line 64

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

Re: Модуль "Telegram"

Сообщение ekzorchik » Вс окт 01, 2017 7:52 am

Всем привет!
У меня не получается заставить моего бота в 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 приходит изображение с камеры.
Аватара пользователя
vitt76
Сообщения: 372
Зарегистрирован: Вс апр 09, 2017 2:36 pm
Благодарил (а): 101 раз
Поблагодарили: 51 раз

Re: Модуль "Telegram"

Сообщение vitt76 » Пн окт 02, 2017 9:57 am

Добрый день! Создал неделю назад новую команду, до сих пор в боте ее не видно, как бы ее "пропихнуть"?
Все доступы выставлены верно, команда активна, до этого все команды нормально подтягивались.
Broadlink + Orange Pi PC ARMBIAN 5.31
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser » Пн окт 02, 2017 10:25 am

vitt76 писал(а):Добрый день! Создал неделю назад новую команду, до сих пор в боте ее не видно, как бы ее "пропихнуть"?
Все доступы выставлены верно, команда активна, до этого все команды нормально подтягивались.
надо смотреть настройки команды, доступны ли разрешения для пользователя, включено ли отображение
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
alekszander
Сообщения: 178
Зарегистрирован: Вс янв 05, 2014 5:37 am
Благодарил (а): 10 раз
Поблагодарили: 17 раз

Re: Модуль "Telegram"

Сообщение alekszander » Пн окт 02, 2017 10:33 am

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 пользователя в модуле
Ответить