forked from hesabix/arc
6.4 KiB
Executable file
6.4 KiB
Executable file
راهنمای عیبیابی اتصال ربات تلگرام
مشکلات رایج و راهحلها
1. ربات تلگرام به پیامها پاسخ نمیدهد
بررسی تنظیمات اولیه
-
بررسی توکن ربات:
- از پنل ادمین به بخش "تنظیمات سیستم" > "نوتیفیکیشنها" بروید
- مطمئن شوید که "توکن ربات" تنظیم شده است
- توکن باید از BotFather دریافت شده باشد (فرمت:
123456789:ABC...)
-
بررسی رمز Webhook:
- در همان بخش، مطمئن شوید که "رمز وبهوک" تنظیم شده است
- این رمز باید یک رشته تصادفی و امن باشد
-
بررسی نام کاربری ربات:
- "نام کاربری ربات" را تنظیم کنید (بدون @)
- این برای ساخت لینک اتصال استفاده میشود
ثبت Webhook
مهم: بعد از تنظیم توکن و رمز webhook، باید webhook را ثبت کنید:
-
از طریق پنل ادمین:
- در بخش "تنظیمات سیستم" > "نوتیفیکیشنها"
- روی دکمه "ثبت Webhook" کلیک کنید
- پیام موفقیت یا خطا را بررسی کنید
-
از طریق API:
POST /api/v1/admin/system-settings/notifications/telegram/webhook- نیاز به دسترسی
system_settingsیاsuperadminدارد
- نیاز به دسترسی
-
از طریق اسکریپت:
cd /var/www/ark/hesabixAPI python scripts/check_telegram_webhook.py
بررسی وضعیت Webhook
برای بررسی وضعیت webhook از Telegram API:
curl "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo"
پاسخ باید شامل:
url: آدرس webhook ثبت شدهpending_update_count: تعداد پیامهای در انتظارlast_error_dateوlast_error_message: در صورت وجود خطا
2. مشکل در حالت Proxy
اگر از Telegram Proxy استفاده میکنید:
-
بررسی تنظیمات Proxy:
- "فعالسازی Telegram Proxy" را فعال کنید
- "آدرس پایه پروکسی" را تنظیم کنید (مثلاً:
https://proxy.example.com) - "کلید دسترسی پروکسی" را تنظیم کنید
-
بررسی فایل config.php در Proxy:
- فایل
telegram_proxy/config.phpرا بررسی کنید - مطمئن شوید که
internal_webhook_urlتنظیم شده است:'internal_webhook_url' => 'https://hsxn.hesabix.ir/api/v1/integrations/telegram/webhook/{WEBHOOK_SECRET}' {WEBHOOK_SECRET}را با رمز webhook واقعی جایگزین کنید
- فایل
-
بررسی لاگهای Proxy:
- لاگهای proxy را بررسی کنید تا ببینید آیا درخواستها به درستی forward میشوند
3. مشکل در اتصال کاربران
اگر کاربران نمیتوانند به ربات متصل شوند:
-
بررسی لینک اتصال:
- از داخل برنامه، لینک اتصال را ایجاد کنید
- لینک باید به این صورت باشد:
https://t.me/{BOT_USERNAME}?start={TOKEN} - مطمئن شوید که نام کاربری ربات درست است
-
بررسی منقضی شدن لینک:
- لینکهای اتصال 10 دقیقه اعتبار دارند
- اگر لینک منقضی شده، لینک جدید ایجاد کنید
-
بررسی لاگهای Webhook:
- لاگهای سرور را بررسی کنید تا ببینید آیا درخواستهای
/startدریافت میشوند - بررسی کنید که
telegram_webhook_secretدر URL درست است
- لاگهای سرور را بررسی کنید تا ببینید آیا درخواستهای
4. بررسی لاگها
برای بررسی لاگهای مربوط به تلگرام:
# لاگهای API
tail -f /var/log/hesabix/api.log | grep -i telegram
# لاگهای Proxy (اگر از proxy استفاده میکنید)
tail -f /var/log/telegram_proxy.log
5. تست دستی Webhook
برای تست دستی webhook:
# تست با curl
curl -X POST "https://hsxn.hesabix.ir/api/v1/integrations/telegram/webhook/{WEBHOOK_SECRET}" \
-H "Content-Type: application/json" \
-d '{
"update_id": 123456789,
"message": {
"message_id": 1,
"from": {"id": 123456789, "is_bot": false, "first_name": "Test"},
"chat": {"id": 123456789, "type": "private"},
"date": 1234567890,
"text": "/start test_token"
}
}'
6. مشکلات رایج دیگر
خطای "Forbidden" در Webhook
- بررسی کنید که
telegram_webhook_secretدر URL با مقدار تنظیم شده در دیتابیس مطابقت دارد - اگر
telegram_secret_headerتنظیم شده، بررسی کنید که headerX-Telegram-Bot-Api-Secret-Tokenارسال میشود
خطای "Bot token is invalid"
- توکن ربات را دوباره از BotFather دریافت کنید
- مطمئن شوید که توکن به درستی در دیتابیس ذخیره شده است
Webhook ثبت میشود اما پیامها دریافت نمیشوند
- بررسی کنید که سرور شما از اینترنت قابل دسترسی است
- بررسی کنید که فایروال یا nginx به درستی تنظیم شده است
- بررسی کنید که SSL certificate معتبر است (Telegram فقط HTTPS را میپذیرد)
7. چکلیست نهایی
قبل از گزارش مشکل، این موارد را بررسی کنید:
- توکن ربات تنظیم شده است
- رمز webhook تنظیم شده است
- نام کاربری ربات تنظیم شده است
- Webhook ثبت شده است (از طریق پنل یا API)
- URL webhook صحیح است و از اینترنت قابل دسترسی است
- SSL certificate معتبر است
- اگر از proxy استفاده میکنید، تنظیمات proxy درست است
- لاگها را بررسی کردهاید
8. دریافت کمک
اگر مشکل حل نشد:
- لاگهای کامل را جمعآوری کنید
- خروجی
check_telegram_webhook.pyرا ذخیره کنید - پاسخ
getWebhookInfoرا ذخیره کنید - این اطلاعات را به تیم پشتیبانی ارسال کنید