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

Ответ из Телеграм в MyChat

СообщениеДобавлено: Чт июл 30, 2020 11:28 pm
dr. Alex Kozik
Активировал Телеграмм бот, при сообщении из клиента в телеграмм - все работает, а при ответе из телеграмма - сообщения не доходят. Возможно нужен еще какой то скрипт, которого нет на сервере?

Re: Telegram Bot, как активировать?

СообщениеДобавлено: Пт июл 31, 2020 12:28 am
Андрей Раков
2dr. Alex Kozik

Вам нужно включить скрипт в разделе onRequestByRest-Telegram, если оно не включено, а в телеграмме нажмите на последнее сообщение от бота и выберите "ответить", тогда чат сможет понять, кому предназначено сообщение.

Re: Telegram Bot, как активировать?

СообщениеДобавлено: Вс авг 02, 2020 8:07 pm
dr. Alex Kozik
Доброго дня! К ранее заданному вопросу: скрипт включен:


Код: Выделить всё
function OnRequestByREST(sBody, sParams, sHeaders, sURL, sIPv4, sIPv6: string; iType: integer): string;
var
  sFirstName, sLastName, sNickName, sTelegramID, sText: string;
begin
  sFirstName  := '';
  sLastName   := '';
  sNickName   := '';
  sTelegramID := '';
  sText       := '';
 
  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 LowerCase(sText) = '/start' then
      mIntegrationTelegramAddUser(sTelegramID, sFirstName, sLastName, sNickName);
end;

begin

end.


Но сообщения проходят только в сторону Телеграмма, обратно (ответ ) не проходит.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Пн авг 03, 2020 12:45 pm
Алексей Пикуров
Я отделил ваши сообщения от первоначальной темы. Пожалуйста, отделяйте любой свой вопрос в отдельную тему.

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

Скрипт неполный. Вы используете версию 8.0.3 ?

Текущий скрипт выглядит вот так:

Код: Выделить всё
// -----------------------------------------------------------------------------------
// ver 2.0 / Aug 10, 2017, (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
                // multi-line text
                sData := '[Telegram] ' + ReplaceString(sText, #10, CRLF, true, false);
                // send private message into MyChat
                mSendPrivateMessage(iUINFrom, iUIN, sData, 1, true);
              end; 
          end;
     
      end;
     
  result := '{}';
end;

begin

end.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт авг 04, 2020 12:04 am
dr. Alex Kozik
Все заработало, спасибо!
Да: версия 8.0.3

Код: Выделить всё
Я отделил ваши сообщения от первоначальной темы. Пожалуйста, отделяйте любой свой вопрос в отдельную тему.

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

Скрипт неполный. Вы используете версию 8.0.3 ?

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 1:58 pm
dr. Alex Kozik
Добрый день! После последнего обновления сервера перестал работать ответ из Телеграм. Прежний работающий скрипт стал выдавать ошибку.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 2:22 pm
Алексей Пикуров
Здравствуйте. Уберите последний параметр true из функции mSendPrivateMessage, сохраните и включите скрипт.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 2:31 pm
dr. Alex Kozik
Скрипт выполняется без ошибок, но сообщения из Телеграм в чат не проходят.

Здравствуйте. Уберите последний параметр true из функции mSendPrivateMessage, сохраните и включите скрипт.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 3:36 pm
Алексей Пикуров
Вы включили скрипт?

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 3:48 pm
dr. Alex Kozik
Да, скрипт включён. При выполнении - ошибок нет.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 4:22 pm
Алексей Пикуров
А сообщение из чата в телеграм отправляется?

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 4:55 pm
dr. Alex Kozik
Да, отправляются (как и раньше).

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Вт мар 09, 2021 5:00 pm
Алексей Пикуров
Покажите окно интеграции с Telegram, пожалуйста.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Ср мар 10, 2021 9:21 am
dr. Alex Kozik
Доброе утро!

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Ср мар 10, 2021 3:32 pm
Андрей Раков
Добрый день.

У вас сертификат просрочен, обновите.

В ошибке от телеграма как раз написано, что сертификат не удалось верифицировать.

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Ср мар 10, 2021 7:04 pm
dr. Alex Kozik
Спасибо большое!!! Искались ошибку везде, а про сертификат я и не вспомнил! :)

Ответ из Телеграм в MyChat

СообщениеДобавлено: Пн сен 20, 2021 3:47 pm
МБУИМЦ
В разделе Web-сервисы указал сертификаты которые сгенерировал при помощи "Сгенерировать ключи". После этого согласился с перезагрузкой сервера, настройки сертификатов слетели. Что делать?

Re: Ответ из Телеграм в MyChat

СообщениеДобавлено: Пн сен 20, 2021 3:51 pm
Андрей Раков
Добрый день.

Создайте НОВУЮ тему с вашим вопросом и подробнее опишите, что вы сделали, желательно со скриншотами.