Страница 2 из 3

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 01 окт 2021, 12:41
Freelord
Спасибо огромное за статью.
Очень требуется помощь.
Имеется бот и только один канал.
Вроде, все верно по статье настроил, но так и не понял, в каком месте нужно указывать chat_id и как настроить отправку сообщений в канал только для одной очереди otrs?
Все время выдает ошибку:
Response content: '{"ok":false,"error_code":400,"description":"Bad Request: chat_id is empty"}'
Error while performing REST 'POST' request to Controller 'sendMessage' on Host 'https://api.telegram.org/bot2XXXXX:XYXERTYXZUUUIE'. Response code '400'
Спасибо заранее за помощь.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 02 окт 2021, 20:55
cheba
Freelord писал(а):
01 окт 2021, 12:41
Спасибо огромное за статью.
Очень требуется помощь.
Имеется бот и только один канал.
Вроде, все верно по статье настроил, но так и не понял, в каком месте нужно указывать chat_id и как настроить отправку сообщений в канал только для одной очереди otrs?
Все время выдает ошибку:
Response content: '{"ok":false,"error_code":400,"description":"Bad Request: chat_id is empty"}'
Error while performing REST 'POST' request to Controller 'sendMessage' on Host 'https://api.telegram.org/bot2XXXXX:XYXERTYXZUUUIE'. Response code '400'
Спасибо заранее за помощь.
Попробую ответить в картинках ) на картинках цифрами указана последовательность.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 02 окт 2021, 20:57
cheba
из-за ограничения вложений.
Freelord писал(а):
01 окт 2021, 12:41
Response content: '{"ok":false,"error_code":400,"description":"Bad Request: chat_id is empty"}'
Error while performing REST 'POST' request to Controller 'sendMessage' on Host 'https://api.telegram.org/bot2XXXXX:XYXERTYXZUUUIE'. Response code '400'
И сразу вопрос, а вы token бота указали? https://api.telegram.org/bot2XXXXX:XYXERTYXZUUUIE - это смущает.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 04 окт 2021, 14:47
Freelord
Спасибо за помощь. Смешно получилось. В пятницу перед уходом с работы еще раз прикинул, что на что должно меняться, сделал настройки и ушел домой. А сегодня утром обнаружил, что сообщения успешно отправляются в канал. :)
Но, возникла другая проблемма. Хотел добавить в сообщения информацию об имени клиента и тему тикета. Для этого в файл
/opt/otrs/Custom/Kernel/GenericInterface/Invoker/Telegram/TelegramTxt.pm внес изменения, как указанно выше:

my %CustomerUser = $CustomerUserObject->CustomerUserDataGet(
User => $Ticket{CustomerUserID} ,
);

($TeleText{Data}->{text}=qq{
NEW: #$Ticket{TicketNumber}
Department: $Ticket{CustomerID}
Person ID: $Ticket{CustomerUserID}
Person: $CustomerUser{UserFirstname} $CustomerUser{UserLastname}
Title: $Ticket{Title}
Type: $Ticket{Type}
Changed : $Ticket{Changed}
}) =~ s/^[\t ]*//mg;
Но, после сохранения изменений инвокер постоянно пишет ошибку:

$VAR1 = {
'ErrorMessage' => 'Can\'t load invoker backend module!',
'Success' => 0
};

После удаления внесенных изменений все опять функционирует.
Может, кто знает, как эту ошибку победить?
Спасибо.

P.S. Когда внес изменения для получения текста заявки и сохранил файл, никакого сообщения об ошибке не последовало.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 05 окт 2021, 11:37
cheba
Freelord писал(а):
04 окт 2021, 14:47
Спасибо за помощь. Смешно получилось. В пятницу перед уходом с работы еще раз прикинул, что на что должно меняться, сделал настройки и ушел домой. А сегодня утром обнаружил, что сообщения успешно отправляются в канал. :)
Но, возникла другая проблемма. Хотел добавить в сообщения информацию об имени клиента и тему тикета. Для этого в файл
/opt/otrs/Custom/Kernel/GenericInterface/Invoker/Telegram/TelegramTxt.pm внес изменения, как указанно выше:

my %CustomerUser = $CustomerUserObject->CustomerUserDataGet(
User => $Ticket{CustomerUserID} ,
);

($TeleText{Data}->{text}=qq{
NEW: #$Ticket{TicketNumber}
Department: $Ticket{CustomerID}
Person ID: $Ticket{CustomerUserID}
Person: $CustomerUser{UserFirstname} $CustomerUser{UserLastname}
Title: $Ticket{Title}
Type: $Ticket{Type}
Changed : $Ticket{Changed}
}) =~ s/^[\t ]*//mg;
Но, после сохранения изменений инвокер постоянно пишет ошибку:

$VAR1 = {
'ErrorMessage' => 'Can\'t load invoker backend module!',
'Success' => 0
};

После удаления внесенных изменений все опять функционирует.
Может, кто знает, как эту ошибку победить?
Спасибо.

P.S. Когда внес изменения для получения текста заявки и сохранил файл, никакого сообщения об ошибке не последовало.
Доброго времени суток.
добавьте вот это:
my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser');

под этой строчкой:
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');

И повторите попытку с добавлением имени Клиента.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 05 окт 2021, 12:13
Freelord
cheba писал(а):
05 окт 2021, 11:37

Доброго времени суток.
добавьте вот это:
my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser');

под этой строчкой:
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');

И повторите попытку с добавлением имени Клиента.
Спасибо огромное за помощь. Теперь работает без ошибки.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 20 окт 2021, 15:18
svdvovan
Вроде все настроил, но в дебаге вот такая ошибка, не пойму - это в настройках дело или провайдер блокирует?

curl проходит

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 20 окт 2021, 15:21
svdvovan
Вот ответ Curl, OTRS 6 использую, настройки прокси не делал

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 20 окт 2021, 16:34
svdvovan
Заработало, разобрался сам - нужно было Perl модули IO::Socket::SSL обновить до последней версии

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 21 окт 2021, 09:31
svdvovan
Freelord писал(а):
05 окт 2021, 12:13
cheba писал(а):
05 окт 2021, 11:37

Доброго времени суток.
добавьте вот это:
my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser');

под этой строчкой:
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');

И повторите попытку с добавлением имени Клиента.
Спасибо огромное за помощь. Теперь работает без ошибки.
Такая же проблемы - при добавлении кода:

my %CustomerUser = $CustomerUserObject->CustomerUserDataGet(
User => $Ticket{CustomerUserID} ,
);
($TeleText{Data}->{text}=qq{
NEW: #$Ticket{TicketNumber}
Department: $Ticket{CustomerID}
Person ID: $Ticket{CustomerUserID}
Person: $CustomerUser{UserFirstname} $CustomerUser{UserLastname}
Title: $Ticket{Title}
Type: $Ticket{Type}
Changed : $Ticket{Changed}
}) =~ s/^[\t ]*//mg;

в дебаге выскакивает ошибка:

$VAR1 = {
'ErrorMessage' => 'Can\'t load invoker backend module!',
'Success' => 0
};

Эти строки добавлял:

my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser');
не помогло.
Вообще имеет значение в каком месте вставлять код с добавлением имени клиента? я в самый конец дописывал

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 21 окт 2021, 13:40
cheba
svdvovan писал(а):
21 окт 2021, 09:31
Freelord писал(а):
05 окт 2021, 12:13
cheba писал(а):
05 окт 2021, 11:37

Доброго времени суток.
добавьте вот это:
my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser');

под этой строчкой:
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');

И повторите попытку с добавлением имени Клиента.
Спасибо огромное за помощь. Теперь работает без ошибки.
Такая же проблемы - при добавлении кода:

my %CustomerUser = $CustomerUserObject->CustomerUserDataGet(
User => $Ticket{CustomerUserID} ,
);
($TeleText{Data}->{text}=qq{
NEW: #$Ticket{TicketNumber}
Department: $Ticket{CustomerID}
Person ID: $Ticket{CustomerUserID}
Person: $CustomerUser{UserFirstname} $CustomerUser{UserLastname}
Title: $Ticket{Title}
Type: $Ticket{Type}
Changed : $Ticket{Changed}
}) =~ s/^[\t ]*//mg;

в дебаге выскакивает ошибка:

$VAR1 = {
'ErrorMessage' => 'Can\'t load invoker backend module!',
'Success' => 0
};

Эти строки добавлял:

my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser');
не помогло.
Вообще имеет значение в каком месте вставлять код с добавлением имени клиента? я в самый конец дописывал
Конечно имеет. Я же указал где нужно вставить код.
svdvovan писал(а):
21 окт 2021, 09:31
my %CustomerUser = $CustomerUserObject->CustomerUserDataGet(
User => $Ticket{CustomerUserID} ,
);
Вот это попробуйте заменить на:
my %CustomerUser = $CustomerUserObject->CustomerUserDataGet( User => $Ticket{CustomerUserID} );

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 15 ноя 2021, 15:03
rj_forever
Здравствуйте! Спасибо за статью, настроил по инструкции, но inviker не может загрузиться, в чем может быть проблема?

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 15 ноя 2021, 15:08
alexus
Добрый день. Может апач надо рестартануть?

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 15 ноя 2021, 15:49
rj_forever
alexus писал(а):
15 ноя 2021, 15:08
Добрый день. Может апач надо рестартануть?
Дёргал apach, не помогло(

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 16 ноя 2021, 09:48
rj_forever
rj_forever писал(а):
15 ноя 2021, 15:49
alexus писал(а):
15 ноя 2021, 15:08
Добрый день. Может апач надо рестартануть?
Дёргал apach, не помогло(
Такс, тут вроде разобрался почему инвокер не стартовал. Теперь другой вопрос, почему в outgoing data after mapping параметр chat_id принимает значение junk, хотя по сути должен принимать значение chat_id telegram которое указано?

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 16 ноя 2021, 10:49
Adian
В общем, если кому надо добавить динамические поля то:

DynamicFields => 0, # Optional, default 0. To include the dynamic field values for this ticket on the return structure.
тут меняем на 1

После:
($TeleText{Data}->{text}=qq{

добавляем:
SomeName: $Ticket{'DynamicField_YourDynamicFieldName'}

ПС
возможно понадобятся строчки
my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField');
my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField::Backend');

после
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');

но это не точно )

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 16 ноя 2021, 10:59
rj_forever
rj_forever писал(а):
16 ноя 2021, 09:48
rj_forever писал(а):
15 ноя 2021, 15:49
alexus писал(а):
15 ноя 2021, 15:08
Добрый день. Может апач надо рестартануть?
Дёргал apach, не помогло(
Такс, тут вроде разобрался почему инвокер не стартовал. Теперь другой вопрос, почему в outgoing data after mapping параметр chat_id принимает значение junk, хотя по сути должен принимать значение chat_id telegram которое указано?
Разобрался, спасибо!

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 01 дек 2021, 13:26
svdvovan
Все работает, но периодически приходит вот такое сообщение:

тема: OTRS Scheduler Daemon GenericInterface: Telegram WebService: Telegram
сообщение:
Error while performing REST 'POST' request to Controller 'sendMessage' on Host
'https://api.telegram.org/bot2027742257: ... xxxxxxxxxx. Response
code '400'.

с чем это связано?

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 15 дек 2021, 09:53
rj_forever
Здравствуйте! Вопрос: Вот эта строчки в TelegramTxt.pm "Changed : $Ticket{Changed}", я так понимаю время создания, а откуда время берется? У меня почему-то - 3 часа. Хотя регионы в системе выставлены правильно.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 18 окт 2022, 11:13
svdvovan
DebugLog error: Summary: Error while performing REST 'POST' request to Controller 'sendMessage' on Host 'https://api.telegram.org/bot***************'. Response code '400'. Data : Response content: '{"ok":false,"error_code":400,"description":"Bad Request: message is too long"

А как можно обрезать сообщения? В телеграме похоже лимит длины текста превышен из-за этого не приходят некоторые заявки

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 18 окт 2022, 12:00
alexus
В Телеграме лимит на 5000 символов, насколько я помню. Надо на вашей стороне планировать, в каком объёме слать нотификации. В любом случае, слать портянки - не есть хорошо.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 18 окт 2022, 12:45
svdvovan
alexus писал(а):
18 окт 2022, 12:00
В Телеграме лимит на 5000 символов, насколько я помню. Надо на вашей стороне планировать, в каком объёме слать нотификации. В любом случае, слать портянки - не есть хорошо.
А где меняется этот параметр в OTRS?

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 29 ноя 2022, 12:28
BezNik2006
Нужно вначале файла telegramTxt.pm добавить use encoding 'UTF-8'; Тогда русские буквы будут корректно отображаться.

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 29 сен 2023, 08:51
cheba
В моем случае на use encoding 'UTF-8'; вылезала ошибка
The encoding pragma is no longer supported. Check cperl at /opt/otrs/Custom/Kernel/GenericInterface/Invoker/Telegram/TelegramTxt.pm line 8.

Изменил use encoding 'UTF-8'; на use utf8;

Re: Интеграция OTRS -> Telegram (1)

Добавлено: 13 окт 2023, 10:21
GeneralKenobi
при отправке тикета, выдает ошибку Response content: '{"ok":false,"error_code":400,"description":"Bad Request: chat not found"}'
по curl отправлял все отлично приходит.
прокси не делал

Есть кто разобрался, но ответов не нашел