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

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

Модератор: ykolesnikov

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

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

Сообщение 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'
Спасибо заранее за помощь.

cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение cheba » 02 окт 2021, 20:55

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 КБ) 47247 просмотров
QIP Shot - Screen 002.png
QIP Shot - Screen 002.png (1.89 КБ) 47247 просмотров
QIP Shot - Screen 001.png
QIP Shot - Screen 001.png (4.89 КБ) 47247 просмотров

cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение cheba » 02 окт 2021, 20:57

из-за ограничения вложений.
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 КБ) 47246 просмотров
QIP Shot - Screen 004.png
QIP Shot - Screen 004.png (41.72 КБ) 47246 просмотров

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

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

Сообщение 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. Когда внес изменения для получения текста заявки и сохранил файл, никакого сообщения об ошибке не последовало.

cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение cheba » 05 окт 2021, 11:37

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 » 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');

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

svdvovan
OTRS Новобранец
Сообщения: 33
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan » 20 окт 2021, 15:18

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

curl проходит
Вложения
2021-10-20_14-43-47.png
2021-10-20_14-43-47.png (24.62 КБ) 47047 просмотров

svdvovan
OTRS Новобранец
Сообщения: 33
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan » 20 окт 2021, 15:21

Вот ответ Curl, OTRS 6 использую, настройки прокси не делал
Вложения
2021-10-20_15-17-47.png
2021-10-20_15-17-47.png (15.35 КБ) 47047 просмотров

svdvovan
OTRS Новобранец
Сообщения: 33
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan » 20 окт 2021, 16:34

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

svdvovan
OTRS Новобранец
Сообщения: 33
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение 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');
не помогло.
Вообще имеет значение в каком месте вставлять код с добавлением имени клиента? я в самый конец дописывал

cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение cheba » 21 окт 2021, 13:40

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 » 15 ноя 2021, 15:03

Здравствуйте! Спасибо за статью, настроил по инструкции, но inviker не может загрузиться, в чем может быть проблема?
Вложения
Снимок.JPG
Снимок.JPG (54.35 КБ) 46836 просмотров

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

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

Сообщение alexus » 15 ноя 2021, 15:08

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

Prod: OTRS CE ITSM 6.0.28 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 » 15 ноя 2021, 15:49

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

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

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

Сообщение 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 которое указано?
Вложения
Снимок.JPG
Снимок.JPG (113.63 КБ) 46830 просмотров

Adian
OTRS Новобранец
Сообщения: 1
Зарегистрирован: 16 ноя 2021, 10:44
Поблагодарили: 1 раз

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

Сообщение Adian » 16 ноя 2021, 10:49

В общем, если кому надо добавить динамические поля то:

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 » 16 ноя 2021, 10:59

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

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

Сообщение svdvovan » 01 дек 2021, 13:26

Все работает, но периодически приходит вот такое сообщение:

тема: 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 » 15 дек 2021, 09:53

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

svdvovan
OTRS Новобранец
Сообщения: 33
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan » 18 окт 2022, 11:13

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 Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

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

Сообщение alexus » 18 окт 2022, 12:00

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

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

svdvovan
OTRS Новобранец
Сообщения: 33
Зарегистрирован: 02 июн 2016, 10:57
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение svdvovan » 18 окт 2022, 12:45

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

BezNik2006
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 28 июл 2020, 16:58

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

Сообщение BezNik2006 » 29 ноя 2022, 12:28

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

cheba
OTRS Новобранец
Сообщения: 9
Зарегистрирован: 20 май 2021, 13:59
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение cheba » 29 сен 2023, 08:51

В моем случае на 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 » 13 окт 2023, 10:21

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

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

Ответить