استقرار ربات تلگرام روی Cloudflare Workers
پیشنیازها
- Node.js نسخه ۱۸ به بالا
- یک حساب Cloudflare
- توکن ربات تلگرام از @BotFather
۱. کلون و نصب وابستگیها
git clone https://github.com/Ludho0/telegram-anonymous-to-channel-cloudflare.git
cd telegram-anonymous-to-channel-cloudflare
npm install
۲. احراز هویت با Cloudflare
npx wrangler login
این دستور یک پنجره مرورگر باز میکند تا Wrangler را با حساب Cloudflare خود مجوز دهید.
۳. ساخت دیتابیس D1
npx wrangler d1 create telegram-bot-db
خروجی این دستور یک database_id به شما میدهد. آن را کپی کنید و مقدار آن را در wrangler.toml جایگزین کنید:
[[d1_databases]]
binding = "DB"
database_name = "telegram-bot-db"
database_id = "آیدی-دیتابیس-خود-را-اینجا-قرار-دهید"
۴. اعمال اسکیمای دیتابیس
npm run db:init:remote
این دستور فایل migrations/0001_init.sql را روی دیتابیس D1 ریموت اجرا میکند و جداول users و messages را ایجاد میکند.
۵. دریافت اطلاعات ربات
این URL را در مرورگر باز کنید (به جای <TOKEN> توکن ربات خود را قرار دهید):
https://api.telegram.org/bot<TOKEN>/getMe
آبجکت JSON داخل فیلد "result" را کپی کنید. شبیه این است:
{"id":123456789,"is_bot":true,"first_name":"MyBot","username":"MyBot","can_join_groups":true,"can_read_all_group_messages":false,"supports_inline_queries":true}
۶. تنظیم سیکرتها
npx wrangler secret put BOT_TOKEN
# وقتی پرسید، توکن ربات خود را پیست کنید
npx wrangler secret put BOT_INFO
# وقتی پرسید، JSON مرحله ۵ را پیست کنید
۷. تنظیم متغیرهای محیطی
فایل wrangler.toml را ویرایش کنید و بخش [vars] را با مقادیر خود بهروز کنید. برای جزئیات هر متغیر، مرجع تنظیمات را ببینید.
۸. دیپلوی
npx wrangler deploy
Wrangler آدرس worker را چاپ میکند، مثلا:
https://telegram-bot.your-subdomain.workers.dev
۹. ثبت Webhook
این آدرس را در مرورگر باز کنید (یا از curl استفاده کنید):
https://telegram-bot.your-subdomain.workers.dev/setup
باید یک پاسخ JSON با "ok": true ببینید. این به تلگرام میگوید که تمام آپدیتها را به worker شما بفرستد.
۱۰. بررسی
به ربات خود در تلگرام /start بفرستید. باید پیام خوشآمدگویی را دریافت کنید.
تریگر Cron
worker یک تریگر cron دارد (*/1 * * * *) که هر دقیقه اجرا میشود و به کاربران اطلاع میدهد که کوول دوونشان تمام شده. این به صورت خودکار در wrangler.toml تنظیم شده و با دیپلوی فعال میشود — نیاز به تنظیم اضافی نیست.
میتوانید اجرای cron را در داشبورد Cloudflare در بخش Workers & Pages > worker شما > Triggers > Cron Triggers مانیتور کنید.
بهروزرسانی
بعد از تغییرات کد:
npx wrangler deploy
آدرس webhook تغییر نمیکند — نیازی به ثبت مجدد آن نیست.