
Serg
01.07.2017
20:25:27

Fedor
01.07.2017
20:25:42
Представьте, что объясняете это своей 95 летней бабушке)

Serg
01.07.2017
20:26:07
апи ТГ не оперирует понятием - перейти в меню. Это чисто твоя реализация. ТГ принимает и отправляет СООБЩЕНИЯ! и все!

Google

Zaur
01.07.2017
20:26:19
Я например записываю строку вида: "action=101¶m=123", когда получаю смотрю на код action-а и делаю что надо

Serg
01.07.2017
20:26:31
не получится )

Zaur
01.07.2017
20:26:37

Serg
01.07.2017
20:27:05
там вроде как [a-zA-Z0-9_-]

Fedor
01.07.2017
20:27:17
ок. как понять что нажата кнопка?

Vadim
01.07.2017
20:27:18

Fedor
01.07.2017
20:27:35
только не говорите, обработать объект Callback)

Zaur
01.07.2017
20:27:49
В чем сложность то?

Serg
01.07.2017
20:27:57
и разбирай - нечетные - это имя параметра, четные - значение

Zaur
01.07.2017
20:28:56

Fedor
01.07.2017
20:29:01
ладно... по какой ссылке смотреть json объект, который пришел от сервера tg?
там ссылка какая-то с указанием токена бота

Google

Serg
01.07.2017
20:29:27

Fedor
01.07.2017
20:29:32
вебхук

Serg
01.07.2017
20:29:48
тогда твой вопрос не корректен!
т.е. ты должен указать ТГ - шли мне все что мне надо на эту ссылку и указываешь ссылку на свой сервер
"https://api.telegram.org/bot{$token}/setWebhook?url=Тут ссылка на мой сервер";

Fedor
01.07.2017
20:32:14
дада, протупил, понял. спасибо

Котяй Негодяй
01.07.2017
20:34:00

Fedor
01.07.2017
20:34:06
php

Котяй Негодяй
01.07.2017
20:34:23
Ох.
А фрейм какой юзаешь?

Serg
01.07.2017
20:34:47
Ох.
как раз на нем все достаточно просто )

Fedor
01.07.2017
20:35:18
https://github.com/erorrov/simple-telegram
простой как кусок мыла.
ну это не фрейм, либа

Serg
01.07.2017
20:36:03
а фрейм действительно какой юзаешь?

Котяй Негодяй
01.07.2017
20:36:10
Я предлагаю передавать во callback_query JSON.

Fedor
01.07.2017
20:36:35
можете кто-то пример кода привести?

Котяй Негодяй
01.07.2017
20:36:38
Там ты указываешь, что за действие, какие данрные и всё такое.

Google

Котяй Негодяй
01.07.2017
20:37:07
При правильных абстракциях.

Fedor
01.07.2017
20:37:22
не так же

Serg
01.07.2017
20:37:37
нет

Котяй Негодяй
01.07.2017
20:37:54
Да хотя бы и так. =D

Fedor
01.07.2017
20:38:01
пожалуйста, если вы хотите сказать "передай ему то, что тебе нужно", то лучше не говорите
или "передай параметры, укзаанные в API"

Serg
01.07.2017
20:38:12
callback_data => '/showmenu1'
и так далее
/showmenu2
/showmenu3
....
/showmenuN

Fedor
01.07.2017
20:39:27
и повис...

Serg
01.07.2017
20:39:49
а далее принимаешь команду и показываешь нужное меню
для тебя будет menu1
в нем вложенные menu2 и menu3
в menu3 - вложенным будет menu4
и .т.д.

Fedor
01.07.2017
20:40:10

Serg
01.07.2017
20:40:18
угу
но ты команду /start обрабатываешь?

Котяй Негодяй
01.07.2017
20:40:51

Fedor
01.07.2017
20:40:52
да, обрабатываю. она выводит это меню

Google

Котяй Негодяй
01.07.2017
20:41:32
json_encode/json_decode.

Serg
01.07.2017
20:41:35
ты должен
if ($cmd == '/start') { показать стартовое меню }
if ($cmd == '/showmenu1') { сформировать подменю меню 1 }

Котяй Негодяй
01.07.2017
20:43:29
Опледели сам для себя соглашение, что каждых блок такого ответа должен содержать свойство action. При каждом значении экшн определяется конерктный набор остальных свойств, которые должны быть строго приведены к определённому формату.

Egor
01.07.2017
20:43:42

Fedor
01.07.2017
20:44:12

Котяй Негодяй
01.07.2017
20:44:18

Fedor
01.07.2017
20:44:31
строка 56 - вызывает как бы команду /about - по аналогии с тем, что ты советовал
но about нt срабатывает автоматом
по нажатию кнопки

Котяй Негодяй
01.07.2017
20:45:12
Ты сам разбираешь мессэдж?
Зачем?
Апи же тебе присылает уже разобранное сообщение.
Посмотри доку — если была команда, она тебе придёт.

Fedor
01.07.2017
20:46:28
Зачем?
ну я же должен обработать сообщение
ок. я уже не знаю как задать вопрос. я понимаю, что вы все хотите мне помочь, но я читал это апи, и так как не въехал, то пишу сюда

Котяй Негодяй
01.07.2017
20:47:13

Serg
01.07.2017
20:47:16
у тебя /about срабатывает?

Fedor
01.07.2017
20:47:18
как понять какая кнопка была нажата?

Google

Котяй Негодяй
01.07.2017
20:47:27
Смотри entities.

Dolt
01.07.2017
20:47:28
как полностью убрать клавиатуру, чтобы не hide а будто бы ее не было

Klim
01.07.2017
20:47:39
А как будет выглядеть команда в telegraf'e с вызовом getChatMembersCount ?

Fedor
01.07.2017
20:47:39

Котяй Негодяй
01.07.2017
20:47:41
https://core.telegram.org/bots/API#messageentity
Это я про 51 строку сейчас.
Тебе, чтобы получить команду, не нужно разбирать мессэдж. Тебе нужно посмотреть в энтитиз.

Fedor
01.07.2017
20:48:41

Котяй Негодяй
01.07.2017
20:48:55

Serg
01.07.2017
20:49:11
так тебе ничего не мешает в твоем же тексте сделать
if ($msg == '/showmenu1'){
text => текст для меню
reply_markup => [ тут кнопка /start]
}

Котяй Негодяй
01.07.2017
20:50:31

Fedor
01.07.2017
20:50:45

Serg
01.07.2017
20:51:04

Котяй Негодяй
01.07.2017
20:52:07
почему так?
Потому что для тебя любезно предусмотрели такой расклад, и команды туда сыплются из любого сообщения. Это абстракция более высокого уровня, а ты, в ручную разбирая мессэдж, опускаешься на уровень ниже, что является топорным решением.

Serg
01.07.2017
20:52:10
[message][text] - это если чел написал команду руками в чате
[callback_query][data] - если пришла от кнопки

Котяй Негодяй
01.07.2017
20:53:20

Serg
01.07.2017
20:53:26
http://prntscr.com/fqi0rq
а вот пример entities - там ничего нет

Котяй Негодяй
01.07.2017
20:54:15
Если будет команда, то будет тип bot_command.

Serg
01.07.2017
20:55:19
http://prntscr.com/fqi1i4
вот так выглядит команда отправленная руками из чата