
f4rt~
05.11.2016
17:27:27

Dmitriy
05.11.2016
17:27:39

Ser
05.11.2016
17:27:56
Просто я не могу получить уже 3 часа ничего вразумительного в ответ, а не хочу построить дом из говна и узнать что глина на острове таки была )

Владимир
05.11.2016
17:28:01
Человеку альяс же нужен и кнопки с событиями, а вы его не понимаете

Google

Ser
05.11.2016
17:28:44
Ну если речь про ХТМЛ пошла значит от этого разработчика вразумительного врядли дождешься )

f4rt~
05.11.2016
17:29:09

Dmitriy
05.11.2016
17:29:17
решайте сами

Ser
05.11.2016
17:29:25
)))

Dmitriy
05.11.2016
17:29:50

Ser
05.11.2016
17:29:55
Итого никто ничего подобного никогда не делал, не представляет? Я прав?

Владимир
05.11.2016
17:30:26

Ser
05.11.2016
17:30:36
Ну я предположил что это сообщество разработчиков тг ботов на php ))
Видимо:

Владимир
05.11.2016
17:31:34

f4rt~
05.11.2016
17:31:43

Ser
05.11.2016
17:32:01
У меня ничего на сайте.

Google

Ser
05.11.2016
17:32:09
Пользователь жмет на кнопку в ТГ боте
Которая создается в callback_data

f4rt~
05.11.2016
17:32:31

Ser
05.11.2016
17:32:53
Могу ли я прикрепить еще 1 переменную туда, которая по сути не важна для пользователя, но вернется боту.

f4rt~
05.11.2016
17:32:58

Ser
05.11.2016
17:33:08
Либо прикрепить комментарий в text который не виден пользователю, но виден боту.

f4rt~
05.11.2016
17:34:13
$data = $callback_query['data'];
switch($data){
case '/test':
sendMessage($chat_id,"callback_data return /test");
break;
ничего прикреплять не нужно пользователь когда жмет на инлайн уже совершает необходимое тебе действие, тебе нужно его лишь отловить и сделать что-то
покажи лучше код своей клавиатуры

Ser
05.11.2016
17:36:36
Отлично. Трабл в том что я хочу чтоб было аля /test<button>
Где пользователь видит: /test
А бот видит /test<button>

f4rt~
05.11.2016
17:37:16
$inline_button2 = array("text"=>"text1","callback_data"=>'/test1');
$inline_button2 = array("text"=>"text2","callback_data"=>'/test2');
хандлер
switch($data){
case '/test1':
действие 1
break;
case '/test2':
действие 2
break:

Ser
05.11.2016
17:37:22
Ну, вот либо чтоб была еще одна переменная. Любая

f4rt~
05.11.2016
17:37:45

Ser
05.11.2016
17:37:46
Пробовал =\
Косячу чтоли...
Спасибо, буду курить дальше в этом направлении


f4rt~
05.11.2016
17:38:35
<?php
$access_token = 'xxx';
$api = 'https://api.telegram.org/bot' . $access_token;
$output = json_decode(file_get_contents('php://input'), TRUE);
$chat_id = $output['message']['chat']['id'];
$first_name = $output['message']['chat']['first_name'];
$message = $output['message']['text'];
$callback_query = $output['callback_query'];
$data = $callback_query['data'];
$message_id = ['callback_query']['message']['message_id'];
$chat_id_in = $callback_query['message']['chat']['id'];
switch($message) {
case '/test':
$inline_button2 = array("text"=>"text1","callback_data"=>'/plz');
$inline_button2 = array("text"=>"text2","callback_data"=>'/plz');
$inline_keyboard = [[$inline_button1,$inline_button2]];
$keyboard=array("inline_keyboard"=>$inline_keyboard);
$replyMarkup = json_encode($keyboard);
sendMessage($chat_id, "ok", $replyMarkup);
break;
}
switch($data){
case '/plz':
sendMessage($chat_id_in, "plz");
break;
}
function sendMessage($chat_id, $message, $replyMarkup) {
file_get_contents($GLOBALS['api'] . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message) . '&reply_markup=' . $replyMarkup);
}
Вот рабочий код in-line клавиатуры, которые реагирует на callback_data в операторе switch($data)


Dmitriy
05.11.2016
17:45:41
<?php
$access_token = 'xxx';
$api = 'https://api.telegram.org/bot' . $access_token;
$output = json_decode(file_get_contents('php://input'), TRUE);
$chat_id = $output['message']['chat']['id'];
$first_name = $output['message']['chat']['first_name'];
$message = $output['message']['text'];
$callback_query = $output['callback_query'];
$data = $callback_query['data'];
$message_id = ['callback_query']['message']['message_id'];
$chat_id_in = $callback_query['message']['chat']['id'];
switch($message) {
case '/test':
$inline_button2 = array("text"=>"text1","callback_data"=>'/plz');
$inline_button2 = array("text"=>"text2","callback_data"=>'/plz');
$inline_keyboard = [[$inline_button1,$inline_button2]];
$keyboard=array("inline_keyboard"=>$inline_keyboard);
$replyMarkup = json_encode($keyboard);
sendMessage($chat_id, "ok", $replyMarkup);
break;
}
switch($data){
case '/plz':
sendMessage($chat_id_in, "plz");
break;
}
function sendMessage($chat_id, $message, $replyMarkup) {
file_get_contents($GLOBALS['api'] . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message) . '&reply_markup=' . $replyMarkup);
}
Вот рабочий код in-line клавиатуры, которые реагирует на callback_data в операторе switch($data)
file_get_contents выкинь.


f4rt~
05.11.2016
17:45:51

Ser
05.11.2016
17:46:01
Ну поехали

Google

Ser
05.11.2016
17:46:07
Вот: я строю менюху
Array
(
[reply_markup] => {"keyboard":[[{"text":"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a","callback_data":"stop"}],[{"text":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0438\u0441\u043a\u0430","callback_data":"flats_p"}]],"one_time_keyboard":false,"resize_keyboard":true,"selective":false}
[text] => sdfsdf
[chat_id] => 38143278
)
callback_data у каждой кнопки присутствует
{"update_id":523519528,
"message":{"message_id":498,"from":{"id":38143278,"first_name":"Ser","last_name":"Ser","username":"ser60v"},"chat":{"id":38143278,"first_name":"Ser","last_name":"Ser","username":"ser60v","type":"private"},"date":1478368001,"text":"\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a"}}

f4rt~
05.11.2016
17:46:50

Ser
05.11.2016
17:47:01
При нажатии же в инпуте ничего нет
$this->debug(file_get_contents("php://input"),true);
Вот в конструкторе без обработки

f4rt~
05.11.2016
17:47:22

Ser
05.11.2016
17:47:36
"callback_data":"flats_p"
"callback_data":"stop"

f4rt~
05.11.2016
17:47:37

Ser
05.11.2016
17:47:38
Разные

Dmitriy
05.11.2016
17:48:02

f4rt~
05.11.2016
17:48:18

Ser
05.11.2016
17:48:50
Так в пакете обратном у меня ни flats_p ни stop
Можешь заметить
Я получаю только text

Dmitriy
05.11.2016
17:49:12

f4rt~
05.11.2016
17:49:24

Google

f4rt~
05.11.2016
17:49:58

Ser
05.11.2016
17:50:38
Ну фиг знает - ничего сложного )
Не так много переменных там

f4rt~
05.11.2016
17:51:00

Aleksandr
05.11.2016
18:14:27

D'
05.11.2016
18:17:55
воу воу палехче
сколько флуда
никто не узнает что я пони

Admin
ERROR: S client not available

Ser
05.11.2016
18:26:59
Так... А теперь пожалуйста поясните, сударь который разбирается в inline_keyboard
Если же такой баттон
$inline_button1 = array("text"=>"text1","callback_data"=>'/plz');
Куда идет пакет, когда совершен клик?

f4rt~
05.11.2016
18:28:07
если работает условие
switch($data){
case '/plz':
sendMessage($chat_id_in, "plz");
break;
}
смотришь что такое $data = $callback_query['data'];
а $callback_query = $output['callback_query']; это твой output что ты дергаешь long poolingom
следовательно объекту message в ответе юзера присваеваетсо

Ser
05.11.2016
18:32:03
Вопроса б не было. Но суть в чем
Строится инлайн меню.
По клику на сервер не прилетает запроса который я бы мог обрабатывать.

f4rt~
05.11.2016
18:32:52

D'
05.11.2016
18:33:14

Google

f4rt~
05.11.2016
18:33:15
даже вебхук убрал у бота на минуту, что бы дернуть /getupdates и посмотреть, все работает.

ᴅᴧᴋᴇɴ
05.11.2016
18:33:15

f4rt~
05.11.2016
18:33:25
Спасибо, я ценю

Ser
05.11.2016
18:33:34
Потому и спрашиваю ибо у меня не прилетает ))
Буду курить - что я делаю не так.
/getupdates

f4rt~
05.11.2016
18:33:56

Ser
05.11.2016
18:34:12
мисклик ))

f4rt~
05.11.2016
18:35:27
берешь рабочий код -> ковыряешь его меняя под свою ситуацию -> как начинаешь понимать что к чему -> переписываешь под свой лад -> govnoprofit

Sergey
05.11.2016
18:39:25
Ого, и флуда нет

Dmitriy
05.11.2016
18:39:50
я все удалил

f4rt~
05.11.2016
18:39:53

Sergey
05.11.2016
18:40:21
Диман, ты молодец
А я купил подушку ортопедическую наконец
Сегодня испробую

f4rt~
05.11.2016
18:40:45

D'
05.11.2016
18:40:47

Sergey
05.11.2016
18:40:55
Под голову )

Артур Евгеньевич
05.11.2016
18:40:59
как подкова по форме