Anonymous
нужно выполнить именно уже ВЫЗВАННУЮ функцию
Anonymous
ты не понял меня
Anonymous
ты убрал () из строки
Anonymous
а мне надо то что есть в строке в чистом виде ВЫПОЛНИТЬ
Anonymous
это возможно?
Ilya
eval :D
Anonymous
и опять же
убирать из строки () и вызвать потом через call_user_func не варик
Anonymous
:С
Anonymous
eval не сработал :С
Anonymous
бля
СЛОЖНО
Anonymous
да знаю я
Anonymous
но как ещё?
Anonymous
В целом - выполнить странную хуйню, которая НИГДЕ не понадобится.
Anonymous
Потому что хочу понять - можно или нет
Anonymous
вы вбросили про функции
Anonymous
а я случайно об этом подумал
Anonymous
и блять теперь не могу успокоиться
Anonymous
я всех вас слушаю и я очень хочу знать, это возможно или нет
Anonymous
вот кстати да
Anonymous
Ладно бы чел просто не понимал и уточняющие вопросы задавал
Anonymous
(рифма, ебать)
Anonymous
доброго дня, коллеги. Есть знатоки сервисов яндекс.деньги?
🦔
🦔
@oneerror вы с ним вместе чтоль? :х
Anonymous
Vladimir
Народ, кто сталкивался с таким: нужно из CLI передать данные в браузер. Данные нужно передавать по мере их готовности в CLI скрипте. Кто-нибудь решал такую задачу? Как я вижу решение: cli скрипт пишет изменение в файл. А ajax у клиента чекает изменения в файле, и если они есть - выводит на экран. Кто что думает?
Anonymous
Anonymous
и сокеты
Vladimir
Anonymous
Хмм
rabbit mq, gearman, например.
Anonymous
тебе надо сделать какую-то задачу и после этого сообщить юзеру о том, что всё готово?
Vladimir
SarcasmIO
🦔
Andrei
Народ, подскажите, пожалуйста, по Телеграм-ботам:
Как получить данные из callback_data через либу telebram-bot/api?
так не получает $data:
$bot->on(function($update) use ($bot)
{
$callback_query = $update->getCallbackQuery();
$data = $callback_query->getData();
$message_id = $update->getCallbackQuery()->getMessage()->getId();
$chat_id_in = $callback_query->getMessage()->getChat()->getId();
и не переходит в ветку:
if ($data=="start")
{
$bot->sendMessage($chatId, "тут", 'Markdown', false, null);
}
не пойму, в чем ошибка(
Andrew
В дата всегда будет то что отправлено. /start будет если это именно команда
Обычный /start получается через message
getCallbackQuery()->getMessage() - такого вообще нет по-моему
Andrew
поэтому условие - $update->getMessage()->getText() == '/start'
Andrei
ну вот у меня пока такая клава, сейчас именно смысл понять:
$keyboard = new \TelegramBot\Api\Types\Inline\InlineKeyboardMarkup(array(array(array('text'=>"Start", 'callback_data' => 'start'))), true, true);
и потом мне надо как-то принять это. именно из callback_data,а не текста.
мог неверно написать get какой-нибудь. или еще чего не сделать
🌪️
Кстати, подскажите нормальный фреймворк под телеграм. Сейчас для бота использую telegram-core-php. Но у него много недостатков, таких как работа по крону, обработка калбэков и тп.
Andrew
тогда $update->getCallbackQuery()->getData() и будет start
Ilya
Парни, всем привет!
Можно ли в Php передавать параметры по имени?
function my_function($var = 1, $var2 = 2, $var3 = 3) { return $var3 + $var2 + $var1;}
my_function($var3: 3);
Andrew
Ilya
Вообще никак? В js можно делать подобным образом
Ilya
Печально тогда(
Andrei
не-а, все равно не переходит в ветку. а это точно можно получать тут (там же, где текст получаем):
$bot->on(function($update) use ($bot)
{
<тут получаем и сравниваем $data>
}, function($message) use ($name){
return true; // когда тут true - команда проходит
});
$bot->run();
?
Andrew
Andrei , не уверен на счет true, true в конце. Не помню, что эти параметры там делаю.
Andrew
В апдейте либо меседж, либо колбек. Если приходит колбек, то $update->getMessage() равно null, и наоборот.
Andrei
убрал - вроде выводит клавишу
Andrew
Вторая ф-я в on это проверка, запускать ли первую. Можно сделать пустой и возвращать true
Andrew
потому что по-умолчанию, она не запускается.
Andrei
так получение даты надо делать в первой или второй?
Andrei
функции в on
Andrew
В первой
Andrei
просто вот так:
$bot->on(function($update) use ($bot)
{
$message = $update->getMessage();
$text = $message->getText();
$chatId = $message->getChat()->getId();
$fn = $message->getChat()->getFirstName();
$ln = $message->getChat()->getLastName();
$data = $update->getCallbackQuery()->getData();
if ($data=="start")
{
$bot->sendMessage($chatId, "тут", 'Markdown', false, null);
}
}, function($message) use ($name){
return true; // когда тут true - команда проходит
});
$bot->run();
бот в принципе не работает, хотя ошибок никаких не выдает. если убрать получение $data - работает
Andrei
а, ща, сек
Andrew
проверь пхп логи. если придет коллбек, в этом коде будет эксепшн на $message->getText()
Andrei
а как это сделать?
просто поставить
$text= $message->getText()
if (!($text))
{получаем callback_data?
}
Andrei
else{получаем сообщение}
Andrew
$message = $update->getMessage();
$callbackQuery = $update->getCallbackQuery();
if ($message) {
}
if ($callbackQuery) {
}
Andrei
а, это. сейчас попробую
Andrew
Andrei
ок, дата получена. я понял, что chatid не получается
Andrei
как получить поля правильно тогда (сейчас ошибка где-то):
$message_id = $update->getCallbackQuery()->getMessage()->getId();
$chat_id_in = $callback_query->getMessage()->getChat()->getId();
Andrei
а лучше - где можно посмотреть такие get для разных полей для telegram-bot/api?
Dmitriy
в исхдниках или var_dump
Andrei
не названия, а именно get() функции типа getMessage()->getChat()->getId()
Dmitriy
в исхдниках или var_dump
Andrei
нашел, ни там ни там:
$data = $update->getCallbackQuery()->getData();
$chatId=$update->getCallbackQuery()->getFrom()->getId();
$bot->sendMessage(<chatId>, "cI: ".$chatId, 'Markdown', false, null);
Andrei
вот что было надо.
Andrei
вот
Спасибо! навел на нужные мысли!
Andrew
👍
Anonymous
т.е можно спокойно прямо в define писать sql-запрос?
Anonymous
Просто не противоречит ли это какому-то стайлгайду?
Anonymous
Мне просто интересно.
Anonymous
Просто ни разу не видел в константе sql-запрос
SarcasmIO
зачем именно константу