forked from hesabix/arc
5.9 KiB
Executable file
5.9 KiB
Executable file
📋 گزارش تشخیص مشکل ورکفلو
📊 اطلاعات کلی
ورکفلو شناسایی شده:
- ID: 3
- نام: Workflow جدید
- وضعیت: فعال ✅
- Business ID: 51
- تاریخ ایجاد: 2025-12-03 21:29:40
- آخرین بروزرسانی: 2025-12-04 14:46:26
🔍 ساختار ورکفلو
نودها:
-
نود تریگر (ID:
6a6f62bf-1680-4a50-9735-a1acc293d0d0)- نوع:
trigger - عنوان: "ایجاد فاکتور"
- تریگر:
invoice.created
- نوع:
-
نود اکشن (ID:
bf9e10a3-13d8-42ae-8f0d-1481d2b9224f)- نوع:
action - عنوان: "ارسال پیام تلگرام"
- اکشن:
send_telegram
- نوع:
اتصالات:
- تریگر "ایجاد فاکتور" → اکشن "ارسال پیام تلگرام"
❌ مشکلات شناسایی شده
🔴 مشکل اصلی: پیکربندی نادرست فیلد message
وضعیت فعلی:
{
"message": "$6a6f62bf-1680-4a50-9735-a1acc293d0d0",
"user_id": "1",
"parse_mode": "None",
"action_type": "send_telegram",
"retry_on_failure": true
}
مشکل:
- فیلد
messageبه جای یک متن پیام واقعی، به خروجی نود تریگر اشاره میکند:$6a6f62bf-1680-4a50-9735-a1acc293d0d0 - نود تریگر (
invoice.created) یک object خالی{}برمیگرداند - در نتیجه، پیام ارسالی به تلگرام یک object خالی است نه یک متن معنادار
نتیجه:
- ورکفلو به درستی اجرا میشود (status: تکمیل شده ✅)
- اما پیامی به تلگرام ارسال نمیشود یا پیام بیمعنا ارسال میشود
- در لاگها میبینیم:
"success": falseبا خطای"user_id مشخص نشده است"
📜 تاریخچه اجراها
✅ اجرای #4 (آخرین اجرا)
- تاریخ: 2025-12-04 14:43:55
- وضعیت: تکمیل شده
- نتیجه: ناموفق در ارسال پیام
- خطا:
"user_id مشخص نشده است"
لاگهای کلیدی:
✅ Node 'ایجاد فاکتور' executed successfully
✅ Node 'ارسال پیام تلگرام' executed successfully (اما با خطا در نتیجه)
-> "error": "user_id مشخص نشده است"
-> "success": false
✅ Workflow completed successfully
✅ اجرای #3 (اجرای قبلی)
- تاریخ: 2025-12-03 21:30:03
- وضعیت: تکمیل شده
- نتیجه: ناموفق در ارسال پیام
- خطا:
"'TelegramProvider' object has no attribute 'send'"
توضیح: این خطا نشان میدهد که در کد قبلی از متد send استفاده میشده که وجود نداشته. این مشکل در کد فعلی حل شده (تغییر به send_text).
✅ بررسی تنظیمات سیستم
تنظیمات تلگرام:
- ✅ Bot Token: پیکربندی شده
- ✅ Proxy: فعال و پیکربندی شده
- Base URL:
https://eucdn.hesabix.ir/ - API Key: موجود
- Base URL:
کاربران متصل به تلگرام:
- ✅ تعداد کاربران: 2 کاربر به ربات تلگرام متصل هستند
💡 راهحل پیشنهادی
🔧 تغییرات مورد نیاز در کانفیگ نود "ارسال پیام تلگرام":
۱. اصلاح فیلد message:
باید یک متن پیام معنادار وارد شود، مثلاً:
{
"message": "فاکتور جدیدی ایجاد شد!",
"user_id": "1",
"parse_mode": "None",
"action_type": "send_telegram"
}
یا میتوانید از اطلاعات فاکتور استفاده کنید (اگر در trigger_data موجود باشد):
{
"message": "فاکتور جدید شماره $6a6f62bf-1680-4a50-9735-a1acc293d0d0.invoice_code ایجاد شد.",
"user_id": "1",
"parse_mode": "None",
"action_type": "send_telegram"
}
۲. بررسی user_id:
اطمینان حاصل کنید که user_id صحیح است و کاربر مورد نظر:
- عضو کسبوکار با ID 51 است
- به ربات تلگرام متصل است
🎯 خلاصه
| مورد | وضعیت |
|---|---|
| ورکفلو فعال است | ✅ |
| ساختار ورکفلو صحیح است | ✅ |
| تنظیمات تلگرام پیکربندی شده | ✅ |
| کاربران به تلگرام متصل هستند | ✅ |
| کانفیگ پیام صحیح است | ❌ |
| پیام به تلگرام ارسال میشود | ❌ |
مشکل اصلی:
- فیلد
messageدر کانفیگ نود "ارسال پیام تلگرام" به جای متن پیام، به خروجی نود تریگر اشاره میکند که یک object خالی است.
راهحل:
- تغییر فیلد
messageبه یک متن پیام معنادار در تنظیمات ورکفلو
📝 نکات اضافی
-
Reference به نودهای قبلی:
- اگر میخواهید از اطلاعات نود قبلی استفاده کنید، باید به فیلد خاصی از آن اشاره کنید:
- مثال:
$node_id.field_name - نه:
$node_id(که کل object را برمیگرداند)
-
اطلاعات موجود در trigger:
- تریگر
invoice.createdاطلاعات فاکتور را درtrigger_dataقرار میدهد - میتوانید در پیام از این اطلاعات استفاده کنید
- تریگر
-
لاگهای بیشتر:
- تمام اجراهای ورکفلو با جزئیات کامل در جدول
workflow_executionsوworkflow_logsذخیره میشوند - میتوانید برای دیباگ بیشتر از این لاگها استفاده کنید
- تمام اجراهای ورکفلو با جزئیات کامل در جدول
تاریخ گزارش: 2025-12-04