Using Services
استفاده از سرویس ها
توی این مقاله استفاده از سرویس های بله آموزش داده میشه
نمونه سازی Client
اول باید Client رو از داخل بلتون فراخوانی کنیم و یه Client بسازیم
من Client ساخته شده خودم رو توی متغیر bot ذخیره میکنم
1
2
3
from balethon import Client
bot = Client("TOKEN") # Replace "TOKEN" with your actual token here
باید «TOKEN» رو با توکن بات خودتون عوض کنید
اتصال به بله
حالا قبل از هر کاری اول باید باتمون رو به بله وصل کنیم
1
bot.connect()
فراخوانی سرویس ها
حالا میتونیم با بات خودمون از سرویس های بله استفاده کنیم
مثلا اطلاعات خود بات رو بگیریم و پرینتشون کنیم
1
2
me = bot.get_me()
print(me)
یا یک پیامی به یک نفر بفرستیم
1
bot.send_message("@username", "Hello") # Replace "@username" with your actual username here
باید «@username» رو با نام کاربری مورد نظر خودتون عوض کنید
قطع اتصال از بله
ولی با این روش باید یادمون باشه که بعد از تموم شدن کار اتصال بات رو با بله قطع کنیم
1
bot.disconnect()
جمع بندی
یعنی برای مثال کد کامل ما اینجوری میشه
1
2
3
4
5
6
7
from balethon import Client
bot = Client("TOKEN") # Replace "TOKEN" with your actual token here
bot.connect()
bot.send_message("@username", "Hello") # Replace "@username" with your actual username here
bot.disconnect()
کانتکست منیجر
یه روش بهتر برای وصل کردن بات به بله استفاده از کانتکست منیجره
1
2
3
4
5
6
from balethon import Client
bot = Client("TOKEN") # Replace "TOKEN" with your actual token here
with bot:
bot.send_message("@username", "Hello") # Replace "@username" with your actual username here
وقتی این شکلی انجام بدیم دیگه نیاز نیست خودمون اتصال با بله رو وصل یا قطع کنیم و خودکار انجام میشه
این روش پیشنهاد میشه چون حتی اگر کد به طور ناگهانی متوقف بشه قطع شدن ارتباط تضمینیه
برنامه نویسی Asynchronous
یه کار دیگه که میتونیم بهتر انجام بدیم اینه که به صورت Asynchronous کد بزنیم
1
2
3
4
5
6
7
8
9
10
11
12
13
import asyncio
from balethon import Client
bot = Client("TOKEN") # Replace "TOKEN" with your actual token here
async def main():
async with bot:
await bot.send_message("@username", "Hello") # Replace "@username" with your actual username here
asyncio.run(main())
این روش پیشنهاد میشه چون از خاصیت برنامه نویسی Asynchronous بهره میگیریم و میتونه سرعت کدمون رو ببره بالا
اگر با برنامه نویسی Asynchronous آشنایی ندارید میتونید با همون روش ساده کد بزنید و مشکلی نداره
اگر با برنامه نویسی Asynchronous آشنا باشید میدونید که یک کد Async باید حتما یک فانکشن ورودی داشته باشه
اگر از برنامه نویسی Asynchronous استفاده میکنید تمام سرویس های بله در بلتون رو هم باید به صورت Async فراخوانی کنید
ولی کدمون هنوز هم قابل بهبود دادن هست
1
2
3
4
5
6
7
8
9
10
from balethon import Client
bot = Client("TOKEN") # Replace "TOKEN" with your actual token here
async def main():
await bot.send_message("@username", "Hello") # Replace "@username" with your actual username here
bot.run(main())
اینجا بهجای asyncio.run از bot.run استفاده کردیم تا کدمون خلاصه تر بشه
اینجوری هم خود بلتون قبل از اجرای main بات رو برای ما به بله وصل میکنه و بعد از تموم شدن کار اتصال رو قطع میکنه
توی این روش هم مثل کانتکست منیجر قطع ارتباط خودکار تضمینیه
پست قبلی: Installing
پست بعدی: Handling Updates