Telegram bot API

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Telegram bot API

Сообщение Ichthyander » 31.03.2024 15:05:13

Ser9056 писал(а):причём без этих файлов совсем другая ошибка

А какая?
Ser9056 писал(а):На нём тоже такая же ошибка

Кстати, проверили: если скомпилировали на другом компьютере (к примеру, рабочем), то при отправки через интернет этого файла система может поставить скачано из интернета. В этом случае нужно разблокировать его (см. в свойствах файла .exe на целевом компьютере).
Второй момент важно проверить битность библиотек. Имеется ввиду битность скомпилированной программе (не ОС).
Если не поможет, напишите мне в телеграм @Renat_Suleymanov или в группу поддержки (english) https://t.me/fptelegram Решим проблему, самому стало интересно, в чем может быть причина
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение Ser9056 » 31.03.2024 15:31:41

Ichthyander писал(а):
Ser9056 писал(а):причём без этих файлов совсем другая ошибка

А какая?
Ser9056 писал(а):На нём тоже такая же ошибка

Кстати, проверили: если скомпилировали на другом компьютере (к примеру, рабочем), то при отправки через интернет этого файла система может поставить скачано из интернета. В этом случае нужно разблокировать его (см. в свойствах файла .exe на целевом компьютере).
Второй момент важно проверить битность библиотек. Имеется ввиду битность скомпилированной программе (не ОС).
Если не поможет, напишите мне в телеграм @Renat_Suleymanov или в группу поддержки (english) https://t.me/fptelegram Решим проблему, самому стало интересно, в чем может быть причина


вот такая ошибка без библиотек - https://ibb.co/mJshrNF

По поводу битности - копировал на домашнем компе в папку с примером бота и 32 и 64 битные dll'ки - результат одинаковый. Программу компилировать тоже пробовал и в 32 бита, и в 64 бита - та же ошибка.
При этом не пойму в чём проблема - компилирую же из одних исходников с одинаковыми библиотеками, что на работе, что дома.
Ser9056
незнакомец
 
Сообщения: 7
Зарегистрирован: 30.03.2024 17:20:36

Re: Telegram bot API

Сообщение Ichthyander » 31.03.2024 15:45:16

А можно лог? Родилась еще одна догадка. А точно бот не работает? Иногда из-за нестабильности интернета или сам сервер телеграм делает сброс соединения или не отвечает на запрос - это норм ситуация, бот ее обрабатывает. В режиме релиз возникает ли ошибка и не работает ли сам бот в штатном режиме при этом?
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение Ser9056 » 31.03.2024 18:32:20

Ichthyander писал(а):А можно лог? Родилась еще одна догадка. А точно бот не работает? Иногда из-за нестабильности интернета или сам сервер телеграм делает сброс соединения или не отвечает на запрос - это норм ситуация, бот ее обрабатывает. В режиме релиз возникает ли ошибка и не работает ли сам бот в штатном режиме при этом?


Если речь про лог longpolling_demo.log, то вот его содержимое:
Receiver thread [2024-03-31 17:25:05.382 Info] Log started
Receiver thread [2024-03-31 17:25:05.382 Debug] Request for method "getUpdates": { "timeout" : 8 }
Receiver thread [2024-03-31 17:25:07.540 Error] [HTTPPostJSON] ESocketError: Connect to api.telegram.org:443 failed.
Receiver thread [2024-03-31 17:25:07.540 Debug] Request for method "getUpdates": { "timeout" : 8 }
Receiver thread [2024-03-31 17:25:08.297 Error] [HTTPPostJSON] ESocketError: Connect to api.telegram.org:443 failed.
Receiver thread [2024-03-31 17:25:08.297 Debug] Request for method "getUpdates": { "timeout" : 8 }
Receiver thread [2024-03-31 17:25:08.851 Error] [HTTPPostJSON] ESocketError: Connect to api.telegram.org:443 failed.
Receiver thread [2024-03-31 17:25:08.851 Debug] Request for method "getUpdates": { "timeout" : 8 }
Receiver thread [2024-03-31 17:25:09.358 Error] [HTTPPostJSON] ESocketError: Connect to api.telegram.org:443 failed.
Receiver thread [2024-03-31 17:25:09.358 Debug] Request for method "getUpdates": { "timeout" : 8 }
Receiver thread [2024-03-31 17:25:09.812 Error] [HTTPPostJSON] ESocketError: Connect to api.telegram.org:443 failed.
Receiver thread [2024-03-31 17:25:09.812 Debug] Request for method "getUpdates": { "timeout" : 8 }

Такая картина из-за того, что нажимаю кнопку "продолжить" в окне ошибки отладчика :)

Насчёт стабильности интернета - на компе стабильно работают сайты, всё открывается.

В режиме релиза тоже не работает. Просто нету сообщения об ошибке
Ser9056
незнакомец
 
Сообщения: 7
Зарегистрирован: 30.03.2024 17:20:36

Re: Telegram bot API

Сообщение Ichthyander » 31.03.2024 23:03:33

Да, по логам видно, что соединение стабильно не проходит.
Если токен указан правильно, SSL библиотеки правильные, фаервол Windows не блокирует программу, то очень сложно понять в чем причина. Если есть возможность напишите мне все-таки телеграм, я тоже заинтересован разобраться в чем причина, может у кого такое же проявится.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение Ser9056 » 01.04.2024 21:30:58

Проблема решилась использованием правильных DLL'ок.

Огромнейшее спасибо Ichthyander! 8)
Ser9056
незнакомец
 
Сообщения: 7
Зарегистрирован: 30.03.2024 17:20:36

Re: Telegram bot API

Сообщение Ichthyander » 01.04.2024 21:54:31

Рад был помочь.

Стандартная проблема для классов Synapse и fphttpclient заключается в том, что для работы протокола https требуется библиотека OpenSSL. HTTPS-запросы обычно отправляются в обычном режиме, но если возникают проблемы с HTTPS-соединением, то вам необходимо добавить соответствующие библиотеки OpenSSL в папку с программой. Вы можете загрузить эти библиотеки по ссылке OpenSSL libs download.

Используйте требуемую разрядность библиотек для Windows
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение Ichthyander » 14.04.2024 17:34:51

Реализованы новые функции (https://github.com/Al-Muhandis/fp-teleg ... 6f3344c056): Бот для бизнеса https://core.telegram.org/bots/features ... r-business

Что это значит? Используя библиотеку, вы можете прослушивать бизнес-соединения для загрузки, обрабатывать бизнес-сообщения и даже отправлять сообщения от имени пользователя с помощью бота.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение xchgeaxeax » 13.09.2024 11:45:56

Здравствуйте. Спасибо за хороший модуль. Он сильно упрощает создание бота.
Но вот такой вопрос: Как получить подпись к файлу?
Как я понял подпись к файлу приходит в поле Caption, а не Text. Соответственно Message.Text пустое. А поля для получения Caption нету.
Остается только доставать эту подпись из Message.AsString
xchgeaxeax
постоялец
 
Сообщения: 125
Зарегистрирован: 11.05.2023 03:51:40

Re: Telegram bot API

Сообщение Ichthyander » 21.09.2024 21:51:41

xchgeaxeax писал(а):Здравствуйте. Спасибо за хороший модуль. Он сильно упрощает создание бота.
Но вот такой вопрос: Как получить подпись к файлу?
Как я понял подпись к файлу приходит в поле Caption, а не Text. Соответственно Message.Text пустое. А поля для получения Caption нету.
Остается только доставать эту подпись из Message.AsString

Здравствуйте
Опять не увидел уведомления с форума
Итак, если еще актуально...

Не совсем понятен вопрос:
  • Вопрос про прилеты апдейтов от телеграм? (Ну то есть Вы отправляете, к примеру, файл, с подписью или без, и телеграм Вам отправляет апдейт типа TTelegramMessageObj). Так вот, у это класса есть свойство Caption, в котором и хранится, собственно, Caption к файлу.
  • Если вопрос, наоборот, про отправку файла ботом пользователю, то в процедуре sendDocument тоже есть параметр Caption для отправки.
  • Если речь про DesignTime компонент и коллбек OnReceiveMessageUpdate, который повторяет коллбек из RunTime класса, то там также есть параметр с типом TTelegramMessageObj со свойством Caption
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение xchgeaxeax » 21.09.2024 22:05:41

Спасибо. Это свойство в TTelegramMessageObj, а не в TTelegramAudio/TTelegramDocument/TTelegramPhotoSizeList/TTelegramVideo/TTelegramVoice.
Значит не так искал.
xchgeaxeax
постоялец
 
Сообщения: 125
Зарегистрирован: 11.05.2023 03:51:40

Re: Telegram bot API

Сообщение Ichthyander » 21.09.2024 22:42:50

xchgeaxeax писал(а):Это свойство в TTelegramMessageObj, а не в TTelegramAudio/TTelegramDocument/TTelegramPhotoSizeList/TTelegramVideo/TTelegramVoice

Да, именно так. Обращайтесь, если что
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение xchgeaxeax » 08.10.2024 11:39:57

Здравствуйте. Еще один вопрос.

При изменении значения в поле TTelegramSender.Token программа через некоторое время завершается с кодом 1.
Изначально TTelegramSender.Create(EmptyStr), а в дальнейшем туда записывается валидный токен.

Если уничтожать объект изначально созданный с пустым токеном и создавать заново с валидным, то программа не завершается.
При этом поле TTelegramSender.Token доступно и для чтения и для записи напрямую. Возможно, стоит сделать его доступным только для чтения.
xchgeaxeax
постоялец
 
Сообщения: 125
Зарегистрирован: 11.05.2023 03:51:40

Re: Telegram bot API

Сообщение Ichthyander » 08.10.2024 16:39:47

xchgeaxeax писал(а):При изменении значения в поле TTelegramSender.Token программа через некоторое время завершается с кодом 1.
Изначально TTelegramSender.Create(EmptyStr), а в дальнейшем туда записывается валидный токен.

Возможно, где-то происходит не потокобезопасное обращение к токену. К примеру, во время запроса. Если бот создается с пустым токеном, то ожидается, что присвоение токена боту произойдет, к примеру, на этапе инициализации, то есть точно до любых запросов или приема апдейтов с сервера
xchgeaxeax писал(а):Если уничтожать объект, изначально созданный с пустым токеном и создавать заново с валидным, то программа не завершается.

Опять-таки мало информации. Скорее всего бот у Вас запускается в отдельном потоке и ваше приложение ждет, когда оно завершится. Сложно сказать без понимания архитектуры вашей работы с ботом.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 686
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение xchgeaxeax » 08.10.2024 17:10:02

Ichthyander писал(а):Опять-таки мало информации. Скорее всего бот у Вас запускается в отдельном потоке и ваше приложение ждет, когда оно завершится. Сложно сказать без понимания архитектуры вашей работы с ботом.

Да. Отдельная нитка, а прилетает токен из нитки с гуи. Пробовал синхронизировать и все равно вылет. Попробую обновлять данные внутри цикла опроса внутри нитки с ботом. Чтобы не было пересечения с getUpdatesEx

Добавлено спустя 32 минуты 27 секунд:
И действительно. Не завершается, если присвоение не пересекается с getUpdatesEx
xchgeaxeax
постоялец
 
Сообщения: 125
Зарегистрирован: 11.05.2023 03:51:40

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

Рейтинг@Mail.ru
cron