No project description provided
Project description
Закладки
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 тикета
},
]
}
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chatlabs_support-0.1.5.tar.gz.
File metadata
- Download URL: chatlabs_support-0.1.5.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.11.11 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
373c1e94833e10f1b353c3728bf369cd6ccda213cef9a14dc310b225b01c3e14
|
|
| MD5 |
77e3254386cf163e657a9e6ed3bbf280
|
|
| BLAKE2b-256 |
a3867841eedb937ab56373a6af7bc4abb5bf28f011a1311b67779334013d7a73
|
File details
Details for the file chatlabs_support-0.1.5-py3-none-any.whl.
File metadata
- Download URL: chatlabs_support-0.1.5-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.11.11 Linux/6.8.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ada16711cf13dd05d4a892af8cac350c38b50dc6a817d3ea5e1bfaf592d9eff8
|
|
| MD5 |
b1fcc21860307240dd208c01fa8f969d
|
|
| BLAKE2b-256 |
abcd9430452c9de205f7ffea6aa6f7069d5a13ab3534dc3c337bcb2d97710d9a
|