Страница 177 из 191

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

Добавлено: Сб май 22, 2021 12:12 pm
tarasfrompir
Так и не нашел, или чего не понял..
Подскажите есть @ukrainian_stt2_bot вот такой бот - как на него можно отправить аудиосообщение и получить ответ ?

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

Добавлено: Сб май 22, 2021 12:38 pm
Eraser
tarasfrompir писал(а):
Сб май 22, 2021 12:12 pm
Так и не нашел, или чего не понял..
Подскажите есть @ukrainian_stt2_bot вот такой бот - как на него можно отправить аудиосообщение и получить ответ ?
телеграм запрещает отправлять сообщения между ботами

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

Добавлено: Сб май 22, 2021 1:19 pm
tarasfrompir
Eraser писал(а):
Сб май 22, 2021 12:38 pm
tarasfrompir писал(а):
Сб май 22, 2021 12:12 pm
Так и не нашел, или чего не понял..
Подскажите есть @ukrainian_stt2_bot вот такой бот - как на него можно отправить аудиосообщение и получить ответ ?
телеграм запрещает отправлять сообщения между ботами
Ясно-но странно. :shock:

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

Добавлено: Пт июн 04, 2021 8:26 am
Alexander Znamensky
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

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

Добавлено: Пн июн 07, 2021 6:54 pm
Yashalta
Просмотрел всю ветку не нашел ответ на свой вопрос.
Подскажите как реализовать две кнопки, при нажатии на одну из них пользователь вводит текст и этот текст сохраняется в переменную $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);
} 
А вот сохранять вводимый текст в переменную я не знаю!

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

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


PS - Больше спамить не буду на эту тему если не будет ответов.

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

Добавлено: Ср июн 09, 2021 8:04 pm
Logrus
ответов не будет, т.к. у нас свой бот, со своей логикой и взаимодействием с другими модулями мдм
описывать все это никто не будет, решать вашу задачу аналогично
она решаема и не столь уж и сложно

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

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

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

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

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

//коды смайлов в кодировке 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
...
описывать все это никто не будет, решать вашу задачу аналогично
...
Я помню и понимаю! Но, может кто даст направление куда "копать"?

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

Добавлено: Пн июн 14, 2021 8:00 pm
Logrus
в альфе проблему с кешированием поправили
в тлг это описывалось в чатике, кст

п.с. имхо проблема в незнании стандартных функций мдм (код выше б в разы сократился) и использовании хреновых примеров (с тлг можно текст только в каллбеках обрабатывать и не пулять его в бд и общий чат)