Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Коммуникация 1с с телеграм ботом , Не все пользователи подключившие бот видя меню бота          
gololol Подменю пользователя
сообщение 21.01.21, 10:49
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток.

1С:Предприятие 8.3 (8.3.10.2667)
Толстый Клиент
Обычное приложение

Пользователь посредством бота (мобильный телефон) передает данные в 1с и получает данные из 1с.

Но проблема не в 1с.

Не знаю к какой теме эта проблема относится.

Суть проблемы ниже.

Создал в @BotFather телеграм бот:

Имя: BotTest2501
Username: BotTest2501bot
Token:1529007439:AAFh6Ka57GgkBTEgrLfD2PXnK1kr0w00u7I

Перешёл в @ManyBot
Пункт меню «Create a New Bot»
Ввёл Token:1529007439:AAFh6Ka57GgkBTEgrLfD2PXnK1kr0w00u7I

Получил сообщение, что мой бот принят: Token for @BotTest2501bot accepted!

Перехожу в BotTest2501bot
Нажимаю кнопку «Старт»

Появляется меню администратора. Нажимаю на кнопку «Custom Commands» и создаю два пункта меню: «Получить info1», «Получить info2»

Пользователи находят этот бот, подключают (команда /start) и видят оба пункта меню.

Пять пользователей подключили этот бот и все видя два пункта меню.

Создал бот, в котором четыре пункта меню.

Пользователи находят этот бот, подключают (команда /start). Часть пользователей видят четыре пункта меню, часть пользователей не видят меню вообще.

Ещё раз создал бота с четырьмя пунктами меню и опять, некоторые пользователи видят меню, некоторые не видят.

В чём может быть проблема?

29a Подменю пользователя
сообщение 21.01.21, 17:25
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 94
Спасибо сказали: 31 раз
Рейтинг: 33.3

gololol @ Сегодня, 10:49 * ,
У меня кнопки в BotTest2501 появились при подключении, как вариант панель кнопок может быть скрыта у юзера.
Юзеру можно просто набрать руками и отправить сообщение "Получить info1" если кнопки нет.
Либо вообще на любое сообщение боту при получении этого сообщения в 1С, можно средствами 1С в ответном сообщении через JSON передать "вагон" произвольных команд (кнопок) конкретному пользователю.

gololol Подменю пользователя
сообщение 21.01.21, 18:22
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

29a @ Сегодня, 17:25 * ,
Да, если пользователь напишет вручную, то 1с сможет его понять.
Но надо, чтобы пользователь нажимал на кнопки.
Т.к. пользователь может допустить ошибку.
А когда он нажимает на кнопку - ошибка исключается.

И я не могу понять почему так происходит.

Не буду подробно описывать свои мучения,
но происходит приблизительно так.


Вот я создал три бота.
Создаю их одинаково.

Бот01
Бот02
Бот03

Пользователь п01 подключил Бот01 и кнопки видит.
Пользователь п02 подключил Бот01 и кнопки не видит.

дальше

Пользователь п01 подключил Бот02 и кнопки не видит.
Пользователь п02 подключил Бот02 и кнопки видит.

дальше

Пользователь п01 подключил Бот03 и кнопки видит.
Пользователь п02 подключил Бот02 и кнопки видит.

т.е. нет закономерности.

29a Подменю пользователя
сообщение 21.01.21, 18:47
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 94
Спасибо сказали: 31 раз
Рейтинг: 33.3

gololol @ Сегодня, 18:22 * ,
на любую "левую" команду от юзера, отправляешь сообщение "Команда не известна" и к сообщению прикрепляешь клавиатуру с нужными командами


Функция ПолучитьКлавиатуру()

    ГлавныйМассив = Новый Массив;
    
    ТаблицаКоманд = ТелеграмБотКоманды(); //
    Для Каждого Стр Из ТаблицаКоманд Цикл
        МассивКнопок = Новый Массив;
        МассивКнопок.Добавить(Стр.Description);
        ГлавныйМассив.Добавить(МассивКнопок);
    КонецЦикла;
    
    ПутьКФайлу = ПолучитьИмяВременногоФайла("txt");    
    
    Структура = Новый Структура;
    Структура.Вставить("keyboard"            , ГлавныйМассив);
    Структура.Вставить("one_time_keyboard"    , Истина);
    
    Файл = Новый ТекстовыйДокумент;
    Файл.Записать(ПутьКФайлу, "UTF-8");
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.ОткрытьФайл(ПутьКФайлу);
    ЗаписатьJSON(ЗаписьJSON, Структура);
    ЗаписьJSON.Закрыть();
    
    Файл.Прочитать(ПутьКФайлу, "UTF-8");
    
    ТекстJSON = Файл.ПолучитьТекст();
    ТекстJSON = СтрЗаменить(ТекстJSON, "Истина", "True");
    
    Возврат ТекстJSON;

КонецФункции


Процедура ОтправитьСообщение(chat_id, ТекстСообщения, СтилизованныйТекст = Ложь, ОтображатьСсылки = Ложь, IDСообщенияДляОтвета = 0, Клавиатура = "")
    
    Клавиатура = ПолучитьКлавиатуру();
    
      Бот = "@ТВОЙBot";
    Токен = "1111111111:AAАААААААААААААААААААААААААА";
    Сервер = "api.telegram.org";
    
    ПараметрыЗапроса = "?chat_id=" + ФорматироватьID(chat_id) + "&text=" + ТекстСообщения;
    
    Если СтилизованныйТекст = Истина Тогда
        ПараметрыЗапроса = ПараметрыЗапроса + "&parse_mode=Markdown";    
    КонецЕсли;
    
    Если ОтображатьСсылки = Истина Тогда
        ПараметрыЗапроса = ПараметрыЗапроса + "&disable_web_page_preview=True";    
    КонецЕсли;
    
    Если IDСообщенияДляОтвета > 0 Тогда
        ПараметрыЗапроса = ПараметрыЗапроса + "&reply_to_message_id=" + ФорматироватьID(IDСообщенияДляОтвета);    
    КонецЕсли;
    
    Если Не ПустаяСтрока(Клавиатура) Тогда
        ПараметрыЗапроса = ПараметрыЗапроса + "&reply_markup="+Клавиатура;    
    КонецЕсли;
                                                                
    Ресурс             = "bot" + Токен + "/sendMessage"+ПараметрыЗапроса;
    Соединение      = Новый HTTPСоединение(Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());          
    Запрос            = Новый HTTPЗапрос(Ресурс);
    Запрос.УстановитьТелоИзСтроки(ПараметрыЗапроса);
    Ответ            = Соединение.ОтправитьДляОбработки(Запрос);          
    
КонецПроцедуры

gololol Подменю пользователя
сообщение 21.01.21, 18:57
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

29a @ Сегодня, 18:47 * ,
Спасибо, буду пробовать.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 21:10
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!