Telegram bot API

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

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

Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

wadman писал(а):У меня сервер в РФ, да и бот нужен практически в личных целях, потому прокси актуален.

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

Re: Telegram bot API

Сообщение Ichthyander »

Маленький, но важный коммит. Со вчерашнего вечера телеграм API эндпоинт не поддерживает TLS1.1.
Также сегодня создал новую ветку для абстрагирования HTTP клиента от реализации, чтобы можно было использовать различные HTTP библиотеки (помимо родной, синапс и инди, к примеру)
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

Добавлены поддержка HTTP прокси. Добавлены два брокера HTTP клиента. Родной FPHTTPClient (по умолчанию) и synapse. Для работы с прокси нужно будет подключить брокера tgsynapsehttpclientbroker.pas в uses в любом в принципе месте в проекте и указать данные HTTP прокси через свойства HTTPProxyHost/HTTPProxyPort/HTTPProxyUser/HTTPProxyPassword
Alek_Aaz
новенький
Сообщения: 40
Зарегистрирован: 26.11.2007 03:13:06

Re: Telegram bot API

Сообщение Alek_Aaz »

А клиента своего можно сделать на базе fp-telegram ? :roll:
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

Если имеется ввиду телеграм мессенджер, то для него требуется другой API (telegram client API), такого нет ни в Delphi, ни FPC пока, к сожалению. Теоретически можно импортировать TdLib через C-заголовки, но я это не умею

Добавлено спустя 59 минут 6 секунд:
https://github.com/tdlib/td
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

Кстати, если кто готов поддержать в развитии проекта, то можно замутить и Telegram API обертку и для мессенджера. Построим свой телеграм мессенджер с блекджеком... ;)
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

Добавил библиотеку в OPM, добавлены методы sendVideoStream, sendMediaGroup by FileNames и другие усовершенствования.
Можно скачать готовый релиз в https://github.com/Al-Muhandis/fp-teleg ... g/v0.0.2.5
Добавлен модуль для расширенного функционала бота tgBot.pas
Master2KAZ
незнакомец
Сообщения: 2
Зарегистрирован: 23.11.2021 23:18:59

Re: Telegram bot API

Сообщение Master2KAZ »

Приветствую!
А не могли бы вы написать пример Lonpolling Desktop с созданием меню бота?
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

Привет. Странно, уведомления только сейчас пришло с форума. Я так понял это Вы уже потом меня на гитхабе спрашивали. Я там ответил. У Вас получилось разобраться с примерами, кстати?
Master2KAZ
незнакомец
Сообщения: 2
Зарегистрирован: 23.11.2021 23:18:59

Re: Telegram bot API

Сообщение Master2KAZ »

Ichthyander писал(а):Привет. Странно, уведомления только сейчас пришло с форума. Я так понял это Вы уже потом меня на гитхабе спрашивали. Я там ответил. У Вас получилось разобраться с примерами, кстати?

Мне тоже только пришло. Я уже и забыл. У меня еще руки не дошли разбираться, работа мешает. На выходные планирую этим заняться. Как-то тяжеловато с РНР на Паскаль возвращаться)))
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

ssm78
новенький
Сообщения: 13
Зарегистрирован: 02.11.2021 11:32:50

Re: Telegram bot API

Сообщение ssm78 »

На raspberry pi с лазарем от первого марта 2019 года библиотека собралась только после правок в методе TTelegramSender.editMessageMediaStream

Код: Выделить всё

function TTelegramSender.editMessageMediaStream(aStream: TStream; media: TInputMedia; chat_id: Int64;
  message_id: Int64; inline_message_id: String; ReplyMarkup: TReplyMarkup): Boolean;
var
  sendObj: TStringList;
  aFileField, aFileName: String;
const
  _field='media';
begin
  Result:=False;
  sendObj:=TStringList.Create;
  with sendObj do
  try
    if chat_id<>0 then
      Add(s_ChatId+'='+IntToStr(chat_id));
    media.Media:='attach://'+_field;

    {$IF FPC_FULLVERSION <= 30004}
    Self.AddPair(sendObj,s_Media, media.AsJSON);
    {$ELSE}
    AddPair(s_Media, media.AsJSON);
    {$ENDIF}

    if message_id<>0 then
      Add(s_MessageId+'='+message_id.ToString);
    if inline_message_id<>EmptyStr then
      Add(s_InlineMessageId+'='+inline_message_id);
    if Assigned(ReplyMarkup) then
      Add(s_ReplyMarkup+'='+ReplyMarkup.AsJSON);
    aFileField:=_field;
    aFileName:=_field;
    Result:=SendStream(s_editMessageMedia, aFileField, aFileName, aStream, sendObj);
  finally
    Free;
  end;
end;


Но бот, правда, так и не заработал. Попробую разобраться.
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

Сообщите версию пакет fp-telegram (в любом случае лучше использовать последнюю на гитхабе) и версию Лазаруса

Добавлено спустя 1 минуту 24 секунды:
Также сообщить, что пишется в логах, что именно не заработало
ssm78
новенький
Сообщения: 13
Зарегистрирован: 02.11.2021 11:32:50

Re: Telegram bot API

Сообщение ssm78 »

fp-telegram взял с гитхаба.
Логов вообще никаких нет.
Скомпилировал пример LongPollingDesktop. Ввожу token, нажимаю кнопку Start get updates.
Всё, дальше тишина.
open-ssl стоит версии 1.1. Поставил из исходников с openssl.org

На windows этот же самый пример заработал на ура

Добавлено спустя 7 минут 32 секунды:
Версия лазаруса
[img]
https://i.ibb.co/DLzw81j/Untitled.jpg
[/img]
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Telegram bot API

Сообщение Ichthyander »

Пока сложно сказать. Может стоит попробовать собрать на последних версиях Lazarus? По обратным отзывам многие запускают fp-telegram на малинке и у них работает

Добавлено спустя 5 часов 6 минут 32 секунды:
ssm78, кстати, спасибо, закоммитил ваше предложение по коду https://github.com/Al-Muhandis/fp-teleg ... dfdef4b380
Ответить