Страница 1 из 1

Telegram bot не отправляет сообщения

СообщениеДобавлено: Чт авг 31, 2023 8:09 pm
galskiy
Здравствуйте. Настроил телеграм бота, в консоли бот активен и добавился пользователь телеграмма установил напротив него пользователя из чата, но вот сообщения бот не переправляет. Что я делаю не так? Скрипт отрабатывает, галочку поставил.

Re: telergam bot не отправляет сообщения

СообщениеДобавлено: Чт авг 31, 2023 8:18 pm
Алексей Пикуров
Здравствуйте. Надо больше деталей.

Пришлите скриншот с раздела "Инструменты", "Интеграция", "Telegram Bot" на [email protected] или мне в чат (в подписи).

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 6:25 am
galskiy
Скрин отправил в почту

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 12:49 pm
Андрей Раков
Покажите скрин "IP фильтров", адреса можете заблурить

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 1:42 pm
galskiy
Вот, возможно где-то в фильтрах я что-то неправильно сделал

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 1:46 pm
Андрей Раков
Какая версия чата?

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 1:55 pm
galskiy
последняя 2023.5.0

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 2:02 pm
Андрей Раков
Хорошо.

Вам нужно добавить правило с типом доступа "общий доступ", оно регулирует доступ по REST API к скрипту телеграма.

После релиза мы добавим дополнительный тип доступа, чтобы регулировать его отдельно, пока так.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 2:43 pm
galskiy
не помогло.
Давайте по пунктам.
1. Шифрование включено порт 80
2. Сертификаты получены.
3. Скрипт включен.
4. Бот горит зелёным и подключен.
5. Пользователь внизу отражается.
6. В фильтрах добавил Общий доступ с IP *.*.*.*
Может ещё что-то забыл выставить где-то?

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 2:59 pm
Андрей Раков
У вас в окне интеграции четко зафиксирована ошибка в разделе Check on telegram:
Код: Выделить всё
last error message: Read timeout expired

Это значит, что телеграм не може достучаться до вашего сервера.

После настройки фильтра вы перезапустили сервер?

Выполните перезагрузку и зайдите в интеграции там должна пропасть эта ошибка.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 11:21 pm
galskiy
Так и не смог победить ошибку "last error message: Read timeout expired", перезагрузил, фильтра убрал совсем, ничего не помогло. Возможно это все от домена, он взят на ресурсе noip.com и может нужна какая-то настройка на том сервисе, может проще будет использовать свой.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 11:22 pm
Андрей Раков
Поменяйте порт на 443, он стандартный для HTTPS

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 11:23 pm
Андрей Раков
В настройках веб-сервера.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Пт сен 01, 2023 11:36 pm
galskiy
да забыл сказать это я тоже пробовал, в поиске нашёл в какой-то теме и решил попробовать, но всё равно в ответ получаю это "last_error_message":"Connection timed out",

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 2:39 pm
galskiy
Вопрос. Заменил имя домена, как перевыпустить сертификаты на новое имя? тыкаешь ему выпустить сертификат он всё равно старые подтягивает.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 3:20 pm
Андрей Раков
Очистите папку C:\ProgramData\MyChat Server\cert\

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 5:36 pm
galskiy
Сертификат я сделал на новый домен, но бот всё равно мне выдаёт "last_error_message":"Read timeout expired" буду дальше разбираться почему телеграмм не может достучаться до меня. Сервер MyChat стоит на виртуальном сервере со статическим IP, возможно надо копнуть Firewall на самом сервере и открыть какие-то порты для телеги.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 8:03 pm
galskiy
У меня ещё вот такая проблема со скриптом OnPrivateMessage он выдаёт ошибку
[21:50:04] (Error "OfflineMsg2Telegram"): [Error] (35:67): Type mismatch
Может конечно это всё от того что связи нет с ботом.
Вот что ещё заметил в программе скрипт от 2017 года версия 1.1 в инструкции по интеграции версия 1.2 от 2020 года, но и та и другая выдают ошибки при выполнении. 1.2 версия немного отличается от 1.1 условиями. Вот отсюда вопрос какая версия актуальная? Ещё интересность бот отрабатывает добавление пользователя в mychat, а вот сообщения не отправляет может это всё таки из-за ошибки в скрипте?

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 8:19 pm
galskiy
Добавлю ошибка в этой строке
// send message to Telegram
s := mIntegrationTelegramSendMessage(sID, sOutMsg, 5000);

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 8:20 pm
Алексей Пикуров
Код: Выделить всё
// -----------------------------------------------------------------------------------
// ver 2.0 / May 25, 2023, (c) Alexey Pikurov, [email protected]
// -----------------------------------------------------------------------------------
function OnPrivateMessage(iCID, iUIN, iUINTo, iMsgType: integer; sMsg: string): boolean;
var
  sID, sOutMsg, sNameFrom: string;
begin
  result := true;
  if not mIsUINOnline(iUINTo) then
  begin
    // get sender's Telegram ID
    sID := mIntegrationTelegramGetUserIDByUIN(iUINTo);
    // no errors
    if sID[1] <> '-' then
    begin
      // get MyChat sender's display name
      sNameFrom := mGetUserFullNameByPreset(iUIN, 0);
      // file or image?
      if (iMsgType = 44) or (iMsgType = 45) then
         sOutMsg := mExtractExternalWebLinkFromMessage(sMsg, iMsgType)
      else
        // convert MyChat message to plaint text
        sOutMsg := mConvertMsgToPlainText(sMsg, iMsgType);
      // add WEB support link and user display name to message
      sOutMsg := '<a href="' +
                  mGetServerExternalAddress(0) +
                  '/support/?uin=' +
                  IntToStr(iUIN) +
                  '&silent">' +
                  sNameFrom +
                  '</a>:' +
                  CRLF +
                  CRLF +
                  sOutMsg;
      // send message to Telegram
      mIntegrationTelegramSendMessage(sID, sOutMsg, 5000);
    end;
  end;
end;

begin

end.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 8:49 pm
galskiy
Спасибо, теперь всё работает, оказалась проблема в скрипте. Возможно он остался от старой версии после обновления.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 8:49 pm
Алексей Пикуров
Ок, проблему закрываем. Спасибо за сотрудничество.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 9:14 pm
galskiy
А можно я ещё подастаю вас, в обратную сторону не работает, в инструкции написано что длинный тап и ответ на сообщение которое пришло от бота, а вот в чат не приходит ответ с телеграма

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 9:17 pm
Алексей Пикуров
Код: Выделить всё
// -----------------------------------------------------------------------------------
// ver 2.1 / Feb 1, 2021, (c) Alexey Pikurov, [email protected]
// -----------------------------------------------------------------------------------

function OnRequestByREST(sBody, sParams, sHeaders, sURL, sIPv4, sIPv6: string; iType: integer): string;
var
  sFirstName, sLastName, sNickName, sTelegramID, sText, sData: string;
  iResult, x, iUIN, iUINFrom: integer;
begin
  sFirstName  := '';
  sLastName   := '';
  sNickName   := '';
  sTelegramID := '';
  sText       := '';
 
  // get request data
  JSONGetString(sBody, 'message.from.id', sTelegramID);
  JSONGetString(sBody, 'message.from.first_name', sFirstName);
  JSONGetString(sBody, 'message.from.last_name', sLastName);
  JSONGetString(sBody, 'message.from.username', sNickName);
  JSONGetString(sBody, 'message.text', sText);

    // if user is connecting to the Telegram bot for the first time
    if LowerCase(sText) = '/start' then mIntegrationTelegramAddUser(sTelegramID, sFirstName, sLastName, sNickName)
      else begin // maybe user send reply message to the bot
        iResult := JSONGetString(sBody, 'message.reply_to_message.entities[0].url', sData);
       
          if iResult = 0 then begin
            // get receiver's UIN
            x := pos('?uin=', sData) + 5;
            iUIN := StrToIntDef(copy(sData, x, pos('&', sData) - x), -1);

            // get sender's UIN by user Telegram ID
            iUINFrom := mIntegrationTelegramGetMyChatUINByTelegramID(sTelegramID);

              // if sender and receiver are exists
              if (iUIN <> -1) and (iUINFrom > 0) then begin
                if Length(sText) > 0 then begin
                  // multi-line text
                  sData := '[Telegram] ' + ReplaceString(sText, #10, CRLF, true, false);
                  // send private message into MyChat
                  mSendPrivateMessage(iUINFrom, iUIN, sData, 1);
                end else begin
                 JSONSetInteger(sBody, 'UINFrom', iUINFrom);
                  JSONSetInteger(sBody, 'UINTo',   iUIN);
                  mNodeCommand('GetTelegramAttach', sBody);
                end
              end; 
          end;
     
      end;
     
  result := '{}';
end;

begin

end.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 10:48 pm
galskiy
спасибо огромное за оперативность! скрипт заменил, теперь все работает четко.

Re: Telegram bot не отправляет сообщения

СообщениеДобавлено: Вс сен 03, 2023 10:49 pm
Алексей Пикуров
You are welcome :)