سرویس گفتوگو
مدیریت پیامها و قابلیتهای گفتوگو با استفاده از سرویس گفتوگو (چت). این سرویس ابزارهای جامعی برای مدیریت مکالمات، پیامها و تعاملات گفتوگو فراهم میکند: ایجاد و مدیریت گفتوگوها، ارسال و دریافت پیامها، مدیریت انواع مختلف پیام، فوروارد پیام، بهروزرسانیهای پیامها و بات باسلام.
فهرست مطالب
متدهای گفتوگو
| متد | توضیحات | پارامترها |
|---|---|---|
create_message() | ایجاد پیام | request: MessageRequest |
create_chat() | ایجاد گفتوگو | request: CreateChatRequest |
get_messages() | دریافت پیامهای یک گفتوگو | request: GetMessagesRequest |
get_chats() | دریافت لیست گفتوگوها | request: GetChatsRequest |
edit_message() | ویرایش یک پیام موجود | request: EditMessageRequest |
delete_message() | حذف پیامها | request: DeleteMessageRequest |
delete_chats() | حذف چند گفتوگو | request: DeleteChatsRequest |
forward_message() | فوروارد پیامها | request: ForwardMessageRequest |
get_unseen_chat_count() | دریافت تعداد گفتوگوهای خوانده نشده | None |
متدهای بات
متدهای API بات به شما اجازه میدهند با عملکردهای مرتبط با بات تعامل داشته باشید. همه متدهای بات نیاز به یک توکن بات به فرمت: {bot_id}:{token_string} دارند (مثال: “123456789:ABCdefGHIjklMNOpqrsTUVwxyz”)
| متد | توضیحات | پارامترها |
|---|---|---|
get_webhook_info() | دریافت اطلاعات وبهوک (GET) | token: str |
get_webhook_info_post() | دریافت اطلاعات وبهوک (POST) | token: str |
log_out() | خروج بات (GET) | token: str |
log_out_post() | خروج بات (POST) | token: str |
delete_webhook() | حذف وبهوک (GET) | token: str |
delete_webhook_post() | حذف وبهوک (POST) | token: str |
delete_webhook_delete() | حذف وبهوک (DELETE) | token: str |
get_me() | دریافت اطلاعات بات (GET) | token: str |
get_me_post() | دریافت اطلاعات بات (POST) | token: str |
مثالها
پیکربندی اولیه
from basalam_sdk import BasalamClient, PersonalToken
auth = PersonalToken(
token="your_access_token",
refresh_token="your_refresh_token"
)
client = BasalamClient(auth=auth)ایجاد پیام
import asyncio
from basalam_sdk.chat.models import MessageRequest, MessageTypeEnum, MessageInput
async def create_message_example():
request = MessageRequest(
chat_id=123,
message_type=MessageTypeEnum.TEXT,
content=MessageInput(
text="سلام، چطور میتونم کمکتون کنم؟"
)
)
message = await client.create_message(request=request)
return messageایجاد گفتوگو
import asyncio
from basalam_sdk.chat.models import CreateChatRequest
async def create_chat_example():
request = CreateChatRequest(
user_id=123
)
new_chat = await client.create_chat(request=request)
return new_chatدریافت پیامها
import asyncio
from basalam_sdk.chat.models import GetMessagesRequest
async def get_messages_example():
request = GetMessagesRequest(
chat_id=123,
message_id=456,
limit=20,
order="desc",
)
messages = await client.get_messages(request=request)
return messagesدریافت لیست گفتوگوها
import asyncio
from basalam_sdk.chat.models import GetChatsRequest, MessageOrderByEnum, MessageFiltersEnum
async def get_chats_example():
request = GetChatsRequest(
limit=30,
order_by=MessageOrderByEnum.UPDATED_AT,
filters=MessageFiltersEnum.UNSEEN
)
chats = await client.get_chats(request=request)
return chatsویرایش پیام
import asyncio
from basalam_sdk.chat.models import EditMessageRequest, MessageInput
async def edit_message_example():
request = EditMessageRequest(
message_id=456,
content=MessageInput(
text="متن پیام بهروزرسانی شده"
)
)
result = await client.chat.edit_message(request=request)
return resultحذف پیام
import asyncio
from basalam_sdk.chat.models import DeleteMessageRequest
async def delete_message_example():
request = DeleteMessageRequest(
message_ids=[456, 457]
)
result = await client.chat.delete_message(request=request)
return resultحذف گفتوگوها
import asyncio
from basalam_sdk.chat.models import DeleteChatsRequest
async def delete_chats_example():
request = DeleteChatsRequest(
chat_ids=[123, 456, 789]
)
result = await client.chat.delete_chats(request=request)
return resultفوروارد پیام
import asyncio
from basalam_sdk.chat.models import ForwardMessageRequest
async def forward_message_example():
request = ForwardMessageRequest(
message_ids=[456, 457],
chat_ids=[789]
)
result = await client.chat.forward_message(request=request)
return resultدریافت تعداد گفتوگوهای خوانده نشده
import asyncio
async def get_unseen_chat_count_example():
count = await client.chat.get_unseen_chat_count()
print(f"چتهای خوانده نشده: {count}")
return countدریافت اطلاعات وبهوک
import asyncio
async def get_webhook_info_example():
# استفاده از متد GET
result = await client.chat.get_webhook_info(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
print(f"اطلاعات Webhook: {result}")
# استفاده از متد POST
result = await client.chat.get_webhook_info_post(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return result
# نسخه همگام
def get_webhook_info_sync_example():
result = client.chat.get_webhook_info_sync(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return resultخروج بات
import asyncio
async def log_out_example():
# استفاده از متد GET
result = await client.chat.log_out(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
print(f"نتیجه خروج: {result}")
# استفاده از متد POST
result = await client.chat.log_out_post(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return result
# نسخه همگام
def log_out_sync_example():
result = client.chat.log_out_sync(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return resultحذف وبهوک
import asyncio
async def delete_webhook_example():
# استفاده از متد GET
result = await client.chat.delete_webhook(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
print(f"نتیجه حذف webhook: {result}")
# استفاده از متد POST
result = await client.chat.delete_webhook_post(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
# استفاده از متد DELETE (پیشنهادی)
result = await client.chat.delete_webhook_delete(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return result
# نسخه همگام
def delete_webhook_sync_example():
result = client.chat.delete_webhook_sync(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return resultدریافت اطلاعات بات
import asyncio
async def get_me_example():
# استفاده از متد GET
result = await client.chat.get_me(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
print(f"اطلاعات بات: {result}")
# استفاده از متد POST
result = await client.chat.get_me_post(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return result
# نسخه همگام
def get_me_sync_example():
result = client.chat.get_me_sync(
token="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
)
return resultانواع پیام
سرویس گفتوگو از انواع مختلف پیام پشتیبانی میکند (مشاهده MessageTypeEnum):
file- فایلهای ضمیمهproduct- کارت محصولvendor- غرفهدارtext- پیامهای متنی سادهpicture- پیامهای تصویری (URL یا فایل)voice- پیامهای صوتیvideo- پیامهای ویدیوییlocation- اشتراکگذاری موقعیت مکانی
Last updated on