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

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

Freelord
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 01 окт 2021, 12:24

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

Сообщение 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'
Спасибо заранее за помощь.
cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение 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'
Спасибо заранее за помощь.
Попробую ответить в картинках ) на картинках цифрами указана последовательность.
Вложения
QIP Shot - Screen 003.png
QIP Shot - Screen 003.png (6.28 КБ) 67806 просмотров
QIP Shot - Screen 002.png
QIP Shot - Screen 002.png (1.89 КБ) 67806 просмотров
QIP Shot - Screen 001.png
QIP Shot - Screen 001.png (4.89 КБ) 67806 просмотров
cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение 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 - это смущает.
Вложения
QIP Shot - Screen 005.png
QIP Shot - Screen 005.png (62.38 КБ) 67805 просмотров
QIP Shot - Screen 004.png
QIP Shot - Screen 004.png (41.72 КБ) 67805 просмотров
Freelord
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 01 окт 2021, 12:24

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

Сообщение 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. Когда внес изменения для получения текста заявки и сохранил файл, никакого сообщения об ошибке не последовало.
cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение 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');

И повторите попытку с добавлением имени Клиента.
Freelord
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 01 окт 2021, 12:24

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

Сообщение Freelord »

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

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

И повторите попытку с добавлением имени Клиента.
Спасибо огромное за помощь. Теперь работает без ошибки.
svdvovan
OTRS Новобранец
Сообщения: 35
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan »

Вроде все настроил, но в дебаге вот такая ошибка, не пойму - это в настройках дело или провайдер блокирует?

curl проходит
Вложения
2021-10-20_14-43-47.png
2021-10-20_14-43-47.png (24.62 КБ) 67606 просмотров
svdvovan
OTRS Новобранец
Сообщения: 35
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan »

Вот ответ Curl, OTRS 6 использую, настройки прокси не делал
Вложения
2021-10-20_15-17-47.png
2021-10-20_15-17-47.png (15.35 КБ) 67606 просмотров
svdvovan
OTRS Новобранец
Сообщения: 35
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan »

Заработало, разобрался сам - нужно было Perl модули IO::Socket::SSL обновить до последней версии
svdvovan
OTRS Новобранец
Сообщения: 35
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение 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');
не помогло.
Вообще имеет значение в каком месте вставлять код с добавлением имени клиента? я в самый конец дописывал
cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение 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} );
rj_forever
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 15 ноя 2021, 14:56

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

Сообщение rj_forever »

Здравствуйте! Спасибо за статью, настроил по инструкции, но inviker не может загрузиться, в чем может быть проблема?
Вложения
Снимок.JPG
Снимок.JPG (54.35 КБ) 67395 просмотров
alexus
OTRS Гуру
Сообщения: 5220
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 96 раз
Поблагодарили: 84 раза

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

Сообщение alexus »

Добрый день. Может апач надо рестартануть?
С уважением,
Алексей Юсов

Prod: Radiant Service Desk on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
rj_forever
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 15 ноя 2021, 14:56

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

Сообщение rj_forever »

alexus писал(а): 15 ноя 2021, 15:08 Добрый день. Может апач надо рестартануть?
Дёргал apach, не помогло(
rj_forever
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 15 ноя 2021, 14:56

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

Сообщение rj_forever »

rj_forever писал(а): 15 ноя 2021, 15:49
alexus писал(а): 15 ноя 2021, 15:08 Добрый день. Может апач надо рестартануть?
Дёргал apach, не помогло(
Такс, тут вроде разобрался почему инвокер не стартовал. Теперь другой вопрос, почему в outgoing data after mapping параметр chat_id принимает значение junk, хотя по сути должен принимать значение chat_id telegram которое указано?
Вложения
Снимок.JPG
Снимок.JPG (113.63 КБ) 67389 просмотров
Adian
OTRS Новобранец
Сообщения: 1
Зарегистрирован: 16 ноя 2021, 10:44
Поблагодарили: 1 раз

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

Сообщение 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');

но это не точно )
Последний раз редактировалось Adian 16 ноя 2021, 12:25, всего редактировалось 1 раз.
rj_forever
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 15 ноя 2021, 14:56

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

Сообщение 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 которое указано?
Разобрался, спасибо!
svdvovan
OTRS Новобранец
Сообщения: 35
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение 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'.

с чем это связано?
rj_forever
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 15 ноя 2021, 14:56

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

Сообщение rj_forever »

Здравствуйте! Вопрос: Вот эта строчки в TelegramTxt.pm "Changed : $Ticket{Changed}", я так понимаю время создания, а откуда время берется? У меня почему-то - 3 часа. Хотя регионы в системе выставлены правильно.
svdvovan
OTRS Новобранец
Сообщения: 35
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение 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"

А как можно обрезать сообщения? В телеграме похоже лимит длины текста превышен из-за этого не приходят некоторые заявки
alexus
OTRS Гуру
Сообщения: 5220
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 96 раз
Поблагодарили: 84 раза

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

Сообщение alexus »

В Телеграме лимит на 5000 символов, насколько я помню. Надо на вашей стороне планировать, в каком объёме слать нотификации. В любом случае, слать портянки - не есть хорошо.
С уважением,
Алексей Юсов

Prod: Radiant Service Desk on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
svdvovan
OTRS Новобранец
Сообщения: 35
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan »

alexus писал(а): 18 окт 2022, 12:00 В Телеграме лимит на 5000 символов, насколько я помню. Надо на вашей стороне планировать, в каком объёме слать нотификации. В любом случае, слать портянки - не есть хорошо.
А где меняется этот параметр в OTRS?
BezNik2006
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 28 июл 2020, 16:58

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

Сообщение BezNik2006 »

Нужно вначале файла telegramTxt.pm добавить use encoding 'UTF-8'; Тогда русские буквы будут корректно отображаться.
cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение 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;
GeneralKenobi
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 13 окт 2023, 10:12
Благодарил (а): 1 раз

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

Сообщение GeneralKenobi »

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

Есть кто разобрался, но ответов не нашел
Вложения
error-400.png
error-400.png (97.5 КБ) 41570 просмотров
Ответить