Интеграция OTRS -> Telegram (1)
Модератор: ykolesnikov
Re: Интеграция OTRS -> Telegram (1)
Спасибо огромное за статью.
Очень требуется помощь.
Имеется бот и только один канал.
Вроде, все верно по статье настроил, но так и не понял, в каком месте нужно указывать 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'
Спасибо заранее за помощь.
Очень требуется помощь.
Имеется бот и только один канал.
Вроде, все верно по статье настроил, но так и не понял, в каком месте нужно указывать 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)
Попробую ответить в картинках ) на картинках цифрами указана последовательность.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 (6.28 КБ) 15534 просмотра
-
- QIP Shot - Screen 002.png (1.89 КБ) 15534 просмотра
-
- QIP Shot - Screen 001.png (4.89 КБ) 15534 просмотра
Re: Интеграция OTRS -> Telegram (1)
из-за ограничения вложений.
И сразу вопрос, а вы token бота указали? https://api.telegram.org/bot2XXXXX:XYXERTYXZUUUIE - это смущает.Freelord писал(а): ↑01 окт 2021, 12:41Response 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 005.png (62.38 КБ) 15533 просмотра
-
- QIP Shot - Screen 004.png (41.72 КБ) 15533 просмотра
Re: Интеграция OTRS -> Telegram (1)
Спасибо за помощь. Смешно получилось. В пятницу перед уходом с работы еще раз прикинул, что на что должно меняться, сделал настройки и ушел домой. А сегодня утром обнаружил, что сообщения успешно отправляются в канал. 
Но, возникла другая проблемма. Хотел добавить в сообщения информацию об имени клиента и тему тикета. Для этого в файл
/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. Когда внес изменения для получения текста заявки и сохранил файл, никакого сообщения об ошибке не последовало.

Но, возникла другая проблемма. Хотел добавить в сообщения информацию об имени клиента и тему тикета. Для этого в файл
/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)
Доброго времени суток.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)
Спасибо огромное за помощь. Теперь работает без ошибки.cheba писал(а): ↑05 окт 2021, 11:37
Доброго времени суток.
добавьте вот это:
my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser');
под этой строчкой:
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');
И повторите попытку с добавлением имени Клиента.
-
- OTRS Новобранец
- Сообщения: 33
- Зарегистрирован: 02 июн 2016, 10:57
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Интеграция OTRS -> Telegram (1)
Вроде все настроил, но в дебаге вот такая ошибка, не пойму - это в настройках дело или провайдер блокирует?
curl проходит
curl проходит
- Вложения
-
- 2021-10-20_14-43-47.png (24.62 КБ) 15334 просмотра
-
- OTRS Новобранец
- Сообщения: 33
- Зарегистрирован: 02 июн 2016, 10:57
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Интеграция OTRS -> Telegram (1)
Вот ответ Curl, OTRS 6 использую, настройки прокси не делал
- Вложения
-
- 2021-10-20_15-17-47.png (15.35 КБ) 15334 просмотра
-
- OTRS Новобранец
- Сообщения: 33
- Зарегистрирован: 02 июн 2016, 10:57
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Интеграция OTRS -> Telegram (1)
Заработало, разобрался сам - нужно было Perl модули IO::Socket::SSL обновить до последней версии
-
- OTRS Новобранец
- Сообщения: 33
- Зарегистрирован: 02 июн 2016, 10:57
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
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');
И повторите попытку с добавлением имени Клиента.
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)
Конечно имеет. Я же указал где нужно вставить код.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');
не помогло.
Вообще имеет значение в каком месте вставлять код с добавлением имени клиента? я в самый конец дописывал
Вот это попробуйте заменить на:
my %CustomerUser = $CustomerUserObject->CustomerUserDataGet( User => $Ticket{CustomerUserID} );
-
- OTRS Новобранец
- Сообщения: 5
- Зарегистрирован: 15 ноя 2021, 14:56
Re: Интеграция OTRS -> Telegram (1)
Здравствуйте! Спасибо за статью, настроил по инструкции, но inviker не может загрузиться, в чем может быть проблема?
- Вложения
-
- Снимок.JPG (54.35 КБ) 15123 просмотра
-
- OTRS Гуру
- Сообщения: 5186
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 90 раз
- Поблагодарили: 81 раз
Re: Интеграция OTRS -> Telegram (1)
Добрый день. Может апач надо рестартануть?
С уважением,
Алексей Юсов
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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
-
- OTRS Новобранец
- Сообщения: 5
- Зарегистрирован: 15 ноя 2021, 14:56
-
- OTRS Новобранец
- Сообщения: 5
- Зарегистрирован: 15 ноя 2021, 14:56
Re: Интеграция OTRS -> Telegram (1)
Такс, тут вроде разобрался почему инвокер не стартовал. Теперь другой вопрос, почему в outgoing data after mapping параметр chat_id принимает значение junk, хотя по сути должен принимать значение chat_id telegram которое указано?
- Вложения
-
- Снимок.JPG (113.63 КБ) 15117 просмотров
Re: Интеграция OTRS -> Telegram (1)
В общем, если кому надо добавить динамические поля то:
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');
но это не точно )
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 раз.
-
- OTRS Новобранец
- Сообщения: 5
- Зарегистрирован: 15 ноя 2021, 14:56
Re: Интеграция OTRS -> Telegram (1)
Разобрался, спасибо!rj_forever писал(а): ↑16 ноя 2021, 09:48Такс, тут вроде разобрался почему инвокер не стартовал. Теперь другой вопрос, почему в outgoing data after mapping параметр chat_id принимает значение junk, хотя по сути должен принимать значение chat_id telegram которое указано?
-
- OTRS Новобранец
- Сообщения: 33
- Зарегистрирован: 02 июн 2016, 10:57
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Интеграция OTRS -> Telegram (1)
Все работает, но периодически приходит вот такое сообщение:
тема: 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'.
с чем это связано?
тема: 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'.
с чем это связано?
-
- OTRS Новобранец
- Сообщения: 5
- Зарегистрирован: 15 ноя 2021, 14:56
Re: Интеграция OTRS -> Telegram (1)
Здравствуйте! Вопрос: Вот эта строчки в TelegramTxt.pm "Changed : $Ticket{Changed}", я так понимаю время создания, а откуда время берется? У меня почему-то - 3 часа. Хотя регионы в системе выставлены правильно.
-
- OTRS Новобранец
- Сообщения: 33
- Зарегистрирован: 02 июн 2016, 10:57
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Интеграция OTRS -> Telegram (1)
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"
А как можно обрезать сообщения? В телеграме похоже лимит длины текста превышен из-за этого не приходят некоторые заявки
А как можно обрезать сообщения? В телеграме похоже лимит длины текста превышен из-за этого не приходят некоторые заявки
-
- OTRS Гуру
- Сообщения: 5186
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 90 раз
- Поблагодарили: 81 раз
Re: Интеграция OTRS -> Telegram (1)
В Телеграме лимит на 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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
-
- OTRS Новобранец
- Сообщения: 33
- Зарегистрирован: 02 июн 2016, 10:57
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
-
- OTRS Новобранец
- Сообщения: 3
- Зарегистрирован: 28 июл 2020, 16:58
Re: Интеграция OTRS -> Telegram (1)
Нужно вначале файла telegramTxt.pm добавить use encoding 'UTF-8'; Тогда русские буквы будут корректно отображаться.