گام چهارم: تنظیم وب هوک
جهت تنظیم وب هوک برای دریافت آپدیتها نیاز به یک دامین واقعی دارید که متصل به بستر میزبانی اپلیکیشن شما باشد. حالا این بستر هاست اشتراکی باشد، vps باشد یا PaaS باشد فرقی نداد. همچنین نیاز به یک SSL ولید دارید تا پروتکل https به درستی کار کند.
ابتدا به فایلهای settings یک پراپرتی با عنوان AppBaseUrl و مقدار دامین مذکور اضافه میکنیم.فایل appsettings . Development . json پس از تغییر:
سپس به فایل Configs\BotConfigs.cs یک متد جدید اضافه میکنیم. محتوای فایل بعد از تغییر:
سپس فایل Program . cs را کمی ویرایش میکنیم:
تمامی کارهای مورد نظر وب هوک به صورت خودکار توسط کتابخونه BaleBotNet انجام میشه. مثل ایجاد اندپوینت، ایجاد هش رندوم جهت جلوگیری از خرابکاری و ثبت اندپوینت مورد نظر به عنوان وب هوک در سرور بله.
بعد از این مرحله، باقی مضوعات در هر دو روش مشابه هستن و در پیادهسازی بات تغییری متناسب با هر کدوم از این روشها نیاز نیست.
فهرست آموزش@BaleBotNet | کلاینت داتنت بازوی بله
جهت تنظیم وب هوک برای دریافت آپدیتها نیاز به یک دامین واقعی دارید که متصل به بستر میزبانی اپلیکیشن شما باشد. حالا این بستر هاست اشتراکی باشد، vps باشد یا PaaS باشد فرقی نداد. همچنین نیاز به یک SSL ولید دارید تا پروتکل https به درستی کار کند.
ابتدا به فایلهای settings یک پراپرتی با عنوان AppBaseUrl و مقدار دامین مذکور اضافه میکنیم.فایل appsettings . Development . json پس از تغییر:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"BotToken": "1234:abcd",
"AppBaseUrl": "https://my-bot-real-url.ir"
}
سپس به فایل Configs\BotConfigs.cs یک متد جدید اضافه میکنیم. محتوای فایل بعد از تغییر:
using BaleBotNet;
using MyBaleBot.Services.Bot;
namespace MyBaleBot.Configs;
public static class BotConfigs
{
public static void AddBaleBot(this WebApplicationBuilder builder, bool addLongPollingService)
{
builder.Services.AddBaleBotClient(builder.Configuration["BotToken"]!);
builder.Services.AddScoped<IUpdateHandler, BotUpdateHandler>();
if (addLongPollingService)
builder.Services.AddScoped<BotLongPollingService>();
}
public static async Task StartBotLongPolling(this WebApplication app)
{
using var scope = app.Services.CreateScope();
var longPollingService = scope.ServiceProvider.GetRequiredService<BotLongPollingService>();
await Task.Run(
() => longPollingService.Run(app.Lifetime.ApplicationStopping),
app.Lifetime.ApplicationStopping
);
}
public static void MapBotWebhook(this WebApplication app)
{
app.MapBaleBotWebhook(app.Configuration["AppBaseUrl"]!);
}
}
سپس فایل Program . cs را کمی ویرایش میکنیم:
using MyBaleBot.Configs;
var builder = WebApplication.CreateBuilder(args);
builder.AddBaleBot(addLongPollingService: true);
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
await app.StartBotLongPolling();
}
else
{
app.MapBotWebhook();
}
app.Run();
در این تغییر تعیین میکنیم که اگر بات در محیط توسعه اجرا شد از روش لانگ پولینگ استفاده کند و اگر در محیط عملیاتی اجرا شد از روش وب هوک استفاده کند.البته دست شما برای انواع استراتژیهای مد نظرتون بازه و میتونید از روش خودتون استفاده کنید.تمامی کارهای مورد نظر وب هوک به صورت خودکار توسط کتابخونه BaleBotNet انجام میشه. مثل ایجاد اندپوینت، ایجاد هش رندوم جهت جلوگیری از خرابکاری و ثبت اندپوینت مورد نظر به عنوان وب هوک در سرور بله.
بعد از این مرحله، باقی مضوعات در هر دو روش مشابه هستن و در پیادهسازی بات تغییری متناسب با هر کدوم از این روشها نیاز نیست.
فهرست آموزش@BaleBotNet | کلاینت داتنت بازوی بله
۱۶:۳۰