سرویس وبهوک
با استفاده از سرویس وبهوک، امکان دریافت اعلانهای لحظهای از رخدادهای مرتبط با حساب باسلام خود را خواهید داشت. ایجاد و مدیریت اشتراکهای وبهوک، مدیریت انواع مختلف رخدادها، نظارت بر لاگها و وضعیت تحویل وبهوک و ایجاد و حذف کلاینتها در وبهوک.
فهرست مطالب
متدهای وبهوک
متد | توضیحات | پارامترها |
---|---|---|
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