Re: [Модуль] Telegram (telegram)
Добавлено: Сб ноя 24, 2018 10:49 pm
Получаю такое в логе
Но работает
Но работает
было давно в планах, скоро выложу обновлениеanneksiya82 писал(а): ↑Чт ноя 22, 2018 4:54 pmПривет всем. ни кто не задумался реализовать пакетную отправка изображений? Реально данный вещь реализовать?
Код: Выделить всё
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,'Камеры');
код callback в студию!alekszander писал(а): ↑Ср ноя 28, 2018 10:58 amКоллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?
Eraser писал(а): ↑Ср ноя 28, 2018 11:01 amкод callback в студию!alekszander писал(а): ↑Ср ноя 28, 2018 10:58 amКоллеги, подскажите. Сделал 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;
а зачем это в callback? можно просто в команду, у меня так: создана команда "Где", скрыта от показа в клавиатуре, для активации нужно отправить сообщение боту "где имя_пользователя", имя надо задать в User.fullNamealekszander писал(а): ↑Ср ноя 28, 2018 11:05 amEraser писал(а): ↑Ср ноя 28, 2018 11:01 amкод callback в студию!alekszander писал(а): ↑Ср ноя 28, 2018 10:58 amКоллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?Return был добавлен в качестве эксперимента. Но результата не далоКод: Выделить всё
$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;
надо в шапку темы добавить, классная функция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 "Незнаю такого!";
}
Давным давно сделал вывод кто-где находится не координатами, а адресами. Через Яндекс API.Eraser писал(а): ↑Ср ноя 28, 2018 11:12 amа зачем это в callback? можно просто в команду, у меня так: создана команда "Где", скрыта от показа в клавиатуре, для активации нужно отправить сообщение боту "где имя_пользователя", имя надо задать в User.fullNamealekszander писал(а): ↑Ср ноя 28, 2018 11:05 amEraser писал(а): ↑Ср ноя 28, 2018 11:01 amкод callback в студию!alekszander писал(а): ↑Ср ноя 28, 2018 10:58 amКоллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?Return был добавлен в качестве эксперимента. Но результата не далоКод: Выделить всё
$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;
код командыПоказать$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 "Незнаю такого!";
}