English

استقرار ربات تلگرام روی Cloudflare Workers

پیش‌نیازها

۱. کلون و نصب وابستگی‌ها

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 تغییر نمی‌کند — نیازی به ثبت مجدد آن نیست.


This site uses Just the Docs, a documentation theme for Jekyll.