Доброго времени суток, уважаемые коллеги!

Прошу откликнуться тех, кому приходилось решать задачу связи 1С и Telegram.
Мы пытаемся разработать модуль, который позволял бы с помощью телеграм-бота, связанного с бизнес-аккаунтом, читать в 1С сообщения, отправленные и полученные этим аккаунтом. С помощью механизма
webhook история сообщений читается. Но не получается отправить сообщение на произвольный аккаунт
через 1С с использованием API бота. Я пробую это делать командой

"bot" + token + "/sendMessage?chat_id=" + "ИдентификаторТелеграм"

и получаю сообщение об ошибке:
{"ok":false,"error_code":403,"description":"Forbidden: bot can't initiate conversation with a user"}

Т.е. бот не может сам инициировать беседу - надо, чтобы абонент Телеграм, которому я пишу, начал беседу с ботом командой /start
Т.е., как я понимаю, даже если мой аккаунт уже общается с другим аккаунтом в Телеграм, отправить этому другому аккаунту сообщение через бота я всё равно не могу, пока этот другой аккаунт не запустит чат с ботом.

Подскажите, пожалуйста, нет ли другой возможности отправить сообщение из внешнего приложения абоненту Телеграм от имени бизнес - аккаунта, к которому привязан бот, без запуска беседы другого аккаунта с ботом?

Заранее благодарю за помощь.
---
без их участия никак. Там где происходит общение давать ссылку на боту, с предложением подключится и там они смогут получить такой-то функционал. Они подключаются к боты, в записываете их id куда -то и уже по id отправляете все что нужно.
---
в 27 ответе написал, чего возможно не хватает
---
отправить сообщение из внешнего приложения абоненту Телеграм от имени бизнес - аккаунтаЦентр медицинских исследований города Москвы приглашает пройти без оплаты обследование по следующим направлениям урология, флебология, кардиология, ортопедия, обследование включает в себя консультацию профильного специалиста и узи. Диагностику. Имеются противопоказания. Необходима консультация. Чтобы узнать подробнее. Нажмите цифру 1.
---
Ахтунг!!! Спамеры!!!!
---
подключайте клиентов к вашему боту и отправляйте от бота сколько угодно сообщений. А так писать как по мне не очень правильно, вы же каким то образом находите данный контакт.
---
yispepotri, спасибо за ответ!

А как подключить клиентов к нашему боту? Ведь, насколько я понимаю, без их участия этого не сделать - каждый из них должен сам начать чат с нашим ботом?
---
без их участия никак. Там где происходит общение давать ссылку на боту, с предложением подключится и там они смогут получить такой-то функционал. Они подключаются к боты, в записываете их id куда -то и уже по id отправляете все что нужно.
---
yispepotri, спасибо Вам огромное за пояснение!
---
а вы используете функционал бизнес аккаунта телеграм? просто я вот точно не знаю разрешается ли от него писать первым, чтобы не получить бан за спам
---
yispepotri, а можно ли из него отправлять сообщения не через бот?
---
я только вот сегодня решил посмотреть что это за фишка, ну как я понимаю бизнес аккаунт может отвечать даже без подключений к боту, на прописанные команды

https://telegram.org/blog/telegram-business/id?setln=ru
---
в BotFather, в настройках есть режим бизнес мод
---
yispepotri, эту настройку я тоже установил. Но опять же - тогда ответ формирует бот, а надо, чтобы это делал пользователь.
---
ну у вас же наверно реализовано где сообщения хранятся от бота? от бота приходит вопрос, в 1 сохраняется со статусом в работе например, выводить в какой-нибудь обработке этот вопрос, пользователь дает какой-то ответ на вопрос, статус меняется например отправка и только тогда отправляется ответом. Проблема тут только во времени ожидания, можно писать что-то вроде, ожидайте ответа оператора ...
---
Обратил внимание, у sendMessage, есть параметр business_connection_id, я так понимаю сюда передается как раз id вашего бизнес аккаунта
---
Как я понимаю, к бизнес - аккаунту можно подключать ботов, которые будут анализировать полученные сообщения и отвечать на них от имени аккаунта. Но вот интерактивно отправлять произвольные сообщения - не знаю, как
---
ну по идее даже если бот подключен к бизнес аккаунту, то отправить также не сможете, не от бота, ни от бизнес аккаунта. А когда пользователь начнет общение с бизнес аккаунтом, тогда уже можно
---
А когда пользователь начнет общение с бизнес аккаунтом, тогда уже можно
yispepotri, а как тогда отправить? Опять же через бот командой SendMessage, или есть другой способ?
---
в настройках есть пункт Чат-боты, туда добавить бота, который будет реагировать на сообщение к бизнес аккаунту
---
yispepotri, эту настройку я знаю. Но тогда бот будет анализировать полученные сообщения и сам формировать ответы на них от имени аккаунта. А мне надо, чтобы ответы формировал пользователь в 1С в интерактивном режиме. Такое возможно?
---
А мне надо, чтобы ответы формировал пользователь в 1С в интерактивном режиме.

не совсем это понял, то есть это будет не программно, а в режиме реального ответа человека?
---
yispepotri, да, именно! Требуется, чтобы пользователь 1С, используя webhook или getUpdates, получил сообщения telegram, которые отобразятся у него в какой-либо форме. После этого пользователь должен в 1С читать эти сообщения, думать, что ответить, и отправлять ответы на эти сообщения из 1С. И получается, что получить сообщения в 1С от может, а отправить ответы не может, т.к. ответы отправляются через бот, а абоненты не стартовали чат с этим ботом.
---
а вопросы где задается в бизнес аккуанте как раз?
---
yispepotri, у пользователя 1С есть бизнес-аккаунт. Он читает из 1С сообщения, которые ему пришли - это может быть произвольный текст, и он должен иметь возможность ответить из 1С в режиме реального времени. Т.е. в 1С надо реализовать интерфейс такой же, как в чате Телеграм - я вижу сообщение, пишу ответ, и этот ответ отправляется.
---
в 27 ответе написал, чего возможно не хватает
---
yispepotri , спасибо! Сообщение из 1С отправилось, когда я добавил в него параметр business_connection_id.
Одна проблема обнаружилась - может, её получится как-то решить. В истории сообщений, получаемой через webhook, данные о сообщении, которое я отправил таким способом, отсутствуют. Информация об ответе, которые мне на это сообщение отправили с телефона, есть, а самого сообщения нет. Это, конечно, не беда, если хранить информацию о сообщениях, отправленных через бот, в отдельном регистре, но там не будет данных, прочитал ли сообщение абонент.
---
прочитал ли сообщение скорее всего вряд ли узнаете, я по крайней мере такой функционал не видел. А подскажите на будущее, business_connection_id id бизнес аккаунта каким образом получили?
---
Можно от имени себя, своего логина писать автоматические сообщения кому-нибудь.
Но сейчас всё грустно.
Пользователи нажимают пожаловаться, и вас отправляют в бан на 2-7-30 дней.

Когда пользователь сам начинает общаться с нами, через бота, вы в спам не улетите.
Лучше через бота.
---
user-z99999, а как можно писать автоматические сообщения от имени своего логина? Ведь команда SendMessage работает только с токеном бота.
---
Телеграм в браузер устанавливаем.
+ Selenium
---
user-z99999, и как это поможет? Отправка-то должна выполняться из 1С!
---
Можно установить selenium server и из 1с http запросами управлять им
---
selenium serverЛасты не забудьте, пожалуйста. И гамак. Возможно, также потребуется противогаз.
---
У Telegram есть bot API и есть user API
---
mkalimulin, я посмотрел документацию по user API, и мне кажется, что она больше ориентирована на Python, чем на использование в 1С. Во всяком случае, на просторах Интернета я нашел примеры интеграции 1С с Телеграм только с использованием bot API, в том числе и Вашу статью https://habr.com/ru/companies/otus/articles/741520/, которая очень помогла мне в понимании концепции взаимодействия 1С и Телеграм.
---
yispepotri, спасибо огромное за помощь!

Можно ли узнать business_connection_id бизнес-аккаунта через настройки в Телеграм, я не знаю - у меня это сделать не получилось. Я использовал другие способы:
1). Через ресурс salebot, на котором я проверял подключение. Там надо авторизовываться, придумать логин и пароль. Если выбрать на левой панели пункт "Каналы", то появляется информация о подключенных бизнес-аккаунтах - я подчеркнул красным поля, в которые выводятся идентификатор бизнес-аккаунта (Business ID) и имя пользователя (Business Username). Если у Вас настроен и подключен к боту-администратору бизнес-аккаунт, то в этих полях будут данные.
2). Я смотрел в 1С отладчиком сообщения, которые приходили от HTTP-сервиса через вебхук (у меня настроен обмен данными бота с 1С через вебхук c URL, указывающим на путь к HTTP-сервису 1С).
HTTP-запрос обрабатывается функцией:

Функция Webhook(Запрос)

 Ответ = Новый HTTPСервисОтвет(200);
 Попытка
  Тело = Запрос.ПолучитьТелоКакСтроку();
  Чтение = Новый ЧтениеJSON();
  Чтение.УстановитьСтроку(Тело);
  Рез = ПрочитатьJSON(Чтение);
 Исключение
  ООШ = ОписаниеОшибки();
 КонецПопытки;
 Возврат Ответ;

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

Я поставил точку останова на строку КонецФункции и посмотрел в окне отладки переменную Рез. Она вывелась в виде структуры с полем Business_connection_id

Может, есть способы более цивилизованные, но я их не знаю.
---
ну если работает то хорошо, ну по идее должно работать также как с ИД бота или пользователя, каким то образом точно можно выцепить))
---
yispepotri, ИД бота или пользователя действительно можно найти через botFather. А вот с бизнес-ИД не получается, только через сторонний ресурс (Salebot). Может, в дальнейших обновлениях Телеграм добавит такую возможность и в свой функционал.