Закладки
ChatLabs Support
ChatLabs Aiogram Support
ChatLabs Aiogram Support - Установка
pip install chatlabs-support[chatlabs_aiogram_support]
Необходимые переменные окружения:
BACKEND_SCHEMABACKEND_HOSTBACKEND_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)
| File | Size | Uploaded | |
|---|---|---|---|
| chatlabs_support-0.1.5.tar.gz | 12.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|