Skip to main content

No project description provided

Project description

Закладки

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 тикета
        },
    ]
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatlabs_support-0.1.3.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatlabs_support-0.1.3-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file chatlabs_support-0.1.3.tar.gz.

File metadata

  • Download URL: chatlabs_support-0.1.3.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.11.11 Linux/6.8.0-1017-azure

File hashes

Hashes for chatlabs_support-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ef4d4e4ae349410662b1c0afc15f0665fd540e7e6e332a1cda8233ba49a9b2c7
MD5 5d295b45198d8de8124f835c7081c167
BLAKE2b-256 35c984990aef089cd5244259bf2586ce134559544d4c0ae410d8b3ea757ca099

See more details on using hashes here.

File details

Details for the file chatlabs_support-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: chatlabs_support-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.11.11 Linux/6.8.0-1017-azure

File hashes

Hashes for chatlabs_support-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c0833e2d63a9e17a64d2158f0ad58486434f6f051981566ab31e19af0d1b84de
MD5 abbfff6a8c25c83917b2e33d4237e05a
BLAKE2b-256 4a6265e7ea1b5532a40b3d1004c774af555b422b7274f1ef39edf0ba6c72c680

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page