
Futorio
21.05.2018
21:56:37
С ботом часто возникают проблемы, если хостить его на heroku?


Roman
21.05.2018
22:03:42
Всем Добрый день. Понимаю, что подобные вопросы уже были, посмотрел историю, но так и не понял, как работает chosen_inline_result. То есть в какой момент приходит результат?
set_time_limit(0);
$botToken = "BOT_KEY";
$website = "https://api.telegram.org/bot".$botToken;
$content = file_get_contents("php://input");
$update = json_decode($content, TRUE);
$message = $update["message"];
$chat_id = $message["chat"]["id"];
$text = $message["text"];
$inline_chat_id = $update["inline_query"]["id"];
$inline_result = $update["chosen_inline_result"]["result_id"];
$inline_query = $update["chosen_inline_result"]["query"];
if ($inline_chat_id !== "") {
$text = "Hello World.";
if (isset($update["chosen_inline_result"])) {
$text = $text." yes ";
}
$inlineAnswer = [
[
"type" => "article",
"id" => "0001",
"title" => "Short URL for",
"message_text" => $text,
"parse_mode" => "Markdown",
"description" => "test"
]
];
file_get_contents($website."/answerInlineQuery?inline_query_id=".$inline_chat_id."&results=".json_encode($inlineAnswer)."&cache_time=5");
}
Не понимаю как получить выбранное пользователем значение.

Google

Suren
21.05.2018
22:05:54

Roman
21.05.2018
22:07:17
Спасибо :-)

Алексей
21.05.2018
22:09:27
прошу помощи - разгадать загадку: при нажатии inline кнопки происходит какая-то магия и inline меню полностью ломается, причем от чего это зависит не понятно
бот: @vk_virus_bot 1 запрос)"terry домофон" ломает клавиатуру если нажать на кнопку трека, а потом на перелистывание, и спокойно работает перелистывание если не нажимать
2) запрос "терри домофон" работает все
и как это объяснить?

Bogdan
21.05.2018
22:12:34


Алексей
21.05.2018
22:14:09
код показывай
foreach($obj["response"]["items"] as $val)
{
if($count == $offset)
{
if($kol<5)
{
$button.='[{"callback_data":"[sh]'.$offset.'_'.$id.'","text":"'.getname($val['duration'],$val['is_hq'],$val['artist'],$val['title']).'"}],';
$offset++;
$kol++;
}
}
$count++;
}
//file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$button."&disable_web_page_preview=true");
if($count !=0)
{
$answer = "\xF0\x9F\x8D\xB3 Поиск в VK";
$vsego = floor(intval($obj["response"]["count"])/5);
if(intval($obj["response"]["count"])/5 != floor(intval($obj["response"]["count"])/5))
$vsego++;
//$vsego = 10;
if($vsego > 10)
$vsego = 10;
$back = $list - 1;
if($back == 0) $back = 1;
$next = $list + 1;
if($next == ($vsego+1)) $next = $vsego;
$replyMarkup = '{"inline_keyboard":['.$button.'[{"callback_data":"slist1_'.$id.'","text":"1"},{"callback_data":"slist'.$back.'_'.$id.'","text":"%E2%97%80"},{"callback_data":"nomer","text":"'.$list.'"},{"callback_data":"slist'.$next.'_'.$id.'","text":"%E2%96%B6"},{"callback_data":"slist'.$vsego.'_'.$id.'","text":"'.$vsego.'"}],[{"callback_data":"downsh'.'_'.$id.'","text":"Скачать всё"},{"callback_data":"menucancel","text":"Отменить"}]]}';
if($mesId != "")
{
file_get_contents($website."/editMessageText?chat_id=".$chatId."&message_id=".$mesId."&text=".$answer."&reply_markup=".$replyMarkup);
}
else
{
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$answer."&reply_markup=".$replyMarkup);
}
}
else
{
$replyMarkup ='{"inline_keyboard":[[{"callback_data":"menucancel","text":"Отменить"}]]}';
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".urlencode("\xF0\x9F\x98\xA3 В поиске нет результатов\r\n\r\n").$downloadposk.rekl()."&disable_web_page_preview=true&reply_markup=".$replyMarkup);
if($mesId != "")
file_get_contents($website."/deleteMessage?chat_id=".$chatId."&message_id=".$mesId);
}


Dan
21.05.2018
22:14:44
foreach($obj["response"]["items"] as $val)
{
if($count == $offset)
{
if($kol<5)
{
$button.='[{"callback_data":"[sh]'.$offset.'_'.$id.'","text":"'.getname($val['duration'],$val['is_hq'],$val['artist'],$val['title']).'"}],';
$offset++;
$kol++;
}
}
$count++;
}
//file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$button."&disable_web_page_preview=true");
if($count !=0)
{
$answer = "\xF0\x9F\x8D\xB3 Поиск в VK";
$vsego = floor(intval($obj["response"]["count"])/5);
if(intval($obj["response"]["count"])/5 != floor(intval($obj["response"]["count"])/5))
$vsego++;
//$vsego = 10;
if($vsego > 10)
$vsego = 10;
$back = $list - 1;
if($back == 0) $back = 1;
$next = $list + 1;
if($next == ($vsego+1)) $next = $vsego;
$replyMarkup = '{"inline_keyboard":['.$button.'[{"callback_data":"slist1_'.$id.'","text":"1"},{"callback_data":"slist'.$back.'_'.$id.'","text":"%E2%97%80"},{"callback_data":"nomer","text":"'.$list.'"},{"callback_data":"slist'.$next.'_'.$id.'","text":"%E2%96%B6"},{"callback_data":"slist'.$vsego.'_'.$id.'","text":"'.$vsego.'"}],[{"callback_data":"downsh'.'_'.$id.'","text":"Скачать всё"},{"callback_data":"menucancel","text":"Отменить"}]]}';
if($mesId != "")
{
file_get_contents($website."/editMessageText?chat_id=".$chatId."&message_id=".$mesId."&text=".$answer."&reply_markup=".$replyMarkup);
}
else
{
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$answer."&reply_markup=".$replyMarkup);
}
}
else
{
$replyMarkup ='{"inline_keyboard":[[{"callback_data":"menucancel","text":"Отменить"}]]}';
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".urlencode("\xF0\x9F\x98\xA3 В поиске нет результатов\r\n\r\n").$downloadposk.rekl()."&disable_web_page_preview=true&reply_markup=".$replyMarkup);
if($mesId != "")
file_get_contents($website."/deleteMessage?chat_id=".$chatId."&message_id=".$mesId);
}
Гхм. А ты не мог бы использовать pastebin какой-нибудь?


Bogdan
21.05.2018
22:14:52
foreach($obj["response"]["items"] as $val)
{
if($count == $offset)
{
if($kol<5)
{
$button.='[{"callback_data":"[sh]'.$offset.'_'.$id.'","text":"'.getname($val['duration'],$val['is_hq'],$val['artist'],$val['title']).'"}],';
$offset++;
$kol++;
}
}
$count++;
}
//file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$button."&disable_web_page_preview=true");
if($count !=0)
{
$answer = "\xF0\x9F\x8D\xB3 Поиск в VK";
$vsego = floor(intval($obj["response"]["count"])/5);
if(intval($obj["response"]["count"])/5 != floor(intval($obj["response"]["count"])/5))
$vsego++;
//$vsego = 10;
if($vsego > 10)
$vsego = 10;
$back = $list - 1;
if($back == 0) $back = 1;
$next = $list + 1;
if($next == ($vsego+1)) $next = $vsego;
$replyMarkup = '{"inline_keyboard":['.$button.'[{"callback_data":"slist1_'.$id.'","text":"1"},{"callback_data":"slist'.$back.'_'.$id.'","text":"%E2%97%80"},{"callback_data":"nomer","text":"'.$list.'"},{"callback_data":"slist'.$next.'_'.$id.'","text":"%E2%96%B6"},{"callback_data":"slist'.$vsego.'_'.$id.'","text":"'.$vsego.'"}],[{"callback_data":"downsh'.'_'.$id.'","text":"Скачать всё"},{"callback_data":"menucancel","text":"Отменить"}]]}';
if($mesId != "")
{
file_get_contents($website."/editMessageText?chat_id=".$chatId."&message_id=".$mesId."&text=".$answer."&reply_markup=".$replyMarkup);
}
else
{
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$answer."&reply_markup=".$replyMarkup);
}
}
else
{
$replyMarkup ='{"inline_keyboard":[[{"callback_data":"menucancel","text":"Отменить"}]]}';
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".urlencode("\xF0\x9F\x98\xA3 В поиске нет результатов\r\n\r\n").$downloadposk.rekl()."&disable_web_page_preview=true&reply_markup=".$replyMarkup);
if($mesId != "")
file_get_contents($website."/deleteMessage?chat_id=".$chatId."&message_id=".$mesId);
}
отлично, phpшники - вперед


Алексей
21.05.2018
22:15:04
библиотеки слишком много едят
и вываливают тонны непонятных ошибок

Google

Dan
21.05.2018
22:15:40
Может быть не стоит использовать библиотеки?

Алексей
21.05.2018
22:15:42
например офф библиотека время от времени вываливает "continue" через исключения
бот очень сильно жрет память на внутреннии операции тем более при нагрузке в 150 одновременных закачек это существо
ошибка вываливается только если текст вроде смешанный
чисто русский или чисто английский - ему пофиг
есть какие идеи?

Alexandr
21.05.2018
22:30:23
привет всем. Почему не работает " UPDATE telegram SET next = next + 1"??

Marlik
21.05.2018
22:39:50


Джейки
21.05.2018
22:40:14
foreach($obj["response"]["items"] as $val)
{
if($count == $offset)
{
if($kol<5)
{
$button.='[{"callback_data":"[sh]'.$offset.'_'.$id.'","text":"'.getname($val['duration'],$val['is_hq'],$val['artist'],$val['title']).'"}],';
$offset++;
$kol++;
}
}
$count++;
}
//file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$button."&disable_web_page_preview=true");
if($count !=0)
{
$answer = "\xF0\x9F\x8D\xB3 Поиск в VK";
$vsego = floor(intval($obj["response"]["count"])/5);
if(intval($obj["response"]["count"])/5 != floor(intval($obj["response"]["count"])/5))
$vsego++;
//$vsego = 10;
if($vsego > 10)
$vsego = 10;
$back = $list - 1;
if($back == 0) $back = 1;
$next = $list + 1;
if($next == ($vsego+1)) $next = $vsego;
$replyMarkup = '{"inline_keyboard":['.$button.'[{"callback_data":"slist1_'.$id.'","text":"1"},{"callback_data":"slist'.$back.'_'.$id.'","text":"%E2%97%80"},{"callback_data":"nomer","text":"'.$list.'"},{"callback_data":"slist'.$next.'_'.$id.'","text":"%E2%96%B6"},{"callback_data":"slist'.$vsego.'_'.$id.'","text":"'.$vsego.'"}],[{"callback_data":"downsh'.'_'.$id.'","text":"Скачать всё"},{"callback_data":"menucancel","text":"Отменить"}]]}';
if($mesId != "")
{
file_get_contents($website."/editMessageText?chat_id=".$chatId."&message_id=".$mesId."&text=".$answer."&reply_markup=".$replyMarkup);
}
else
{
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$answer."&reply_markup=".$replyMarkup);
}
}
else
{
$replyMarkup ='{"inline_keyboard":[[{"callback_data":"menucancel","text":"Отменить"}]]}';
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".urlencode("\xF0\x9F\x98\xA3 В поиске нет результатов\r\n\r\n").$downloadposk.rekl()."&disable_web_page_preview=true&reply_markup=".$replyMarkup);
if($mesId != "")
file_get_contents($website."/deleteMessage?chat_id=".$chatId."&message_id=".$mesId);
}
что ты хочешь тут сделать?


Алексей
21.05.2018
22:41:11

Джейки
21.05.2018
22:43:05
конечно ты тот еще извращенец. iconv() пробовал?

Suren
21.05.2018
22:43:18

Джейки
21.05.2018
22:43:54

Suren
21.05.2018
22:44:23

Джейки
21.05.2018
22:45:00

@LyoSU
21.05.2018
22:45:51

Алексей
21.05.2018
22:46:05

Alexandr
21.05.2018
22:46:20

Google

@LyoSU
21.05.2018
22:46:27

Алексей
21.05.2018
22:46:52
150 закачек чего?
аудио - ну примерно около 100 человек одноврменно качают каждому максимум по 250 аудиозаписей

Джейки
21.05.2018
22:46:53
-_-
смотри, тут твоя тема)

Алексей
21.05.2018
22:47:38

Джейки
21.05.2018
22:47:53
что значит личный диалог?

Alexandr
21.05.2018
22:49:41

Алексей
21.05.2018
22:49:45
что значит личный диалог?
на сервере так ж крутится madelineproto авторизованный за пользователя, т.к. боты не могут отправлять большие файл - команда отправляется этому пользователю, тот грузит файл в диалог с ботом, бот получая сообщение запоминает file_id и уже направляет заказчику

@LyoSU
21.05.2018
22:49:53
ты таблицу создал?

Alexandr
21.05.2018
22:50:33

Джейки
21.05.2018
22:50:54

@LyoSU
21.05.2018
22:50:59

Alexandr
21.05.2018
22:51:38

@LyoSU
21.05.2018
22:52:20

Alexandr
21.05.2018
22:54:10

Джейки
21.05.2018
22:56:05
а сколько записей то?

Alexandr
21.05.2018
22:56:45
к 1 нужно прибавить 1.

@LyoSU
21.05.2018
22:57:10

Джейки
21.05.2018
22:57:24
стоп. там в таблице telegram сколько записей?

Google

Alexandr
21.05.2018
22:58:22

Джейки
21.05.2018
22:58:45
покажи таблицу telegram
а тип у next какой?

Alexandr
21.05.2018
22:59:48
tinyint(4)

Джейки
21.05.2018
23:00:28
https://ruhighload.com/lock+wait+timeout+exceeded+%D0%B2+mysql

Alexandr
21.05.2018
23:00:44

Джейки
21.05.2018
23:01:36
да не, понял. но тут видишь ошибка из за чего может быть.
Ошибка "Lock wait timeout exceeded" встречается при частом обновлении одних и тех же данных. Для быстрого решения проблемы достаточно изменить настройку innodb_lock_wait_timeout.
ты что его 100 раз пытался поменять?

Alexandr
21.05.2018
23:03:56
ну да, в течении 5 секунд два раза хотел увеличить

Джейки
21.05.2018
23:05:45
отличный сарказм. но что-то ж его заблокировало!

Alexandr
21.05.2018
23:06:50

Джейки
21.05.2018
23:07:23
а откуда эта ошибка, и когда появилась?

Alexandr
21.05.2018
23:07:44
просто обновлял phpMyAdmin ( страницу)

Джейки
21.05.2018
23:09:50
перезапусти денвер, попробуй все заново

Alexandr
21.05.2018
23:10:15
уже, но не робит
лол
С телефона прибавляет
а с компа - нет, хотя аккаунт один и тот же

Google

Джейки
21.05.2018
23:17:18
Стоп
На компе какой клиент?
Или ты про другое?

Alexandr
21.05.2018
23:19:02
Или ты про другое?
Я не понимаю уже. У меня было в базе значение 1 этого столбца = 1. После пару нажатий на телефоне их стало 6,но теперь опять все стоит.

Denis
21.05.2018
23:39:36
Нафига херока
Аренда сервера за 300р в месяц
И делай что хочешь

Louis
21.05.2018
23:59:50
+

Who
22.05.2018
02:07:51
посоны, а inlineKeyboard имеет фиксированную ширину, я так понял? ну т.е сами кнопки. или они растягиваются на ширину сообщения?
вот что делать с оставшимся пространством?

Tony
22.05.2018
02:42:03

Gabb
22.05.2018
02:46:42

Johnny
22.05.2018
03:51:04

Алексей
22.05.2018
03:52:10
Ко всему кнопка еще и выехать за границы сообщения может

Vitaly
22.05.2018
04:03:00
В этом чатике либо кнопки либо вэбхуки на питоне. Ничо нового :)

Johnny
22.05.2018
04:04:02