Telegram Native API

24.05.18

Интеграция - Мессенджеры и боты

Взаимодействие с Telegram без Bot API. Только C++ компоненты. Только хардкор.

Скачать файлы

Наименование Файл Версия Размер
TelegramDemo
.epf 49,76Mb
122
.epf 49,76Mb 122 Скачать

Сразу хочу отметить - заметка в большей степени не про telegram, а про правильную, по мнению автора, разработку native внешних компонент.

Сама технологии создания внешних компонент с native API существует уже много лет, но несмотря на это, найти достойный пример open source реализации внешней компоненты крайне сложно. Вполне вероятно, что все компоненты с открытыми исходными кодами можно пересчитать по пальцам одной руки. Буду рад увидеть ссылки в комментариях, чтобы понять, что не прав.

В конечном счете я решил исправить эту несправедливость и опубликовать не слишком сложный пример компоненты "по фэн-шую". И первой проблемой, которую предстояло решить, был функционал компоненты. В итоге выбор пал на интеграцию с telegram.

Сегодня тема взаимодействия с telegram уже не так популярна, как ранее. С одной стороны на это повлияли действия РКН, с другой - библиотека инфостарта уже изрядно наполнена примерами взаимодействия с Bot API. Но что делать, если функционала bot API недостаточно? Допустим, мы хотим сами писать пользователю, или хотим использовать секретные чаты с end-to-end шифрованием, или, о боже, хотим написать полноценный telegram клиент на 1С? Выход - TDLib.

Telegram database library - это официальная библиотека для создания Telegram клиентов, предоставляющая доступ ко всему функционалу MTProto. Один из вариантов работы с библиотекой - JSON. Все методы описаны в документации.

Внешняя компонента доступна на Github. Она предоставляет доступ к следующим методам TDLib: Отправить / Send, Получить Receive, Выполнить / Execute, а так же реализует метод УстановитьАсинхронныйРежим / SetAsyncMode для получения ответов компоненты через внешние события (естественно работает только на клиенте).

CI сборки реализованы для Windows x86/x64 и Linux x64. 

Для желающий просто оценить компоненту в работе, мною был сделан примитивный пример, реализующий следующий тестовый сценарий: авторизация в telegram и отправка сообщения абоненту с указанным номером телефона (даже если его еще нет у вас в контактах). Пример проверен на Windows 10 + 8.3.11 и на Ubuntu 18.04 + 8.3.12.

На данный момент демо-обработка содержит множество допущений. В частности:

  • Авторизация выполняется только для существующих учетных записей
  • Ввод некорректного кода подтверждения никак не обрабатывается
  • Не реализована двухфакторная аутентификация
  • Не указывается куда отправлен код подтверждения (Telegram / SMS)
  • Не задаются настройки TDLib. База всегда хранится в каталоге временных файлов. Токены app_id и api_hash совпадает с тестовыми для TDLib.

В общем, самый, самый минимум.

Telegram Native API интеграция

См. также

SALE! 25%

Конструктор ботов Телеграм, редакция 2

Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С.

15000 11250 руб.

18.06.2021    58326    290    255    

344

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    33019    80    157    

173

Легкий документооборот (+чат-бот для Telegram)

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в конфигурациях "1С: Бухгалтерия 3.0", "Управление нашей фирмой", "1С ERP Управление предприятием", "Бухгалтерия государственного учреждения". Ролевая адресация, условная маршрутизация, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    27684    24    48    

56

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    83520    40    191    

127

Интеграция 1С с телефонией и чатами WhatsApp и Telegram

Телефония, SIP Мессенджеры и боты Платформа 1С v8.3 Конфигурации 1cv8 Россия Управленческий учет Платные (руб)

Интеграция 1С с телефонией и чатами WhatsApp и Telegram автоматизирует работу оператора со звонками и чатами и добавит вашей 1С элементы CRM системы. Храните всю историю взаимоотношений в 1С, не теряйте звонки, скачивайте, прослушивайте в любое время из карточки клиента или журнала звонков, держите руку на пульсе, используя блок отчетов по звонкам. Интегрируйте вашу 1С и чатами WhatsApp и Telegram, общайтесь с клиентами с единого номера и в одном окне. Теперь чаты с клиентами хранятся в карточке партнера в 1С, а не в личных мобильных ваших менеджеров.

4100 руб.

28.04.2022    13776    10    6    

36

Интеграция Whatsapp c 1C через сервис Wazzup (расширение, для УНФ 1.6 / УНФ 3.0, УТ 11, КА 2, ERP 2 (все версии), платформа 8.3.14)

Мессенджеры и боты Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Данное расширение представляет собой интерфейс взаимодействия 1С с сервисом Wazzup. Данный сервис позволяет вести беседу с использованием номера телефона, привязанного к Whatsapp. Почитать о сервисе и его условиях использования можно по ссылке https://wazzup24.com/. На данный момент расширение поддерживает почти все доступные через API функции. Обновление от 19.05.2023, версия 2.1!

14400 руб.

30.11.2020    12332    7    13    

14
Отзывы
3. Infactum 314 24.05.18 22:37 Сейчас в теме
(2) Тогда пусть будет в комментах. Из репозитория можно подчерпнуть следующую полезную информацию.

- Не надо использовать шаблон с ИТС, т.к. он был написан еще до C++11.
- Ориентируемся на кросплатформенность с начала разработки, т.к. надо 1С на Linux далеко не экзотика. Поэтому точно не стоит использовать wchar_t для хранения строк. Только 2х байтовые char16_t.
- Для преобразования строк из UTF-8 в UTF-16 лучше брать проверенное временем решение. Например ICU (как у меня), либо iconv. Но только не велосипеды из шаблона с ИТС.
- Используйте CMake. Далеко не все разработчики предпочитают Visual Studio даже под Windows. Да и единообразие сборочного процесса на различных система не повредит.
- Решая проблему русских названий методов не надо сохранять исходники в Win-1251. Да, в студии сработает. Но правильный и универсальный вариант это UTF8+BOM.
- Обязательно настройки CI. Не только потому, что CI это "круто", но и потому, что так вы точно не забудете, что еще необходимо установить на чистую систему для сборки. Сборка в C++, особенно больших проектов - боль.
- Не забываем про кэш при сборке на CI. В моем "проекте" tdlib с нуля собирается минут 30 + еще 10 минут другие зависимые библиотеки. При наличии кэша время сборки, даже с учетом подготовки виртуалки меньше минуты. Пример реализации кэша можно увидеть как для Windows: тут сделан пакет tdlib для vcpkg, так и для Linux - там сборка идет через Docker контейнер, а актуальный образ сборщика в docker hub.

P.S. В Appveyor теперь есть поддержка Linux. Лучший CI для подобных проектов на сегодняшний день.
shard; Leo_A; starik-2005; unduty; ksu66; tormozit; zakiap; KAV2; Трактор; pbazeliuk; AlkB; shurik_shurik; JohnyDeath; dmpas; Synoecium; azubar; +16 1 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 24.05.18 10:08
Сообщение было скрыто модератором.
...
2. dmpas 417 24.05.18 20:50 Сейчас в теме
заметка в большей степени ... про правильную, по мнению автора, разработку native внешних компонент

вот этот момент совсем не раскрыт в статье, стоило уделить этому внимание. В остальном - плюс за проделанную работу.
3. Infactum 314 24.05.18 22:37 Сейчас в теме
(2) Тогда пусть будет в комментах. Из репозитория можно подчерпнуть следующую полезную информацию.

- Не надо использовать шаблон с ИТС, т.к. он был написан еще до C++11.
- Ориентируемся на кросплатформенность с начала разработки, т.к. надо 1С на Linux далеко не экзотика. Поэтому точно не стоит использовать wchar_t для хранения строк. Только 2х байтовые char16_t.
- Для преобразования строк из UTF-8 в UTF-16 лучше брать проверенное временем решение. Например ICU (как у меня), либо iconv. Но только не велосипеды из шаблона с ИТС.
- Используйте CMake. Далеко не все разработчики предпочитают Visual Studio даже под Windows. Да и единообразие сборочного процесса на различных система не повредит.
- Решая проблему русских названий методов не надо сохранять исходники в Win-1251. Да, в студии сработает. Но правильный и универсальный вариант это UTF8+BOM.
- Обязательно настройки CI. Не только потому, что CI это "круто", но и потому, что так вы точно не забудете, что еще необходимо установить на чистую систему для сборки. Сборка в C++, особенно больших проектов - боль.
- Не забываем про кэш при сборке на CI. В моем "проекте" tdlib с нуля собирается минут 30 + еще 10 минут другие зависимые библиотеки. При наличии кэша время сборки, даже с учетом подготовки виртуалки меньше минуты. Пример реализации кэша можно увидеть как для Windows: тут сделан пакет tdlib для vcpkg, так и для Linux - там сборка идет через Docker контейнер, а актуальный образ сборщика в docker hub.

P.S. В Appveyor теперь есть поддержка Linux. Лучший CI для подобных проектов на сегодняшний день.
shard; Leo_A; starik-2005; unduty; ksu66; tormozit; zakiap; KAV2; Трактор; pbazeliuk; AlkB; shurik_shurik; JohnyDeath; dmpas; Synoecium; azubar; +16 1 Ответить
7. пользователь 27.05.18 06:41
Сообщение было скрыто модератором.
...
4. Synoecium 777 26.05.18 07:19 Сейчас в теме
Жаль что вашей статьи не было, когда писал свою компоненту по рисованию графов, теперь её даже стыдно выкладывать на GiHub :)
5. azubar 45 26.05.18 09:51 Сейчас в теме
Очень круто и востребовано, я верю в то что телеграмм переплюнет и китайский вичат и пайпал вместе взятые.
Вопрос: сейчас отправить можно только тестовое сообщение, файлы/изображения?
6. Infactum 314 26.05.18 10:05 Сейчас в теме
(5) Отправить можно все, что поддерживается протоколом. Виды контента описаны тут.
8. oyti 61 28.05.18 14:36 Сейчас в теме
Windows 7 x64,
1С:Предприятие 8.3 (8.3.12.1412),
Бухгалтерия предприятия, редакция 3.0 (3.0.61.47)
Прикрепленные файлы:
9. oyti 61 28.05.18 14:43 Сейчас в теме
(8) 1С:Предприятие 8.3 (8.3.11.2867) - ошибка та же
10. Infactum 314 28.05.18 14:47 Сейчас в теме
(8) Разрядность клиента 1С какая?
Если попробовать подключить напрямую dll, а не через бандл, что скажет?
ПодключитьВнешнююКомпоненту("<Путь_к_DLL>", "Telegram", ТипВнешнейКомпоненты.Native)
11. oyti 61 28.05.18 17:47 Сейчас в теме
x86
Если явно задать путь к dll на диске, вроде работает
12. Anton64 215 01.06.18 09:26 Сейчас в теме
У меня Win 7, появляется окно с вводом номера телефона, после нажатия Далее ничего не происходит...

Попробовал так: ПодключитьВнешнююКомпоненту("D:\Telegram.dll", "Telegram", ТипВнешнейКомпоненты.Native) - пишет, что либо не предназначен для выполнения под управлением Виндоус или содержит ошибку и т.д.
13. Infactum 314 01.06.18 11:31 Сейчас в теме
(12)
Если появилось окно ввода телефона, значит компонента успешно подключилась - лучше конечно проверить отладчиком.
После ввода телефона может ничего не происходить, потому что нет подключения к ДЦ телеграма (спасибо РКН).

Если есть желание разобраться в проблеме, то рекомендую скачать на гитхабе последнюю сборку. В ней есть возможность включения журнала tdlib - метод УстановитьКаталогЖурнала(<Путь>).
14. Anton64 215 01.06.18 12:03 Сейчас в теме
(13) Про блокировку понял, думаю что в ней дело.
Тогда возникает вопрос, можно ли как-то указать прокси сервер для работы компоненты?
15. Infactum 314 01.06.18 12:31 Сейчас в теме
(14) Можно через setProxy. Текущая версия TDLib только Socks5 умеет.
16. Mopo3 331 19.09.18 20:07 Сейчас в теме
Круто! Помучался, но научился получать сообщения от пользователей, из секретных групп, что и требовалось для задачи.
Замечательная библиотека и пример, спасибо!
17. Mopo3 331 03.10.18 00:59 Сейчас в теме
(0), подскажите пожалуйста. Я правильно понимаю, что если я хочу получить/отправить сообщения от пользователей БЕЗ использования бота, то это можно сделать ТОЛЬКО через TDLib и более никак?
То есть использовать для этого

Соединение = Новый HTTPСоединение("api.telegram.org",443,,,Прокси,,Новый ЗащищенноеСоединениеOpenSSL());
ПараметрыЗапроса = "?chat_id=[chat_id]";
ТекстЗапросаHTTP = "getChatHistory" + ПараметрыЗапроса;

Запрос = Новый HTTPЗапрос(ТекстЗапросаHTTP);
Запрос.УстановитьТелоИзСтроки(ПараметрыЗапроса);

Ответ = Соединение.ОтправитьДляОбработки(Запрос);

не получится при всем желании, т.к. он предназначен ТОЛЬКО для ботов?
18. Infactum 314 03.10.18 08:21 Сейчас в теме
(17) С использованием REST вы можете работать только с BOT API. Для использования всех возможностей (например чтобы стать инициатором сообщения или использовать секретный чат) нужен Telegram API. Так вот TDLib - это лишь одна из реализаций (правда официальная). Можете воспользоваться любой другой (на GitHub полно), но к ним биндингов на 1С нету.
19. dtybr 16 10.10.18 17:51 Сейчас в теме
Добрый день.
Подскажите пожалуйста как можно настроить опции TDLib (https://core.telegram.org/tdlib/options)
Мне нужно чтоб библиотека отправляла запросы через мое собственное DNS имя. Или так нельзя. Только прокси (setProxy)
С ним не смог разобраться.
Делаю вот так после соединения:
ФорматированныйТекст = Новый Соответствие;
	ФорматированныйТекст.Вставить("@type", "proxySocks5");
	ФорматированныйТекст.Вставить("server", "176.94.2.84");
	ФорматированныйТекст.Вставить("port", "1080");
	ФорматированныйТекст.Вставить("username", "");
	ФорматированныйТекст.Вставить("password", "");
	
	ЗапросКомпоненты = Новый Соответствие;
	ЗапросКомпоненты.Вставить("@type", "setProxy");
	ЗапросКомпоненты.Вставить("proxy", ФорматированныйТекст);
		
	ОтправитьЗапрос(ЗапросКомпоненты);
Показать


Но не работает не приходит СМС
20. Infactum 314 10.10.18 17:57 Сейчас в теме
(19) Не понимаю, что значит "отправлять запросы через DNS имя".
Для разбора проблемы прокси рекомендую включить лог и заглянуть туда. Так же надо выяснить, на какой версии TDLib ваша компонента, т.к. в последней (той, что на TDLib 1.3) метода setProxy больше нету.
New methods addProxy, editProxy, enableProxy, disableProxy, removeProxy and getProxies were added instead of setProxy and getProxy.
21. dtybr 16 10.10.18 19:08 Сейчас в теме
У меня есть transparent Proxy по адресу telegram.mysite.com если TDLib будет запросы отправлять через него то оно не будет заблокировано РКН.
И это не SOCKS5 поэтому его прописать в список прокси нельзя. ( И поэтому я обратил внимание на опцию http://prntscr.com/l4icxi


TDLib у меня скорей 1.3 так как библиотеку качал с GITHub сегодня.
Так что видимо придется использовать новые методы.

Скажите я вам можно поручить задачу по разработке подсистемы с 4 методами которые будут через TDLib 1.3 работать:
- НайтиКонтактТелеграмм()
- СоздатьКОнтактТелеграмм()
- ОтправитьСообщениеТелеграмм()
- ПринятьСообщенияТелеграмм()

Методы должны быть в серверном модуле и выполняться на сервере WINx64
Могу сформулировать более точные требования.
22. Crush 24.12.18 12:33 Сейчас в теме
АдресTDLib = "D:\TDlib\telegram_native_x86.dll";
Если ПодключитьВнешнююКомпоненту(АдресTDLib,"Telegram", AddInType.Native) Тогда
тлг = Новый("AddIn.Telegram.TelegramNative");


... чет вот тут ни один метод запустить не получается. Пробовал:
//тлг.УстановитьКаталогЖурнала("D:\TDlib\logs\");
//тлг.setProxy("###:80");
//тлг.addProxy("###:80");
//тлг.set_file_path("D:\TDlib\logs\");
//тлг.TdSetLogFilePath("D:\TDlib\logs\");
//Сообщить(тлг.GetInfo());



КонецЕсли;

Номер телефона не спрашивает, на методы ругается, что нет таких.
Что я делаю не так?
23. Infactum 314 24.12.18 12:43 Сейчас в теме
(22) Из всех методов более-менее в цель попал только УстановитьКаталогЖурнала - только в какой-то из версий он был переименован в УстановитьФайлЖурнала.
Методы TDLib так вызвать нельзя. В статье же написано, что компонента является оберткой над JSON методами.
Если на других языках не работали с TDLib, то лучше скачать обработку-пример из публикации.
24. neo980 15.02.19 10:41 Сейчас в теме
Подскажите, какой командой происходит создание нового клиента?
25. Infactum 314 15.02.19 13:44 Сейчас в теме
(24) Не совсем понял вопрос. Подключаете компоненту и создаете новый экземпляр
AddIn.Telegram.TelegramNative

Рекомендую просто скачать обработку из публикации и ознакомиться с полноценным примером кода. Создать экземпляр клиента это же самое начало. Даже подключение к серверу выполнить задача нетривиальная.
26. SergeyRomanov 83 02.04.21 09:59 Сейчас в теме
Многовато времени потратил на доработка для отправки кроме текста фото и файлов! Так что вот отправляйте фото и файлы:

Процедура СоздатьСекретныйЧатЗавершение(ОтветКомпоненты, ДополнительныеПараметры) Экспорт
	
	//Отправляем Текст
	ФорматированныйТекст = Новый Соответствие;
	ФорматированныйТекст.Вставить("@type", "formattedText");
	ФорматированныйТекст.Вставить("text", "Привет!");
	
	СодержимоеСообщения = Новый Соответствие;
	СодержимоеСообщения.Вставить("@type", "inputMessageText");
	СодержимоеСообщения.Вставить("text", ФорматированныйТекст);
	
	ЗапросКомпоненты = Новый Соответствие;
	ЗапросКомпоненты.Вставить("@type", "sendMessage");
	ЗапросКомпоненты.Вставить("chat_id", ОтветКомпоненты["id"]);
	ЗапросКомпоненты.Вставить("input_message_content", СодержимоеСообщения);
		
	ОтправитьЗапрос(ЗапросКомпоненты);
	
	//Отправляем Фото	

	Фото = Новый Соответствие;
	Фото.Вставить("@type", "inputFileLocal");
	Фото.Вставить("path","E:\test\test.png");

	СодержимоеФото = Новый Соответствие;
	СодержимоеФото.Вставить("@type", "inputMessagePhoto");
	СодержимоеФото.Вставить("photo", Фото);

	ЗапросКомпоненты = Новый Соответствие;
	ЗапросКомпоненты.Вставить("@type", "sendMessage");
	ЗапросКомпоненты.Вставить("chat_id", ОтветКомпоненты["id"]);
	ЗапросКомпоненты.Вставить("input_message_content", СодержимоеФото);

	ОтправитьЗапрос(ЗапросКомпоненты);
	
	//Отправляем Файл
	
	Фото = Новый Соответствие;
	Фото.Вставить("@type", "inputFileLocal");
	Фото.Вставить("path","E:\test\Test.csv");

	СодержимоеФото = Новый Соответствие;
	СодержимоеФото.Вставить("@type", "inputMessageDocument");
	СодержимоеФото.Вставить("document", Фото);

	ЗапросКомпоненты = Новый Соответствие;
	ЗапросКомпоненты.Вставить("@type", "sendMessage");
	ЗапросКомпоненты.Вставить("chat_id", ОтветКомпоненты["id"]);
	ЗапросКомпоненты.Вставить("input_message_content", СодержимоеФото);

	ОтправитьЗапрос(ЗапросКомпоненты);	
КонецПроцедуры
Показать
27. Serdgio 195 05.04.21 20:12 Сейчас в теме
коллеги, может, кто-то решал подобную задачу?
Необходимо читать сообщения из публичного канала, ид которого у меня есть, и есть номера сообщений

вот пример моего кода

ЗапросКомпоненты = Новый Соответствие;
ЗапросКомпоненты.Вставить("@type", "getMessage");
ЗапросКомпоненты.Вставить("chat_id", "-1001230068734");
ЗапросКомпоненты.Вставить("message_id", "4599");
ОтправитьЗапрос(ЗапросКомпоненты);

ответ приходит

{"@type":"error","code":401,"message":"Unauthorized","@extra":null}

api_id и api_hash - пробовал и демо, и своего зарегистрированного приложения.

Еще нужно какие-то действия для подтверждения авторизации сделать?
28. Serdgio 195 05.04.21 22:43 Сейчас в теме
Коллеги, может, кто-то решал подобную задачу.
Чтение сообщений из публичного чата

Код вот такой

ЗапросКомпоненты = Новый Соответствие;
ЗапросКомпоненты.Вставить("@type", "getMessage");
ЗапросКомпоненты.Вставить("chat_id", "-1001230068734");
ЗапросКомпоненты.Вставить("message_id", "4599");

ответ
"{"@type":"error","code":401,"message":"Unauthorized","@extra":null}"

Перед этим нужно еще какие-то действия выполнить?
29. SergeyRomanov 83 09.04.21 07:04 Сейчас в теме
(28)

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

1) Проверь, что предварительно выполняется: ЗапросКомпоненты "@type", "importContacts"

2) Открывается/становится текущим для дальнейших запросов/создаётся нужный чат например приват чат: ЗапросКомпоненты ("@type", "createPrivateChat");

3) Ну и когда пришёл положительный ответ, что чат найден и можно с ним работать: отправляй / получай сообщения.

+ У себя я что то не замечал chat_id начинающийся с тире "-" ... Для эксперимента попробуй без тире.
30. ArtiKDA 27.04.21 08:51 Сейчас в теме
На github обработки нет или я не нашел?
It-developer; +1 Ответить
31. starik-2005 3031 03.08.21 18:50 Сейчас в теме
Автор, Вы случайно не знаете, как собрать ВК без вижуал студио - просто из командной строки, в идеале g++?
32. Infactum 314 03.08.21 22:17 Сейчас в теме
(31) Те компоненты (включая шаблон), что опубликованы мной, собираются через cmake. Команды сборки практически одинаковы для любого компилятора и их проще посмотреть в документации. Либо посмотреть скрипты для CI, которые в репо с компонентой опубликованы.
Visual Studio вам для сборки не нужно - это IDE. Полагаю тут вы путаетесь, и речь идет именно о компиляторе MSVC. Его можно поставить отдельно.
Использовать отличный от MSVC компилятор на Windows не получится, в силу того, что компоненты используют C++ ABI.
В целом требование такое:
win - msvc
lin - g++
mac - llvm
33. starik-2005 3031 03.08.21 23:39 Сейчас в теме
(32)
Полагаю тут вы путаетесь, и речь идет именно о компиляторе MSVC.
Смотрю тут Ваш веселый стрим - впечатляет )))

Не путаю. Как собрать через cl.exe - да, разобрался (/link /def:blablabla.def - помогло), но была мысль собрать g++, который под виндой. DLL у меня там собирается, но не подключается. __declspec(dllexport) - не помогает - все валится (((
34. starik-2005 3031 04.08.21 01:43 Сейчас в теме
(33)
но была мысль собрать g++
Вообще, при создании dll из g++ порядок меняется функций из таблицы внешних ссылок. Сначала destroy идет, потом getclassname - вообще не ясно, отчего индекс зависит. В итоге при запуске или просто ЛОЖЬ или дамп. Так и не понял, можно ли это побороть.
35. user812767 22.09.21 16:13 Сейчас в теме
Добрый день. Скачал обработку при нажатии на кнопку далее ничего не происходит, перечитал все какие-то вещи не понимаю...
1) правильная ли у меня сборка, скачал с GitHab по ссылке в статье
2) если блокирует РКМ как это обойти
Запускается форма с вводом номера от кого отправлять но дальше на страницы отправки кода подтверждения и запуска тестовой отправки не уходит
38. Infactum 314 23.09.21 20:02 Сейчас в теме
(35) (36) (37)
Не готов однозначно ответить, почему у вас может не работать.
Сейчас, вроде бы, телеграм не блокируют, но лучше проверять работу по VPN, в случае подозрения на проблемы.
Компонента, приложенная к обработке использует достаточно старую версию API телеграм. И, хоть они и поддерживаю обратную совместимость, это может быть причиной проблем. Компоненты на базе актуальной версии API у меня нету - довольно давно к этой теме не возвращался. Но, используя исходники на github, вполне можно собрать самостоятельно.
Если вашу учетную запись заблокировали - пишите им в техподдержку(recover at telegram.org или support at telegram.org) . Мне когда-то помогало.
36. user812767 22.09.21 16:46 Сейчас в теме
@type возвращает "error" что делаю не так?
37. user812767 23.09.21 15:20 Сейчас в теме
Странно, сегодня получилось отправить, только порадовался что все здорово и заблокировали номер в telegram, еще вместе с сообщением отправлял файл excel и картинку..
39. user812767 15.10.21 13:45 Сейчас в теме
Добрый день! Можно ли отправлять сообщения без авторизации
40. Aspire1C 862 31.10.21 16:48 Сейчас в теме
По ссылке на github не удалется скачать Внешнюю компоненту, по всем трём ссылкам в разделе "Latest builds" пишет "{"message":"Artifact not found or access denied."}". Обработку скачал. Исходники тоже скачать можно. А вот как из них скомилировать нужную *.dll я не в курсе. Можете поправить ссылки на github или поделиться ссылкой как сделать *.dll. Спасибо
41. Infactum 314 31.10.21 22:07 Сейчас в теме
(40) Ровно та же ситуация, что в этом issue описана. Ничего с тех пор не изменилось.
42. Aspire1C 862 31.10.21 22:25 Сейчас в теме
(41) Спасибо за ответ. Классная штука. И единственная на всём Инфостарте. Было бы супер, если вы решите обновить всё таки внешнюю библиотеку.
43. Aspire1C 862 02.11.21 10:07 Сейчас в теме
Если кто то поделится рабочей внешней библиотекой dll даже старой, то буду очень признатален.
44. Infactum 314 02.11.21 10:08 Сейчас в теме
(43) Ссылки на страничке гитхаба живые же сейчас
Aspire1C; +1 Ответить
45. Aspire1C 862 02.11.21 10:11 Сейчас в теме
46. Aspire1C 862 04.11.21 00:43 Сейчас в теме
(44) Отписал вам в личные сообщения. Ответе пожалуйста.
47. Aspire1C 862 04.11.21 01:41 Сейчас в теме
Пока даже авторизация не проходит, пробовал и по тестовым АПИ и ХЕШ и создавал свое приложение по ссылке https://my.telegram.org/apps
И подставлял уже свои АПИ и ХЕШ, даже код не приходит, пишет: "Too Many Requests: retry after 81672", хотя нажимал всего один раз и с различными задержками.

В описании метода пайтона, например пишут, что данную авторизацию надо пройти всего раз: "Вас попросят ввести телефон и пришлют код подтверждения. После этого клиент будет работать без запроса телефона (до тех пор, пока не поменяете session_name)" (ссылка на источник: https://habr.com/ru/post/425151/)

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

Поправьте меня, если я не прав.
48. Serdgio 195 04.11.21 13:45 Сейчас в теме
сейчас при отправке кода подтверждения ответ
checkAuthenticationCode unexpected.
Коллеги, есть опыт решения?
49. SergeyRomanov 83 08.11.21 19:25 Сейчас в теме
Вот моя обработка на обычных формах для ут 10,3 делал. Отработала стабильно пол года, а 3 дня назад к сожалению стала выпадать ошибка при отправке сообщения и файла (( Что интересно сообщение приходит получателю, но 1С крашится... ещё не разобрался как эту ошибку пропустить хотя бы...
Прикрепленные файлы:
Отправка сообщения в телеграмм.epf
50. SergeyRomanov 83 08.11.21 20:37 Сейчас в теме
(49) По наблюдениям: 1) файлы отправляются хорошо как и прежде. 2) Иногда при отправке коротких сообщений типа "1" или "2" или "test" 1С не падает в ошибку, но лишь иногда ((( через пару секунд отправляю тот же короткий текст и 1С крашится.... при этом получателю как и прежде сообщения приходят! Предположение: что после отправки текста в dll компоненту ("telegram_nativ86.dll") прилетает от сервера телеграмм какое то сообщение, которое не может быть обработано, и компонента "падает" (((( Если кто то с такой ошибкой столкнулся и нашёл решение - прошу поделиться или описать путь решения!
62. user1045174 14.07.22 11:08 Сейчас в теме
(50)
Смогли победить проблему?
63. SergeyRomanov 83 14.07.22 14:58 Сейчас в теме
Готово! Добавил отбор по номенклатуре.
(62)
нет.
51. AdminStrd 11.11.21 11:42 Сейчас в теме
52. BildNotForUsers 03.12.21 15:00 Сейчас в теме
пришел конец библиотеке уже?три дня назад что то поменялось у телеги и просит обновить приложение "UPDATE_APP_TO_LOGIN" при запросе авторизации по номеру телефона
53. Infactum 314 03.12.21 15:02 Сейчас в теме
(52) Обновить tdlib надо. Хотя бы до текущей 1.7.9, а лучше 1.8.0 дождаться.
Компонента open source - так что задача ждет своего героя.
54. BildNotForUsers 03.12.21 15:06 Сейчас в теме
(53)на гите качал библиотеку в том месяце после ошибки как у товарища :http://forum.infostart.ru/forum28/topic192791/message2742695/#message2742695
все нормально работало,но нет пришло сообщение
"Уважаемый разработчик,

Популярность Telegram продолжает расти по всему миру, в том числе и благодаря Вашему неофициальному приложению. Если приложение основано на Вашем собственном коде, Вам необходимо внести два изменения, чтобы пользователи могли продолжать им пользоваться. Эти изменения уже поддержаны в открытом коде официальных приложений Telegram, так что если Ваше приложение опирается на актуальную версию одного из них, то дополнительных действий не потребуется."

и все пошло по ..... ждем героя)
56. user1758218 19.03.22 00:56 Сейчас в теме
(53) Доброго времени суток. Пытаюсь собрать новую dll. На текущем этапе падает сборка. Пошагово делал:

1) Пошаговая установка последней версии TDLib отсюда: https://tdlib.github.io/td/build.html для C++ и windows
2) Установка ICU x64-windows и x64-windows-static из vcpkg
3) Установка свойств в cmake для сборки проекта из https://github.com/Infactum/telegram-native (скрин 1)
4) CMake конфигурирует успешно (скрин 2)
5) Visual Studio открывает проект, все вроде замечательно, но при попытке сборки ругается на отсутствующий файл (скрин 3). Причем по названию даже не могу понять, из какой библиотеки и чего не хватает. На текущий момент уперся в эту ошибку и даже не могу пока придумать, куда дальше копать, опыта работы с CMake и Visual Studio не хватает. Может быть у Вас есть идеи?
Прикрепленные файлы:
57. user1758218 21.03.22 09:58 Сейчас в теме
(56)
Вроде с этой проблемой разобрался. Видимо неверно указал пути библиотек для CMake в 1й раз. На текущий момент сборка нового dll успешна, но попытка интеграции в 1С неудачна. Будут ли идеи, в чем может быть проблема?
Прикрепленные файлы:
61. user1045174 14.07.22 07:43 Сейчас в теме
(57) Добрый день, не могли бы поделиться скомпилированной библиотекой?
65. user1758218 30.09.22 16:57 Сейчас в теме
(61) Тогда смогли побороть проблему подключения компоненты к 1С, но результат не изменился. 1С так же вылетала, при отправке исходящего сообщения. 3 дня впустую потратили, решили больше не мучаться.
55. wrooom 171 16.03.22 22:56 Сейчас в теме
Нажимаю ссылку на ГИТе Latest builds, в ответ {"message":"Artifact not found or access denied."} Что я делаю не так?
58. iSoft 19.05.22 09:59 Сейчас в теме
Поделитесь пожалуйста ссылкой на компоненту. Новичок в вопросе ее компиляции. Ссылки из статьи недоступны для скачивания! Help!
59. Infactum 314 19.05.22 10:40 Сейчас в теме
Артефакты сборок раньше хранились в appVeyor, но сейчас их нет.
До того, чтобы починить сборку, а лучше перевести на github CI руки пока не дошли. Помощь приветствуется.
60. Valyna 24.06.22 10:48 Сейчас в теме
Добрый день
У кого-нибудь есть 64-х битная сборка библиотеки?
64. user1426997 26.09.22 10:32 Сейчас в теме
Добрый день!
Помогите, пожалуйста, собрать библиотеку.
1. TDLib собрал по инструкции
2. запустил install_prereq.bat
3. пытаюсь собрать через cmake.
Не находит библиотеки td, openssl, icu, zlib
Вручную прописал пути.
Но cmake валится вот здесь:

target_link_libraries(telegram_native PRIVATE
Td::TdJsonStatic
ICU::uc ICU::dt)

Ошибка:

CMake Error at CMakeLists.txt:27 (target_link_libraries):
Target "telegram_native" links to:

ICU::uc

but the target was not found. Possible reasons include:

* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.

Как победить, подскажите, пожалуйста
66. baan4c 24.10.22 06:13 Сейчас в теме
(64)
ICU::uc


Очевидно, библиотека ICU старая и не содержит uc.
Решение: найти новую.
Доп условие: выслать мне собранную dll. Thanx in advance.
67. user1631135 27.02.23 22:15 Сейчас в теме
Доброго времени суток, уважаемые коллеги.

Неужто никто из владеющих C++ не использует данную замечательную компоненту, очень нужная свежая версия. :(
68. Semargl84 16 28.11.23 18:29 Сейчас в теме
Я так понимаю, что из-за того, что dll устарела в макете, я завис на этом шаге...?
Прикрепленные файлы:
69. shard 279 21.12.23 01:34 Сейчас в теме
(68) полагаю ответ в комментарии 53. Актуальной версии компоненты для 1с как-то тоже не выкладывают(
70. Semargl84 16 21.12.23 20:25 Сейчас в теме
(69) Это шаг прошел. Уперся в другую проблему: получил api_id и api_hash для своей учетки в телеге. При попытке отправки сообщения от своего имени, получаю сообщение "phone_number_occupied "
Оставьте свое сообщение