Пришлите скриншот с раздела "Инструменты", "Интеграция", "Telegram Bot" на [email protected] или мне в чат (в подписи).
Чат со мной
Вложения
Вам нужно добавить правило с типом доступа "общий доступ", оно регулирует доступ по REST API к скрипту телеграма.
После релиза мы добавим дополнительный тип доступа, чтобы регулировать его отдельно, пока так.
Давайте по пунктам.
1. Шифрование включено порт 80
2. Сертификаты получены.
3. Скрипт включен.
4. Бот горит зелёным и подключен.
5. Пользователь внизу отражается.
6. В фильтрах добавил Общий доступ с IP *.*.*.*
Может ещё что-то забыл выставить где-то?
last error message: Read timeout expiredЭто значит, что телеграм не може достучаться до вашего сервера.
После настройки фильтра вы перезапустили сервер?
Выполните перезагрузку и зайдите в интеграции там должна пропасть эта ошибка.
[21:50:04] (Error "OfflineMsg2Telegram"): [Error] (35:67): Type mismatch
Может конечно это всё от того что связи нет с ботом.
Вот что ещё заметил в программе скрипт от 2017 года версия 1.1 в инструкции по интеграции версия 1.2 от 2020 года, но и та и другая выдают ошибки при выполнении. 1.2 версия немного отличается от 1.1 условиями. Вот отсюда вопрос какая версия актуальная? Ещё интересность бот отрабатывает добавление пользователя в mychat, а вот сообщения не отправляет может это всё таки из-за ошибки в скрипте?
// send message to Telegram
s := mIntegrationTelegramSendMessage(sID, sOutMsg, 5000);
// -----------------------------------------------------------------------------------
// 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.Чат со мной
Чат со мной
// -----------------------------------------------------------------------------------
// 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.Чат со мной
Чат со мной
