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

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

Модератор: immortal

Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Сб май 22, 2021 12:12 pm

Так и не нашел, или чего не понял..
Подскажите есть @ukrainian_stt2_bot вот такой бот - как на него можно отправить аудиосообщение и получить ответ ?
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

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

Сообщение Eraser » Сб май 22, 2021 12:38 pm

tarasfrompir писал(а):
Сб май 22, 2021 12:12 pm
Так и не нашел, или чего не понял..
Подскажите есть @ukrainian_stt2_bot вот такой бот - как на него можно отправить аудиосообщение и получить ответ ?
телеграм запрещает отправлять сообщения между ботами
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Сб май 22, 2021 1:19 pm

Eraser писал(а):
Сб май 22, 2021 12:38 pm
tarasfrompir писал(а):
Сб май 22, 2021 12:12 pm
Так и не нашел, или чего не понял..
Подскажите есть @ukrainian_stt2_bot вот такой бот - как на него можно отправить аудиосообщение и получить ответ ?
телеграм запрещает отправлять сообщения между ботами
Ясно-но странно. :shock:
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Alexander Znamensky
Сообщения: 160
Зарегистрирован: Ср дек 18, 2019 11:13 am
Откуда: Москва
Благодарил (а): 87 раз
Поблагодарили: 25 раз

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

Сообщение Alexander Znamensky » Пт июн 04, 2021 8:26 am

Alexander Znamensky писал(а):
Пт фев 26, 2021 4:32 pm
Андрей, привет!

После последнего обновления заметил появление ошибок.
Отправка сообщения:

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

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module -> sendMessageToUser(******, "test");
Ошибка:

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

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/modules/telegram/telegram.class.php on line 731
Вроде раньше такого не замечал....
Добрый день.

После обновления та же ошибка. При этом вроде бы все работает.....
Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/modules/telegram/telegram.class.php on line 731
Raspberry Pi4 B+, образ v4_44 -> Alpha, PHP 7.3, Xiaomi Gateway 2, Tuya, Blynk, ESP8266
Yashalta
Сообщения: 315
Зарегистрирован: Вс май 20, 2018 9:27 am
Благодарил (а): 160 раз
Поблагодарили: 29 раз

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

Сообщение Yashalta » Пн июн 07, 2021 6:54 pm

Просмотрел всю ветку не нашел ответ на свой вопрос.
Подскажите как реализовать две кнопки, при нажатии на одну из них пользователь вводит текст и этот текст сохраняется в переменную $text_1 или $text_2 и далее эти переменные подстваляются свойство объекта.
Я нашел код как реализовать кнопки и пределал немного но, не уверен, что правильно! Но, кнопки отображаются в телеграмме.

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

$pos = strripos($text , "Заголовок");
if ($pos > -1) {
    cm("setGlobal("объект.свойство", $text_1);");
   $skip = true;
}
$pos = strripos($text , "Сообщение");
if ($pos > -1) {
   cm("setGlobal("объект.свойство", $text_2);");
   $skip = true;
}
echo $text;
$pos = strripos($text , "Новость");
if ($pos > -1) {
 $skip = true;
}
if ($skip)
{
//3C D8 11 DF
$off = json_decode('"'.'\ud83c\udf11'.'"');
//D83C DF15
$on = json_decode('"'.'\uD83C\uDF15'.'"');
$option = array(array($ks."Заголовок", $ts."Сообщение"),array("Назад"));
$this->sendMessageToUser($chat_id,"Введите текст:",$option);
} 
А вот сохранять вводимый текст в переменную я не знаю!
Yashalta
Сообщения: 315
Зарегистрирован: Вс май 20, 2018 9:27 am
Благодарил (а): 160 раз
Поблагодарили: 29 раз

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

Сообщение Yashalta » Ср июн 09, 2021 6:46 pm

Может как-то можно реализовать в "Сохранение пользовательского ввода после определенного сообщения telegram bot" https://coderoad.ru/44054143/%D0%A1%D0% ... legram-bot
Или может уже это реализованно?


PS - Больше спамить не буду на эту тему если не будет ответов.
Logrus
Сообщения: 2077
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 456 раз

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

Сообщение Logrus » Ср июн 09, 2021 8:04 pm

ответов не будет, т.к. у нас свой бот, со своей логикой и взаимодействием с другими модулями мдм
описывать все это никто не будет, решать вашу задачу аналогично
она решаема и не столь уж и сложно
За это сообщение автора Logrus поблагодарил:
Yashalta (Ср июн 09, 2021 10:14 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Yashalta
Сообщения: 315
Зарегистрирован: Вс май 20, 2018 9:27 am
Благодарил (а): 160 раз
Поблагодарили: 29 раз

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

Сообщение Yashalta » Ср июн 09, 2021 10:14 pm

Logrus писал(а):
Ср июн 09, 2021 8:04 pm
...
она решаема и не столь уж и сложно
Хоть направление дайте куда "копать"!
Может телеграм создает свой объект и там что то сохраняет?
А! Может из истории Алисы выдергивать сообщения от бота?!?? о!!!!! СПАСИБО!
Yashalta
Сообщения: 315
Зарегистрирован: Вс май 20, 2018 9:27 am
Благодарил (а): 160 раз
Поблагодарили: 29 раз

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

Сообщение Yashalta » Пн июн 14, 2021 9:42 am

Я тут оставлю, возможно кому понадобится решение сохранение последнего телеграмного сообщения в свойство объекта.
Зачем это нужно? Я эту информацию вывожу в сцене бегущей стройкой и + Алиса проговаривает при движеннии в нужной комнате. Это как важное "объявление".

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

//коды смайлов в кодировке utf-8  
//$off = hex2bin('F09F8C91');
//$on  = hex2bin('F09F8C95');
$users[0] = 'telegram1'; //
$users[1] = 'telegram2'; //
$users[2] = 'telegram4'; //
$users[3] = 'telegram3'; //

$title = Null;    
$pog = hex2bin('E29B85');
$sta = hex2bin('F09F92AC');
$to_text = 'Display.telegram_text'; // Здесь сохраняют заголовки.
$to_title = 'Display.telegram_title'; // Здесь сохраняют объявления.
$message = 'message'; // введенный текст.
//$flag = 23456789; // Если $flag = 0 то сохраняем в "Заголовок" а если $flag = 1 то сохраняем в текст
//if(gg("security")){$st1=$on;}
//if(gg("Econom")){$st2=$on;}

print_r($callback);
//Второе меню
$option1 = array(array($title."Заголовок", $pog."Погода", $sta."Текст"),array("Назад"));
//Основное меню
$option2 = array(array($title."Сохранить"),array("меню"));
//Нажали на кнопку "Заголовок"
$pos = strripos($text , "Заголовок");
if ($pos > -1) {
	   setGlobal('Display.flag', 1);
       $this->sendMessageToUser($chat_id,"Введите только заголовок объявления:",$option2); 
       $skip = true;
}
//Нажали на кнопку "Текст"
$pos = strripos($text , "Текст");
if ($pos > -1) {
	   setGlobal('Display.flag', 2);
       $this->sendMessageToUser($chat_id,"Введите текст объявления:",$option2); 
       $skip = true;
}

//Нажали на кнопку погода
$pos = strripos($text , "Погода");
if ($pos > -1) {
    $weather=     "Сейчас".hex2bin('F09F8CA1').gg('ow_fact.temperature')."°C,".gg('ow_fact.weather_type').",".hex2bin('F09F92A8').gg('ow_fact.wind_direction_my')." ".gg('ow_fact.wind_speed')."км/ч, ".hex2bin('F09F92A7').gg('ow_fact.humidity')."%, ".hex2bin('F09F92AA').round(gg('ow_fact.pressure_mmhg'),0);
    $this->sendMessageToUser($chat_id, $weather, $option1);
    $skip = true;
}
//Действие на кнопку "сохранить"
$pos = strripos($text , "Сохранить");
if ($pos > -1) {
  	$this->sendMessageToUser($chat_id, "Введенные Вами данные сохранены!", $option1);
    $skip = true;

//setGlobal('Display.telegram_title', $flag); // Для дебага
//-------------------------Ниже код сохраняет пользовательский текст в свойства объекта ----------------//
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ($conn === false) {
  die("Ошибка: " . mysqli_connect_error());
} 

//
$sqltxt = '';
$count_arr = count($users); 
$count_arr = $count_arr - 1;
foreach($users as $v){
	$sqltxt .= "`source` = '".$v."'";
    if($count_arr > '0'){
    	$sqltxt .= ' OR ';
    }
	$count_arr--;
}


//echo "Подключение успешно установлено";
$sql = "SELECT * FROM `shouts` WHERE ".$sqltxt." ORDER BY `shouts`.`ADDED` DESC";
$ress = $conn->query($sql);
$rows = $ress->fetch_array(); 
// последнее сообщение из телеграмма
//echo $rows[3]; 
$flag = getGlobal('Display.flag');
if($flag == 1){
    setGlobal('Display.telegram_title', trim($rows[3]));
	setGlobal('Display.flag', 0);
}
if($flag == 2){
    setGlobal('Display.telegram_text', trim($rows[3]));
	setGlobal('Display.flag', 0);
}
//echo "<pre>"; print_r($rows); echo "</pre>";

mysqli_close($conn);
/////////////////////////////////
}

//показать меню
//echo $text;
$pos = strripos($text , "меню");
if ($pos > -1) {
     $this->sendMessageToUser($chat_id,"Выберите действие:",$option1);
     $skip = true;
}

Для того, что бы добавить пользователя в массив там где

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

$users[0] = 'telegram1'; //
$users[1] = 'telegram2'; //
$users[2] = 'telegram4'; //
нужно сказать пользователю ввести кодовое слово в телеграмме и на страничке phpmyadmin смотри приложенные скрины, что бы узнать кокой у него номер "telegram1" или "telegram2". Что бы привязать код к своим свойствам делайте это в 80-й строке и в 84.
В 78-й строке указанно свойство которое будет работать как флаг.

Вопрос: Как реализовать нажатие кнопки "Обновить" в свойствах объекта смотри 3-й скрин. Может можно написать метод который будет срабатывать при изменении свойства объекта или может скрипт?
Зачем это нужно?
Часто когда сообщение больщое то, в сцене оно не отображается! И нужно нажать на кнопку обновить, что бы текст новый появился в сцене! Я думаю это как-то связанно с обновлением кеша.
Logrus писал(а):
Ср июн 09, 2021 8:04 pm
...
описывать все это никто не будет, решать вашу задачу аналогично
...
Я помню и понимаю! Но, может кто даст направление куда "копать"?
Вложения
4.png
4.png (365.24 КБ) 2780 просмотров
1.png
1.png (76.27 КБ) 2780 просмотров
Logrus
Сообщения: 2077
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 456 раз

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

Сообщение Logrus » Пн июн 14, 2021 8:00 pm

в альфе проблему с кешированием поправили
в тлг это описывалось в чатике, кст

п.с. имхо проблема в незнании стандартных функций мдм (код выше б в разы сократился) и использовании хреновых примеров (с тлг можно текст только в каллбеках обрабатывать и не пулять его в бд и общий чат)
За это сообщение автора Logrus поблагодарил:
Yashalta (Вт июн 15, 2021 9:05 am)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить