@botoid

Страница 990 из 4042
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&param=123", когда получаю смотрю на код action-а и делаю что надо

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

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

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

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
тогда уже пиши action_101_param_123
Парсить можно как угодно, не суть.

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
тогда твой вопрос не корректен!

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

т.е. ты должен указать ТГ - шли мне все что мне надо на эту ссылку и указываешь ссылку на свой сервер

"https://api.telegram.org/bot{$token}/setWebhook?url=Тут ссылка на мой сервер";

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

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
callback_data => '/showmenu1'
вот это равносильно тому, что я просто в чат напишу /start ?

Serg
01.07.2017
20:40:18
угу

но ты команду /start обрабатываешь?

Котяй Негодяй
01.07.2017
20:40:51
или "передай параметры, укзаанные в API"
Я бы в этот параметр засунул JSON типа { "action": "send_order", "products": [ "product_id_1", "product_id_2", ... ] }

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. При каждом значении экшн определяется конерктный набор остальных свойств, которые должны быть строго приведены к определённому формату.

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 ?

Котяй Негодяй
01.07.2017
20:47:41
https://core.telegram.org/bots/API#messageentity

Это я про 51 строку сейчас.

Тебе, чтобы получить команду, не нужно разбирать мессэдж. Тебе нужно посмотреть в энтитиз.

Fedor
01.07.2017
20:48:41
Это я про 51 строку сейчас.
ну чтоб не писать каждый раз [...]['message']['text'] пишу один раз $msg

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

Котяй Негодяй
01.07.2017
20:50:31
ну чтоб не писать каждый раз [...]['message']['text'] пишу один раз $msg
Ты должен искать команду в [...]['message']['entities'].

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

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

Котяй Негодяй
01.07.2017
20:53:20
[message][text] - это если чел написал команду руками в чате [callback_query][data] - если пришла от кнопки
Не согласен, что нужно разбирать стандартный синтаксис коменд вручную. Юзайте entities.

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 вот так выглядит команда отправленная руками из чата

Страница 990 из 4042