Skip to main content

Закладки

ChatLabs Support

ChatLabs Aiogram Support

ChatLabs Aiogram Support - Установка

pip install chatlabs-support[chatlabs_aiogram_support]

Необходимые переменные окружения:

  • BACKEND_SCHEMA
  • BACKEND_HOST
  • BACKEND_PORT

Добавление роутера поддержки в диспетчер:

from aiogram import Dispatcher

from chatlabs_support import chatlabs_aiogram_support as support

dp = Dispatcher()

dp.include_router(support.dialog_router)

Добавление кнопки поддержки в окно:

from aiogram_dialog import Dialog, Window
from aiogram_dialog.widgets.kbd import Start
from aiogram_dialog.widgets.text import Const

from chatlabs_support import chatlabs_aiogram_support as support

Dialog(
    ...,
    Window(
        ...,
        Start(
            text=Const('Поддержка'),
            id='support',
            state=support.main_state,
        ),
        ...,
    ),
    ...,
)

Альтернативный вариант:

from aiogram_dialog import Dialog, Window

from chatlabs_support import chatlabs_aiogram_support as support

Dialog(
    ...,
    Window(
        ...,
        support.SupportStartButton,
        ...,
    ),
    ...,
)

ChatLabs Django Support

ChatLabs Django Support - Установка

pip install chatlabs-support[chatlabs_django_support]

Для привязки тикетов необходимо определить модель пользователя

# myapp/models.py

class MyUser(models.Model):
    telegram_id = models.BigIntegerField(
        primary_key=True,
        unique=True,
    )
    ...

Обратите внимание, что наличие в этой модели поля telegram_id (PK, Unique) - обязательно

# django_project/settings.py

INSTALLED_APPS = [
    'daphne',
    'channels',
    ...,
    'myapp',
    'chatlabs_support.chatlabs_django_support',
]

ASGI_APPLICATION = 'django_project.asgi.application'

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels.layers.InMemoryChannelLayer',
    },
}

SUPPORT_TELEGRAM_USER_MODEL = 'myapp.MyUser'
# django_project/asgi.py

import os

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.core.asgi import get_asgi_application

from chatlabs_support.chatlabs_django_support.routing import ws_urlpatterns

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'example_project.settings')

application = ProtocolTypeRouter({
    'http': get_asgi_application(),
    'websocket': AuthMiddlewareStack(URLRouter(ws_urlpatterns)),
})
# django_project/urls.py

urlpatterns = [
    ...,
    path('support/', include('chatlabs_support.chatlabs_django_support.urls')),
]

ChatLabs Django Support - Отправляемые сообщения

Принять тикет в работу:

{
    "type": "ticket.assign",
    "id": 16 // ID тикета
}

Сообщение просмотрено:

{
    "type": "ticket.message.viewed",
    "ticket_id": 16, // ID тикета
    "message_id": 28 // ID сообщения
}

Отправить сообщение:

{
    "type": "ticket.message.new",
    "ticket_id": 16, // ID тикета
    "text": "The is some text" // текст сообщения
}

Тикет открыт (запросить список сообщений):

{
    "type": "ticket.message.list",
    "ticket_id": 16, // ID тикета
}

ChatLabs Django Support - Получаемые сообщения

Создан новый тикет:

{
    "type": "ticket.created",
    "ticket": {
        "id": 21, // ID тикета
        "user": { // Информация о пользователе
            "telegram_id": 4 // telegram_id пользователя
        },
        "support_manager": null, // назначенный менеджер
        "created_at": "2024-12-29T16:10:38.620768Z", // дата создания
        "title": "have a prob" // заголовок тикета
    }
}

Тикет назначен:

{
    "type": "ticket.assigned",
    "id": 16, // ID тикета
    "support_manager": 1, // ID менеджера
}

Сообщение просмотрено:

{
    "type": "ticket.message.viewed",
    "message": {
        "id": 29, // ID сообщения
        "created_at": "2024-12-29T15:21:18.498325Z", // дата создания
        "sender": "user", // отправитель, "user" - пользователь, "supp" - менеджер
        "text": "jhklhjbkbklb", // текст сообщения
        "viewed": true, // сообщение просмотрено
        "ticket": 16 // ID тикета
    }
}

Новое сообщение:

{
    "type": "ticket.message.new",
    "message": {
        "id": 31, // ID сообщения
        "created_at": "2024-12-29T16:08:04.267002Z", // дата создания
        "sender": "supp", // отправитель, "user" - пользователь, "supp" - менеджер
        "text": "some_text", // текст сообщения
        "viewed": true, // сообщение просмотрено
        "ticket": 16 // ID тикета
    }
}

Список сообщений в тикете:

{
    "type": "ticket.message.list",
    "ticket_id": 16, // ID тикета
    "messages": [
        {
            "id": 31, // ID сообщения
            "created_at": "2024-12-29T16:08:04.267002Z", // дата создания
            "sender": "supp", // отправитель, "user" - пользователь, "supp" - менеджер
            "text": "some_text", // текст сообщения
            "viewed": true, // сообщение просмотрено
            "ticket": 16 // ID тикета
        },
        {
            "id": 30, // ID сообщения
            "created_at": "2024-12-29T15:22:01.299698Z", // дата создания
            "sender": "user", // отправитель, "user" - пользователь, "supp" - менеджер
            "text": "jhklhjbkbklb", // текст сообщения
            "viewed": false, // сообщение просмотрено
            "ticket": 16 // ID тикета
        },
    ]
}

Metadata

Release files for chatlabs-support 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chatlabs-support 0.1.5
File Size Uploaded
chatlabs_support-0.1.5.tar.gz 12.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chatlabs-support 0.1.5
File Interpreter ABI Platform
chatlabs_support-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 34.6 kB

Release files / chatlabs_support-0.1.5.tar.gz

Download URL chatlabs_support-0.1.5.tar.gz
Size 12.3 kB
Tags Source
SHA-256 checksum
How to use checksums
373c1e94833e10f1b353c3728bf369cd6ccda213cef9a14dc310b225b01c3e14
BLAKE2b-256 checksum
How to use checksums
a3867841eedb937ab56373a6af7bc4abb5bf28f011a1311b67779334013d7a73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.11.11 Linux/6.8.0-1017-azure

Release files / chatlabs_support-0.1.5-py3-none-any.whl

Download URL chatlabs_support-0.1.5-py3-none-any.whl
Size 22.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ada16711cf13dd05d4a892af8cac350c38b50dc6a817d3ea5e1bfaf592d9eff8
BLAKE2b-256 checksum
How to use checksums
abcd9430452c9de205f7ffea6aa6f7069d5a13ab3534dc3c337bcb2d97710d9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.11.11 Linux/6.8.0-1017-azure

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page