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

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

Модератор: immortal

Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Модуль "Telegram"

Сообщение xor »

У меня под ВинХП всё работает

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

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$url = 'http://192.168.1.7/jpgraph/?p=kitchen.temperature&type=24h&width=700&gtype=curve';
$path = './cached/chart.jpg';
file_put_contents($path, file_get_contents($url));
$telegram_module->sendImageToAll('c:/_majordomo/htdocs/cached/chart.jpg'); 
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Модуль "Telegram"

Сообщение directman66 »

Может надо библиотеку обновить, чтоб работала на php7?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Модуль "Telegram"

Сообщение directman66 »

Появилась идея сделать файловый менеджер на основе этого модуля. Вроде ничего сложного ) Может уже кто-то сделал?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Модуль "Telegram"

Сообщение directman66 »

Коллеги, помогите разобраться. Делаю по примеру из этой темы

Вызываю динамическую клавиатуру:
SPOILERSPOILER_SHOW
$off = json_decode('"'.'\ud83c\udf11'.'"');
$on = json_decode('"'.'\uD83C\uDF15'.'"');
$kuh = $off;
$prih = $off;
$kor = $off;
if (gg("Relay07.on") == 1)
$kuh = $on;
if (gg("Relay11.status") == 1)
$prih = $on;

if (gg("Relay01.status") == 1)
$kor = $on;

$option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")

) );


$keyb = $this->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Управление светом:", 'reply_markup' => $keyb);
$this->sendContent($content);
И обработчик событий
SPOILERSPOILER_SHOW

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

$sw = false;

if ($callback == 'Callback_kitchen')
{
 $sw = true;
 cm("Relay07.switch");
}
if ($callback == 'Callback_prih')
{
 $sw = true;
 cm("Relay12.switch");
}
if ($sw)
{
 $off = json_decode('"'.'\ud83c\udf11'.'"');
 $on = json_decode('"'.'\uD83C\uDF15'.'"');
 $kuh = $off;
 $prih = $off;
 $kor = $off;
 if (gg("Relay07.on") == 1)
    $kuh = $on;
 if (gg("Relay12.status") == 1)
   $kor = $on;
 if (gg("Relay01.status") == 1)
   $prih = $on;
 
 $option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")                      
) );
                        $keyb = $this->buildInlineKeyBoard($option);
 $this->editMessage($chat_id,$message_id,"Управление светом:",$keyb);
} 
Даже сделал тестовые обработчик событий
SPOILERSPOILER_SHOW

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

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$where;
$telegram_module->sendMessageToAll($texxt); 
При нажатии на всплывающую кнопку с обозначением помещения, ничего не происходит. Нет дажу тестового вызова callback.

Заранее спасибо!
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser »

directman66 писал(а):Коллеги, помогите разобраться. Делаю по примеру из этой темы

Вызываю динамическую клавиатуру:
SPOILERSPOILER_SHOW
$off = json_decode('"'.'\ud83c\udf11'.'"');
$on = json_decode('"'.'\uD83C\uDF15'.'"');
$kuh = $off;
$prih = $off;
$kor = $off;
if (gg("Relay07.on") == 1)
$kuh = $on;
if (gg("Relay11.status") == 1)
$prih = $on;

if (gg("Relay01.status") == 1)
$kor = $on;

$option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")

) );


$keyb = $this->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => "Управление светом:", 'reply_markup' => $keyb);
$this->sendContent($content);
И обработчик событий
SPOILERSPOILER_SHOW

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

$sw = false;

if ($callback == 'Callback_kitchen')
{
 $sw = true;
 cm("Relay07.switch");
}
if ($callback == 'Callback_prih')
{
 $sw = true;
 cm("Relay12.switch");
}
if ($sw)
{
 $off = json_decode('"'.'\ud83c\udf11'.'"');
 $on = json_decode('"'.'\uD83C\uDF15'.'"');
 $kuh = $off;
 $prih = $off;
 $kor = $off;
 if (gg("Relay07.on") == 1)
    $kuh = $on;
 if (gg("Relay12.status") == 1)
   $kor = $on;
 if (gg("Relay01.status") == 1)
   $prih = $on;
 
 $option = array( array($this->buildInlineKeyboardButton($text=$kuh."Кухня","","Callback_kitchen",""),
$this->buildInlineKeyboardButton($text=$kor."Коридор","","Callback_koridor",""),
$this->buildInlineKeyboardButton($text=$prih."Прихожая","","Callback_prih","")                      
) );
                        $keyb = $this->buildInlineKeyBoard($option);
 $this->editMessage($chat_id,$message_id,"Управление светом:",$keyb);
} 
Даже сделал тестовые обработчик событий
SPOILERSPOILER_SHOW

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

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$where;
$telegram_module->sendMessageToAll($texxt); 
При нажатии на всплывающую кнопку с обозначением помещения, ничего не происходит. Нет дажу тестового вызова callback.

Заранее спасибо!
включены ли обработчики (галка "Включить")?
что в логе пишет при этих действиях?
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Модуль "Telegram"

Сообщение directman66 »

Галка включена.
SPOILERSPOILER_SHOW
Screenshot_2018-01-17-21-14-59-603_com.android.chrome.png
Screenshot_2018-01-17-21-14-59-603_com.android.chrome.png (210.63 КБ) 6681 просмотр
Screenshot_2018-01-17-21-19-42-418_com.android.chrome.png
Screenshot_2018-01-17-21-19-42-418_com.android.chrome.png (190.09 КБ) 6681 просмотр
Судя по записи в логе 21:42:46 Chatid: 388067888; Bot-name: dmshome_bot; Message: Callback_koridor

Кэлбэк вызывается. Но тестовый обработчик события не имеет заполненной переменной $Callback

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

$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$callback;
$telegram_module->sendMessageToAll($texxt); 
Результат

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

$chat_id: 388067888 $text: Свет $callback: 
но и это сообщение выскакивает только когда вводишь команду, когда ждешь колбэк его нет
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Контактная информация:

Re: Модуль "Telegram"

Сообщение Eraser »

directman66 писал(а):Галка включена.
SPOILERSPOILER_SHOW
Screenshot_2018-01-17-21-14-59-603_com.android.chrome.png
Screenshot_2018-01-17-21-19-42-418_com.android.chrome.png
Судя по записи в логе 21:42:46 Chatid: 388067888; Bot-name: dmshome_bot; Message: Callback_koridor

Кэлбэк вызывается. Но тестовый обработчик события не имеет заполненной переменной $Callback

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

$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$callback;
$telegram_module->sendMessageToAll($texxt);
Результат

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

$chat_id: 388067888 $text: Свет $callback:
но и это сообщение выскакивает только когда вводишь команду, когда ждешь колбэк его нет
тип у события какой?
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Модуль "Telegram"

Сообщение directman66 »

Eraser писал(а):
directman66 писал(а):Галка включена.
SPOILERSPOILER_SHOW
Screenshot_2018-01-17-21-14-59-603_com.android.chrome.png
Screenshot_2018-01-17-21-19-42-418_com.android.chrome.png
Судя по записи в логе 21:42:46 Chatid: 388067888; Bot-name: dmshome_bot; Message: Callback_koridor

Кэлбэк вызывается. Но тестовый обработчик события не имеет заполненной переменной $Callback

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

$texxt='$chat_id: '.$chat_id.' $text: '.$text.' $callback:'.$callback;
$telegram_module->sendMessageToAll($texxt); 
Результат

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

$chat_id: 388067888 $text: Свет $callback: 
но и это сообщение выскакивает только когда вводишь команду, когда ждешь колбэк его нет
тип у события какой?
У всех текстовый

Отправлено с моего Redmi Note 3 через Tapatalk
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Контактная информация:

Re: Модуль

Сообщение Eraser »

directman66 писал(а):У всех текстовый
для обработки нажатий inline клавиатуры надо тип Callback
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Модуль "Telegram"

Сообщение directman66 »

Ура, делюсь запрашивалкой координат пользователей MD

Команда:
SPOILERSPOILER_SHOW

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

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$menu=array();
$objects = getObjectsByClass("Users");
foreach ($objects as $obj) {     
 $ar2[] = $obj['TITLE'];
 
 $menu[]=$telegram_module->buildInlineKeyboardButton($text=$obj['TITLE'],"","gde_".$obj['TITLE'],"")  ;

}

 $option = array($menu) ;


$keyb = $telegram_module->buildInlineKeyBoard($option);

$content = array('chat_id' => $chat_id, 'text' => "Получение координат", 'reply_markup' => $keyb);
$telegram_module->sendContent($content); 

callback:
SPOILERSPOILER_SHOW

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

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();


//$telegram_module->sendMessageToAll($callback);
//$telegram_module->sendMessageToAll(substr($callback,0,3));
//$telegram_module->sendMessageToAll(substr($callback,4));

if (substr($callback,0,3) == 'gde')
{
$coord=gg(substr($callback,4).'.Coordinates');
$adr=gg(substr($callback,4).'.address');
$sp=explode(",",$coord);
$telegram_module->sendMessageToAll($adr);
$telegram_module->sendLocationToAll($sp[0],$sp[1]);
}

SPOILERSPOILER_SHOW
gde.png
gde.png (50.22 КБ) 6611 просмотров
Надо для светильников также сделать динамическое меню.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ответить