Имя: Пароль:
1C
 
Как обработать ответ пользователя в телеграм-боте?
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
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
(5) https://core.telegram.org/bots/api

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