Skip to Content

سرویس وب‌هوک

با استفاده از سرویس وب‌هوک، امکان دریافت اعلان‌های لحظه‌ای از رخدادهای مرتبط با حساب باسلام خود را خواهید داشت. ایجاد و مدیریت اشتراک‌های وب‌هوک، مدیریت انواع مختلف رخدادها، نظارت بر لاگ‌ها و وضعیت تحویل وب‌هوک و ایجاد و حذف کلاینت‌ها در وب‌هوک.

فهرست مطالب

متد‌های وب‌هوک

متدتوضیحاتپارامترها
get_webhook_services()دریافت سرویس‌های وب‌هوکNone
create_webhook_service()ایجاد یک سرویس وب‌هوک جدیدrequest
get_webhooks()دریافت لیست وب‌هوک‌هاservice_id، event_ids
create_webhook()ایجاد یک وب‌هوک جدیدrequest
update_webhook()به‌روزرسانی یک وب‌هوکwebhook_id، request
delete_webhook()حذف یک وب‌هوکwebhook_id
get_webhook_events()دریافت رویدادهای قابل استفادهNone
get_webhook_customers()دریافت مشتریان متصل به وب‌هوکpage، per_page، webhook_id
get_webhook_logs()دریافت لاگ‌های یک وب‌هوکwebhook_id
register_webhook()ثبت مشتری در یک وب‌هوکrequest
unregister_webhook()لغو ثبت مشتری از یک وب‌هوکrequest
get_registered_webhooks()دریافت وب‌هوک‌هایی که مشتری در آن‌ها ثبت شده استpage، per_page، service_id

مثال‌ها

پیکربندی اولیه

from basalam_sdk import BasalamClient, PersonalToken auth = PersonalToken( token="your_access_token", refresh_token="your_refresh_token" ) client = BasalamClient(auth=auth)

دریافت سرویس‌های وب‌هوک

async def get_webhook_services_example(): services = await client.get_webhook_services() return services

ایجاد سرویس وب‌هوک

from basalam_sdk.webhook.models import CreateServiceRequest async def create_webhook_service_example(): service = await client.create_webhook_service( request=CreateServiceRequest( title="My Webhook Service", description="Service for handling order notifications" ) ) return service

دریافت وب‌هوک‌ها

async def get_webhooks_example(): webhooks = await client.get_webhooks( service_id=1, event_ids="1,2,3" ) return webhooks

ایجاد وب‌هوک

from basalam_sdk.webhook.models import CreateWebhookRequest async def create_webhook_example(): webhook = await client.create_webhook( request=CreateWebhookRequest( service_id=1, event_ids=[1, 2], request_headers="Content-Type: application/json", request_method=RequestMethodType.POST, # Enum: POST, PUT, PATCH url="https://your-app.com/webhook", is_active=True ) ) return webhook

به‌روزرسانی وب‌هوک

from basalam_sdk.webhook.models import UpdateWebhookRequest async def update_webhook_example(): updated_webhook = await client.update_webhook( webhook_id=123, request=UpdateWebhookRequest( event_ids=[1, 2, 3], request_headers="Content-Type: application/json", request_method=RequestMethodType.POST, url="https://your-app.com/webhook", is_active=False ) ) return updated_webhook

حذف وب‌هوک

async def delete_webhook_example(): result = await client.delete_webhook(webhook_id=123) return result

دریافت رخدادهای وب‌هوک

async def get_webhook_events_example(): events = await client.get_webhook_events() return events

نمونه پاسخ

EventListResource( data=[ EventResource( id=1, name='CHAT_RECEIVED_MESSAGE', description='پیام دریافتی گفتگوی باسلام', sample_data={ 'id': 0, 'chat_id': 0, 'message': { 'text': 'string', 'files': [ {'id': 0, 'url': 'string', 'width': 0, 'height': 0} ], 'links': {}, 'entity_id': 0 }, 'seen_at': None, 'sender_id': 0, 'created_at': 'string', 'updated_at': 'string', 'message_type': MessageTypeEnum.TEXT, 'message_source': None }, scopes='customer.chat.read' ) ], result_count=9, total_count=None, total_page=None, page=1, per_page=10 )

برای مطالعه دسترسی موردنیاز برای هر نوع رخداد به این سند مراجعه کنید.

دریافت مشتریان وب‌هوک

async def get_webhook_customers_example(): customers = await client.get_webhook_customers( page=1, per_page=10, webhook_id=123 ) return customers

دریافت لاگ‌های وب‌هوک

async def get_webhook_logs_example(): logs = await client.get_webhook_logs(webhook_id=123) return logs

عضویت کاربر در وب‌هوک

from basalam_sdk.webhook.models import RegisterClientRequest async def register_webhook_example(): result = await client.register_webhook( request=RegisterClientRequest( webhook_id=123 ) ) return result

لغو عضویت کاربر از وب‌هوک

from basalam_sdk.webhook.models import UnRegisterClientRequest async def unregister_webhook_example(): result = await client.unregister_webhook( request=UnRegisterClientRequest( webhook_id=123, customer_id=456 ) ) return result

دریافت وب‌هوک‌های عضوشده

async def get_registered_webhooks_example(): webhooks = await client.get_registered_webhooks( page=1, per_page=10, service_id=1 ) return webhooks
Last updated on