|
Как обработать ответ пользователя в телеграм-боте? | ☑ | ||
---|---|---|---|---|
0
Bodrug
28.01.19
✎
17:20
|
Всем доброго времени суток!
Есть ТГ-бот. Есть в 1С процедура, которая под ним отправляет пользователю сообщение с вариантами ответа "Разблокировать", "Не разблокировать". &НаСервере Процедура ОтправитьСообщениеНаСервере() мСтрок = Новый Массив; мКнопок = Новый Массив; мКнопок.Добавить(Новый Структура("text, callback_data", "Разблокировать", "1")); мКнопок.Добавить(Новый Структура("text, callback_data", "Не разблокировать", "2")); мСтрок.Добавить(мКнопок); СтруктураОтвета = Новый Структура; СтруктураОтвета.Вставить("inline_keyboard", мСтрок); //inline_keyboard ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет,,,ЭкранированиеСимволовJSON.СимволыВнеASCII)); ЗаписатьJSON(ЗаписьJSON, СтруктураОтвета); Клавиатура = ЗаписьJSON.Закрыть(); Ресурс = "bot" + Объект.ИмяПользователя + "/sendMessage?chat_id=" + СтрЗаменить(Формат(ChatID, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text= " + ТекстСообщения + "&reply_markup=" + Клавиатура; Соединение = Новый HTTPСоединение(Объект.АдресСайта,443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос(Ресурс); Ответ = Соединение.Получить(Запрос); КонецПроцедуры Подскажите, пожалуйста, как прочитать ответ польователя на сообщение? |
|||
1
Bodrug
28.01.19
✎
17:24
|
Вот как єто віглядит в ТГ:
https://cdn1.savepice.ru/uploads/2019/1/28/a52568e736f2e3e9a5850597e88e7981-full.png |
|||
2
Tonik992
28.01.19
✎
17:25
|
Либо настроить вебхук+http-сервис.
Либо стучаться на URL getUpdates |
|||
3
Tonik992
28.01.19
✎
17:28
|
Телеграм не работает синхронно. Он работает асинхроно.
Через Ответ = Соединение.Получить(Запрос); вы получаете лишь информацию о том, принял ли Телеграм от вас запрос и успешно/не успешно ли. А всё что нащелкал или написал пользователь, это либо телеграм вам будет на http сервис слать через вебхук инфу. Либо вы сами стучитесь в телеграм getUpdates и разбираете чего там по сообщениям. |
|||
4
Bodrug
28.01.19
✎
17:32
|
(3) Я как раз читаю через getUpdates, но нет текста сообщения, если пользователь нажал на какую-либо кнопку ответа. А если он просто написал какой-то текст в бот, то текст этого сообщения есть
|
|||
5
Ник080808
28.01.19
✎
17:33
|
(2) а где почитать про вебхуки? шоб для людей вообще в веб не шарящих
|
|||
6
Tonik992
28.01.19
✎
17:40
|
(4) Вы все свойства обошли объекта Update?
По документации то, что вы ищите, вроде должно лежать в callback_query |
|||
7
Tonik992
28.01.19
✎
17:41
|
||||
8
Вафель
28.01.19
✎
17:41
|
(5) а где ты их будешь писать, если в веб не шаришь?
|
|||
9
Вафель
28.01.19
✎
17:41
|
веб хук - это просто рест сервис
|
|||
10
Bodrug
28.01.19
✎
17:46
|
(6) Спасибо, буду пробовать =)
|
|||
11
Ник080808
28.01.19
✎
17:53
|
(8) так вот и хочу разобраться как это все работает - нужно http сервисы заюзать и телеграмм бот
|
|||
12
Tonik992
28.01.19
✎
17:55
|
(5) смотри, все просто:
После создания телеграм-бота, надо в этом телеграм боте задать "спец" URL - путь до вашего HTTP-сервиса. (делается через setWebhook) Всё.. После этого телеграм-бот будет на этот ваш HTTP-сервис каждый пользовательский чих слать запросы. Грубо говоря это и есть webhook: вы подвязали телеграму ваш HTTP сервис, на который будут отсылаться события в чате. |
|||
13
Ник080808
28.01.19
✎
18:04
|
(12) ну я так и понял с документации. Просто смутила фраза "Либо настроить вебхук+http-сервис. " я грешным делом подумал что нужно еще чето кроме http-сервис у себя разворачивать. А это получается я просто указываю в настройках бота урл на который будет слать мне сообщения бот с своего веб сервиса
|
|||
14
Tonik992
28.01.19
✎
18:07
|
(13) Кстате, этот вариант намного предпочтительней.
Но есть нюанс: Телега шлет запросы по https =) |
|||
15
Dzenn
гуру
28.01.19
✎
18:08
|
Просто купи моего бота и enjoy ;-) Если конечно речь идёт о 1С и твоя конфигурация удовлетворяет системным требованиям. Ссылка в профиле.
|
|||
16
Tonik992
28.01.19
✎
18:10
|
(15) Как раз мы приобретали его, хорошая вещь. Благодарю за труд и за подход к реализации. Сократили расходы на реализацию ветвлений ну и доработали немного под свои нужды.
|
|||
17
Tonik992
28.01.19
✎
18:12
|
(15) Вот только версия уже старовата, много фишек новых вышло с момента вашего последнего релиза
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |