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

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

Добавлено: Сб ноя 24, 2018 10:49 pm
dmsergei
Получаю такое в логе
Но работает

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

Добавлено: Ср ноя 28, 2018 10:35 am
Eraser
anneksiya82 писал(а):
Чт ноя 22, 2018 4:54 pm
Привет всем. ни кто не задумался реализовать пакетную отправка изображений? Реально данный вещь реализовать?
было давно в планах, скоро выложу обновление

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

Добавлено: Ср ноя 28, 2018 10:48 am
Eraser
Добавлены функции пакетной отправки изображений (альбом)
  • sendAlbum - отправка пользователю
  • sendAlbumToAdmin - отправка администраторам
  • sendAlbumToAll - отправка всем
Пример использования

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

include(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$photos = ['/var/www/images/htc_hero_wallpaper_01.jpg','/var/www/images/htc_hero_wallpaper_02.jpg','/var/www/images/image-1.jpg'];
$telegram_module->sendAlbumToAdmin($photos,'test');
БОНУС! Получение камер "Простых устройств"Показать
Код для команды телеграмм

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

$objects=getObjectsByClass("SCameras");
$photos = array();
foreach($objects as $obj) {
	$this->sendAction($chat_id,"upload_photo");
 	$url = BASE_URL.gg($obj['TITLE'].".snapshotPreviewURL");
 	$img = "/var/www/files/".$obj['TITLE'].".jpg";
     try {
		 $data = file_get_contents($url);
         $i = strlen($data);
         $handle = fopen($img, "w");
         fwrite($handle, $data);
         fclose($handle);
      	 if ($i > 0) $photos[] = $img;
     } catch (Exception $e) {
             echo 'Caught exception: ',  $e->getMessage(), "\n";
     }
}
$this->sendAlbum($chat_id, $photos,'Камеры');

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

Добавлено: Ср ноя 28, 2018 10:58 am
alekszander
Коллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?

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

Добавлено: Ср ноя 28, 2018 11:01 am
Eraser
alekszander писал(а):
Ср ноя 28, 2018 10:58 am
Коллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?
код callback в студию!

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

Добавлено: Ср ноя 28, 2018 11:05 am
alekszander
Eraser писал(а):
Ср ноя 28, 2018 11:01 am
alekszander писал(а):
Ср ноя 28, 2018 10:58 am
Коллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?
код callback в студию!

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

$this->sendAction($chat_id);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
if (substr($callback,0,3) == 'gde')
{
$coord=gg(substr($callback,4).'.Coordinates');
$adr=gg(substr($callback,4).'.Location');
$sp=explode(",",$coord);
$telegram_module->sendLocationToUser($chat_id,$sp[0],$sp[1]);
$telegram_module->sendMessageToUser($chat_id,$adr);
}
return;
Return был добавлен в качестве эксперимента. Но результата не дало

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

Добавлено: Ср ноя 28, 2018 11:12 am
Eraser
alekszander писал(а):
Ср ноя 28, 2018 11:05 am
Eraser писал(а):
Ср ноя 28, 2018 11:01 am
alekszander писал(а):
Ср ноя 28, 2018 10:58 am
Коллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?
код callback в студию!

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

$this->sendAction($chat_id);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
if (substr($callback,0,3) == 'gde')
{
$coord=gg(substr($callback,4).'.Coordinates');
$adr=gg(substr($callback,4).'.Location');
$sp=explode(",",$coord);
$telegram_module->sendLocationToUser($chat_id,$sp[0],$sp[1]);
$telegram_module->sendMessageToUser($chat_id,$adr);
}
return;
Return был добавлен в качестве эксперимента. Но результата не дало
а зачем это в callback? можно просто в команду, у меня так: создана команда "Где", скрыта от показа в клавиатуре, для активации нужно отправить сообщение боту "где имя_пользователя", имя надо задать в User.fullName
код командыПоказать
$this->sendAction($chat_id,"find_location");

$user = explode(' ',$text)[1];
echo $user;
$obj_name="";
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
if (getGlobal($obj['TITLE'].".fullName")==$user)
{
$obj_name = $obj['TITLE'];
break;
}
}
if ($obj_name !="")
{
$coord = getGlobal($obj_name.".Coordinates");
$ll = explode(',',$coord);
$lat = $ll[0];
$lon = $ll[1];
$seenAt = getGlobal($obj_name.".CoordinatesUpdated"). " " . getGlobal($obj_name.".seenAt")." Батарея:" .getGlobal($obj_name.".BattLevel")."%";

$this->sendVenueToUser($chat_id , $lat , $lon, $user, $seenAt);
$message_id = $res["result"]["message_id"];
sg($obj_name.".msgLoc",$message_id);
sg($obj_name.".msgLocTime",time());
setTimeOut($obj_name.'_locationUpdate','callMethod("'.$obj_name.'.sendLocation", array("VALUE"=>'.$chat_id.'));',60);
return "";
}
else
{
return "Незнаю такого!";
}

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

Добавлено: Ср ноя 28, 2018 11:19 am
consul
Eraser писал(а):
Ср ноя 28, 2018 11:12 am
а зачем это в callback? можно просто в команду, у меня так: создана команда "Где", скрыта от показа в клавиатуре, для активации нужно отправить сообщение боту "где имя_пользователя", имя надо задать в User.fullName
код командыПоказать
$this->sendAction($chat_id,"find_location");

$user = explode(' ',$text)[1];
echo $user;
$obj_name="";
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
if (getGlobal($obj['TITLE'].".fullName")==$user)
{
$obj_name = $obj['TITLE'];
break;
}
}
if ($obj_name !="")
{
$coord = getGlobal($obj_name.".Coordinates");
$ll = explode(',',$coord);
$lat = $ll[0];
$lon = $ll[1];
$seenAt = getGlobal($obj_name.".CoordinatesUpdated"). " " . getGlobal($obj_name.".seenAt")." Батарея:" .getGlobal($obj_name.".BattLevel")."%";

$this->sendVenueToUser($chat_id , $lat , $lon, $user, $seenAt);
$message_id = $res["result"]["message_id"];
sg($obj_name.".msgLoc",$message_id);
sg($obj_name.".msgLocTime",time());
setTimeOut($obj_name.'_locationUpdate','callMethod("'.$obj_name.'.sendLocation", array("VALUE"=>'.$chat_id.'));',60);
return "";
}
else
{
return "Незнаю такого!";
}
надо в шапку темы добавить, классная функция

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

Добавлено: Вт дек 04, 2018 2:05 pm
Mikik
После последнего обновления и кардинальной переделке Say, SayTo и т.д. стали твориться странные вещи в модуле. Вывод сообщений идёт в произвольном порядке, а не в том, как записано в коде. Иногда проглатываются целые строки.

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

Добавлено: Вт дек 04, 2018 3:14 pm
dioxin
Eraser писал(а):
Ср ноя 28, 2018 11:12 am
alekszander писал(а):
Ср ноя 28, 2018 11:05 am
Eraser писал(а):
Ср ноя 28, 2018 11:01 am
alekszander писал(а):
Ср ноя 28, 2018 10:58 am
Коллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?
код callback в студию!

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

$this->sendAction($chat_id);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
if (substr($callback,0,3) == 'gde')
{
$coord=gg(substr($callback,4).'.Coordinates');
$adr=gg(substr($callback,4).'.Location');
$sp=explode(",",$coord);
$telegram_module->sendLocationToUser($chat_id,$sp[0],$sp[1]);
$telegram_module->sendMessageToUser($chat_id,$adr);
}
return;
Return был добавлен в качестве эксперимента. Но результата не дало
а зачем это в callback? можно просто в команду, у меня так: создана команда "Где", скрыта от показа в клавиатуре, для активации нужно отправить сообщение боту "где имя_пользователя", имя надо задать в User.fullName
код командыПоказать
$this->sendAction($chat_id,"find_location");

$user = explode(' ',$text)[1];
echo $user;
$obj_name="";
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
if (getGlobal($obj['TITLE'].".fullName")==$user)
{
$obj_name = $obj['TITLE'];
break;
}
}
if ($obj_name !="")
{
$coord = getGlobal($obj_name.".Coordinates");
$ll = explode(',',$coord);
$lat = $ll[0];
$lon = $ll[1];
$seenAt = getGlobal($obj_name.".CoordinatesUpdated"). " " . getGlobal($obj_name.".seenAt")." Батарея:" .getGlobal($obj_name.".BattLevel")."%";

$this->sendVenueToUser($chat_id , $lat , $lon, $user, $seenAt);
$message_id = $res["result"]["message_id"];
sg($obj_name.".msgLoc",$message_id);
sg($obj_name.".msgLocTime",time());
setTimeOut($obj_name.'_locationUpdate','callMethod("'.$obj_name.'.sendLocation", array("VALUE"=>'.$chat_id.'));',60);
return "";
}
else
{
return "Незнаю такого!";
}
Давным давно сделал вывод кто-где находится не координатами, а адресами. Через Яндекс API.
2018-12-04_15-12-26.png
2018-12-04_15-12-26.png (10.13 КБ) 4640 просмотров