[Модуль] Telegram (telegram)
Модератор: immortal
-
- Сообщения: 100
- Зарегистрирован: Чт ноя 22, 2018 1:04 am
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Re: [Модуль] Telegram (telegram)
Получаю такое в логе
Но работает
Но работает
- Вложения
-
- Error.jpg (52.66 КБ) 4490 просмотров
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 868 раз
- Контактная информация:
Re: [Модуль] Telegram (telegram)
было давно в планах, скоро выложу обновлениеanneksiya82 писал(а): ↑Чт ноя 22, 2018 4:54 pmПривет всем. ни кто не задумался реализовать пакетную отправка изображений? Реально данный вещь реализовать?
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!

- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 868 раз
- Контактная информация:
Re: [Модуль] Telegram (telegram)
Добавлены функции пакетной отправки изображений (альбом)
- 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,'Камеры');
Последний раз редактировалось Eraser Чт фев 07, 2019 10:11 am, всего редактировалось 1 раз.
- Рейтинг: 5.88%
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!

-
- Сообщения: 178
- Зарегистрирован: Вс янв 05, 2014 5:37 am
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: [Модуль] Telegram (telegram)
Коллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 868 раз
- Контактная информация:
Re: [Модуль] Telegram (telegram)
код callback в студию!alekszander писал(а): ↑Ср ноя 28, 2018 10:58 amКоллеги, подскажите. Сделал callback на запрос координат. При запросе координат начинает бесконечно слать позицию. Причём делает это рандомно. Может прийти а может и очень много. Куда копать не подскажите?
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!

-
- Сообщения: 178
- Зарегистрирован: Вс янв 05, 2014 5:37 am
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: [Модуль] Telegram (telegram)
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;
- Eraser
- Сообщения: 1085
- Зарегистрирован: Вт окт 21, 2014 7:31 pm
- Откуда: Киров
- Благодарил (а): 14 раз
- Поблагодарили: 868 раз
- Контактная информация:
Re: [Модуль] Telegram (telegram)
а зачем это в 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 "Незнаю такого!";
}
$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 "Незнаю такого!";
}
- Рейтинг: 1.18%
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!!

-
- Сообщения: 6
- Зарегистрирован: Чт окт 12, 2017 4:55 pm
- Благодарил (а): 62 раза
- Поблагодарили: 0
Re: [Модуль] Telegram (telegram)
надо в шапку темы добавить, классная функция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 "Незнаю такого!";
}
-
- Сообщения: 108
- Зарегистрирован: Ср апр 26, 2017 11:44 am
- Откуда: Москва
- Благодарил (а): 14 раз
- Поблагодарили: 9 раз
Re: [Модуль] Telegram (telegram)
После последнего обновления и кардинальной переделке Say, SayTo и т.д. стали твориться странные вещи в модуле. Вывод сообщений идёт в произвольном порядке, а не в том, как записано в коде. Иногда проглатываются целые строки.
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: [Модуль] Telegram (telegram)
Давным давно сделал вывод кто-где находится не координатами, а адресами. Через Яндекс 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 "Незнаю такого!";
}
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo