Loading...

Использование OSTicket API для создания заявок через telegram бота


07.12.2024г. | 182 | Администрирование | Add Sky

Использование OSTicket API для создания заявок через Telegram-бота

Интеграция OSTicket с Telegram — это удобный способ для автоматизации работы с заявками и повышения удобства пользователей. В данной статье мы рассмотрим процесс создания Telegram-бота, который будет взаимодействовать с API OSTicket для подачи заявок.

Шаг 1: Основы настройки Telegram-бота

Telegram-бот создается с помощью библиотеки aiogram. Бот будет собирать информацию от пользователей и отправлять её в систему OSTicket через API.

В OSTicket необходимо добавить новый ключ API (Панель администратора → Управление → API), указав IP адрес сервера, на котором будет выполняться скрипт. Так же для дальнейшей обработки необходимо добавить доп. поле для записи ChatID telegram в базу OSTicket. Панель администратора → Управление → Формы → Контактная информация , добавляем поле «telegram_chat_id», переменную называем так же.

Пример кода бота

Приведённый ниже код выполняет следующие задачи:

  • Запрашивает у пользователя данные: имя, email, номер телефона, категорию заявки, тип обращения, тему и описание.
  • Отправляет собранные данные в OSTicket API.
  • Отправляет пользователю сообщение о результате.
import httpx
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton, ReplyKeyboardRemove
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.contrib.fsm_storage.memory import MemoryStorage
import re

# Настройки API для OSTicket
OSTICKET_API_URL = 'https://your-osticket-domain.com/api/tickets.json'
OSTICKET_API_KEY = ''

# Ваш Telegram Bot Token
TELEGRAM_BOT_TOKEN = ''
...
 

Скачать скрипт полностью.

Этот скрипт демонстрирует обработку каждого шага общения с пользователем, включая проверку данных (например, email) и отправку API-запроса.

Основные функции:

  1. Сбор данных: Бот пошагово собирает имя, email, номер телефона и другие данные.
  2. Выбор категории и типа обращения: Пользователи могут выбирать из предложенных вариантов через клавиатуру Telegram.
  3. Интеграция с OSTicket API: Данные отправляются в систему с помощью httpx.

Шаг 2: Настройка службы для запуска бота

Для работы бота на сервере создадим сервис systemd. Это обеспечит автоматический запуск и перезапуск бота при сбоях.

  1. Создайте файл сервиса:

    sudo nano /etc/systemd/system/telegram_bot.service 
  2. Добавьте настройки службы:

    [Unit]
    Description=Telegram Bot Service
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/python3 /path/to/your/bot_script.py
    WorkingDirectory=/path/to/your/bot_directory
    StandardOutput=inherit
    StandardError=inherit
    Restart=always
    User=your_username
    
    [Install]
    WantedBy=multi-user.target
    
  3. Запустите службу:

    sudo systemctl daemon-reload
    sudo systemctl start telegram_bot.service
    sudo systemctl enable telegram_bot.service
    

Шаг 3: Подключение OSTicket API

API OSTicket используется для создания заявок. В нашем примере скрипта параметры заявки, такие как name, email, message, type_myticket и topicId, отправляются в формате JSON. Убедитесь, что вы настроили ключ API в панели управления OSTicket и добавили его в скрипт.

Пример запроса

data_to_send = {
    "name": "Иван Иванов",
    "email": "ivan@example.com",
    "phone": "+7 900 123-45-67",
    "subject": "Тема заявки",
    "message": "Описание проблемы",
    "topicId": 1,  # ID категории
    "type_myticket": "Консультация",
    "telegram_chat_id": 123456789
}

headers = {
    "X-API-Key": "your_osticket_api_key",
    "Content-Type": "application/json"
}

async with httpx.AsyncClient() as client:
    response = await client.post("https://your-osticket-domain.com/api/tickets.json", json=data_to_send, headers=headers)

Шаг 4: Тестирование и запуск

После настройки и запуска бота протестируйте:

  1. Начните диалог с ботом через Telegram.
  2. Пройдите все этапы ввода данных.
  3. Проверьте, создалась ли заявка в OSTicket.

Если бот работает корректно, вы сможете принимать заявки от пользователей напрямую через Telegram, экономя время на обработку запросов.

Заключение

Интеграция OSTicket с Telegram через API открывает новые возможности для автоматизации и улучшения клиентского опыта. С помощью бота пользователи могут быстро и удобно оставлять заявки, а сотрудники компании — оперативно обрабатывать их.

Поделиться статьей: