مقدمه: قدرت اتوماسیون در دستان شماست

✅ لینک ویدیوی آموزش در یوتوب ✅

در دنیای امروز که سرعت و کارایی حرف اول را می‌زند، اتوماسیون فرآیندها به یکی از نیازهای اساسی کسب‌وکارها و حتی کاربران عادی تبدیل شده است. n8n به عنوان یک ابزار اتوماسیون قدرتمند و متن‌باز، به شما این امکان را می‌دهد تا بدون نیاز به کدنویسی پیچیده، وظایف مختلف را خودکارسازی کنید. یکی از پرکاربردترین سناریوها، اتصال تلگرام به n8n است که به شما اجازه می‌دهد ربات‌های تلگرامی هوشمند بسازید، پیام‌ها را پردازش کنید، و حتی بر اساس آن‌ها اقدامات خاصی را در سیستم‌های دیگر انجام دهید.

در این بلاگ، هژی (محمد هژبری ) قصد داره به صورت جامع و گام به گام، نحوه وصل کردن تلگرام به n8n در حالت سلف‌هاستینگ با وب‌هوک را آموزش دهیم. این روش، بهترین راه برای دریافت لحظه‌ای پیام‌ها و پاسخ‌دهی سریع است.

بخش اول: چرا اتصال تلگرام به n8n ؟

ترکیب n8n و تلگرام، دریچه‌ای جدید به سوی اتوماسیون‌های خلاقانه باز می‌کند:

  • ربات‌های تلگرامی هوشمند: ساخت ربات‌هایی که به پیام‌ها پاسخ می‌دهند، اطلاعات را از منابع مختلف جمع‌آوری می‌کنند یا حتی دستورات را از طریق تلگرام دریافت و اجرا می‌کنند.
  • مدیریت اعلان‌ها: دریافت اعلان‌های لحظه‌ای از سیستم‌های مختلف (مانند مانیتورینگ وب‌سایت، وضعیت سرور، یا سفارشات جدید) مستقیماً در تلگرام.
  • اتوماسیون وظایف روزمره: از ارسال یادآورها گرفته تا مدیریت لیست وظایف، همه و همه می‌توانند از طریق تلگرام و n8n خودکار شوند.

بخش دوم: وب‌هوک (Webhook) در مقابل پولینگ (Polling)

قبل از شروع، درک تفاوت بین دو روش اصلی اتصال تلگرام به n8n ضروری است:

  1. پولینگ (Polling): در این روش، n8n به صورت دوره‌ای (مثلاً هر چند ثانیه یک بار) از سرورهای تلگرام می‌پرسد که آیا پیام جدیدی برای ربات شما وجود دارد یا خیر.
    • مزایا: راه‌اندازی ساده‌تر در محیط لوکال، عدم نیاز به URL عمومی.
    • معایب: تأخیر در دریافت پیام‌ها، مصرف بیشتر منابع (به دلیل درخواست‌های مکرر).
  2. وب‌هوک (Webhook): در این روش، شما یک URL عمومی (که به n8n شما اشاره می‌کند) را به تلگرام می‌دهید. هر زمان که پیام جدیدی برای ربات شما ارسال شود، تلگرام بلافاصله آن پیام را به URL شما ارسال می‌کند.
    • مزایا: دریافت لحظه‌ای پیام‌ها، کارایی بالاتر، مناسب برای محیط‌های تولیدی.
    • معایب: نیاز به یک URL عمومی و امن (HTTPS) که در حالت سلف‌هاستینگ لوکال، نیاز به ابزارهایی مانند ngrok دارد.

با توجه به نیاز به پاسخ‌دهی سریع و کارایی بالا، در این راهنما بر روی روش وب‌هوک تمرکز خواهیم کرد.

بخش سوم: پیش‌نیازها

برای راه‌اندازی موفقیت‌آمیز این سیستم، به موارد زیر نیاز دارید:

  1. نصب n8n: n8n باید بر روی سیستم شما (در حالت سلف‌هاستینگ) نصب و در حال اجرا باشد. معمولاً n8n روی پورت 5678 اجرا می‌شود (مثلاً http://localhost:5678).
  2. ربات تلگرام: شما باید یک ربات تلگرام از طریق @BotFather ایجاد کرده باشید و توکن (Token) آن را در اختیار داشته باشید.
  3. ngrok: ابزاری برای ایجاد یک تونل امن از اینترنت به سیستم لوکال شما، که یک URL عمومی HTTPS فراهم می‌کند.

بخش چهارم: راهنمای گام به گام اتصال تلگرام به n8n با وب‌هوک

این مراحل را با دقت دنبال کنید:

گام ۱: راه‌اندازی ngrok و دریافت URL عمومی

از آنجایی که تلگرام فقط URLهای HTTPS را برای وب‌هوک می‌پذیرد و n8n شما به صورت لوکال اجرا می‌شود، به ngrok نیاز دارید:

  1. دانلود و نصب ngrok:
    • به وب‌سایت ngrok.com مراجعه کنید.
    • ثبت‌نام کنید و نسخه مناسب سیستم عامل خود را دانلود و نصب کنید.
    • دستورالعمل‌های مربوط به اتصال authtoken را پس از ثبت‌نام دنبال کنید تا ngrok به حساب شما متصل شود.
  2. اجرای ngrok:
    • ترمینال (Command Prompt در ویندوز) را باز کنید.
    • دستور زیر را اجرا کنید تا پورت 5678 (پورت پیش‌فرض n8n) در دسترس اینترنت قرار گیرد:
      ngrok http 5678
      
    • پس از اجرا، ngrok یک URL عمومی HTTPS برای شما نمایش می‌دهد، چیزی شبیه به https://your-random-subdomain.ngrok-free.app. این URL را کپی کنید؛ در مراحل بعدی به آن نیاز خواهید داشت.

گام ۲: تنظیم n8n برای استفاده از URL عمومی ngrok

n8n برای ساخت URLهای وب‌هوک خود، از متغیر محیطی WEBHOOK_URL استفاده می‌کند. باید این متغیر را با URL ngrok که در گام قبلی کپی کرده‌اید، تنظیم کنید:

  1. باز کردن Command Prompt جدید: یک پنجره Command Prompt (CMD) جدید باز کنید. (پنجره ngrok را باز نگه دارید.)
  2. تنظیم متغیر محیطی (برای ویندوز):
    • در CMD، دستور زیر را وارد کنید:
      set WEBHOOK_URL=https://your-random-subdomain.ngrok-free.app/webhook
      

      نکته مهم: حتماً /webhook را در انتهای URL اضافه کنید. این بخش ضروری است تا n8n مسیر صحیح وب‌هوک را بسازد.

      (به جای https://your-random-subdomain.ngrok-free.app، URL واقعی ngrok خود را قرار دهید.)

  3. اجرای n8n:
    • پس از تنظیم متغیر محیطی، n8n را در همین پنجره CMD اجرا کنید:
      n8n start
      
    • n8n اکنون با آدرس وب‌هوک جدیدی که از ngrok گرفته‌اید، شروع به کار می‌کند.

گام ۳: حذف وب‌هوک قدیمی تلگرام (در صورت وجود)

اگر قبلاً ربات تلگرام شما به وب‌هوک دیگری متصل بوده، باید آن را حذف کنید تا تداخلی ایجاد نشود:

  1. باز کردن مرورگر: یک مرورگر وب باز کنید.
  2. حذف وب‌هوک: آدرس زیر را در نوار آدرس مرورگر وارد کرده و YOUR_BOT_TOKEN را با توکن واقعی ربات خود جایگزین کنید:
    https://api.telegram.org/bot<YOUR_BOT_TOKEN>/deleteWebhook
    
  3. تأیید حذف: پس از فشردن Enter، باید پیامی مشابه {"ok":true,"result":true,"description":"Webhook is already deleted"} دریافت کنید. این یعنی وب‌هوک قبلی با موفقیت حذف شده است.

گام ۴: تنظیم وب‌هوک جدید تلگرام

حالا که ngrok در حال اجراست و n8n با URL عمومی آن تنظیم شده، وب‌هوک جدید را در تلگرام ثبت می‌کنیم:

  1. باز کردن مرورگر: همان مرورگر وب را باز نگه دارید.
  2. تنظیم وب‌هوک جدید: آدرس زیر را در نوار آدرس مرورگر وارد کرده و YOUR_BOT_TOKEN را با توکن واقعی ربات خود و YOUR_NGROK_URL را با URL ngrok خود (همراه با /webhook در انتها) جایگزین کنید:
    https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://your-random-subdomain.ngrok-free.app/webhook
    
  3. تأیید تنظیم: پس از فشردن Enter، باید پیامی مشابه {"ok":true,"result":true,"description":"Webhook was set"} دریافت کنید. این یعنی وب‌هوک جدید با موفقیت ثبت شده است.

گام ۵: ساخت ورک‌فلو در n8n

حالا به محیط n8n بروید (http://localhost:5678) و ورک‌فلو خود را بسازید:

  1. ایجاد ورک‌فلو جدید: روی دکمه “New Workflow” کلیک کنید.
  2. اضافه کردن نود Telegram Trigger:
    • روی دکمه + کلیک کنید و “Telegram Trigger” را جستجو و انتخاب کنید.
    • روی نود کلیک کنید تا تنظیمات آن باز شود.
    • در قسمت “Credentials”، روی “Create New” کلیک کنید.
    • “Bot Token” را با توکن ربات تلگرام خود پر کنید و “Save” را بزنید.
    • در قسمت “Resource”، “Message” را انتخاب کنید تا نود به پیام‌های دریافتی واکنش نشان دهد.
    • نکته: در این مرحله، n8n به صورت خودکار URL وب‌هوک را بر اساس WEBHOOK_URL که تنظیم کرده‌اید، به تلگرام ارسال می‌کند.
  3. اضافه کردن نود Telegram (برای پاسخ‌دهی):
    • دوباره روی دکمه + کلیک کنید و “Telegram” را جستجو و انتخاب کنید.
    • این نود را به نود “Telegram Trigger” متصل کنید.
    • روی نود جدید کلیک کنید تا تنظیمات آن باز شود.
    • در قسمت “Credentials”، همان Credentials که قبلاً ساختید را انتخاب کنید.
    • در قسمت “Chat ID”، مقدار ={{$json["message"]["chat"]["id"]}} را وارد کنید تا پاسخ به همان چتی که پیام از آن آمده، ارسال شود.
    • در قسمت “Text”، متنی که می‌خواهید به عنوان پاسخ ارسال شود را وارد کنید، مثلاً: “پیام شما دریافت شد و n8n آن را پردازش کرد!”
  4. ذخیره و فعال‌سازی ورک‌فلو:
    • روی دکمه “Save” در بالای صفحه کلیک کنید.
    • سپس، دکمه “Active” را فعال کنید تا ورک‌فلو شروع به کار کند.

گام ۶: تست نهایی

  1. ارسال پیام: از طریق اپلیکیشن تلگرام، به ربات خود پیام ارسال کنید.
  2. بررسی n8n: به محیط n8n برگردید. باید پیام ارسالی شما را در خروجی نود “Telegram Trigger” مشاهده کنید و ربات شما نیز باید پاسخی را که در نود “Telegram” تنظیم کرده‌اید، ارسال کند.

بخش پنجم: عیب‌یابی مشکلات رایج

  • خطای Bad Request: bad webhook: An HTTPS URL must be provided for webhook:
    • مطمئن شوید ngrok در حال اجراست و URL آن فعال است.
    • مطمئن شوید متغیر محیطی WEBHOOK_URL را در همان پنجره CMD که n8n را اجرا می‌کنید، به درستی تنظیم کرده‌اید (با استفاده از set WEBHOOK_URL=... در ویندوز).
    • مطمئن شوید /webhook را در انتهای URL ngrok در متغیر WEBHOOK_URL و در دستور setWebhook اضافه کرده‌اید.
    • یک بار دیگر مراحل حذف و تنظیم مجدد وب‌هوک تلگرام (گام‌های ۳ و ۴) را با دقت انجام دهید.
  • پیام‌ها در n8n دریافت نمی‌شوند:
    • وضعیت ngrok را بررسی کنید که فعال باشد و URL آن تغییر نکرده باشد.
    • URL وب‌هوک ثبت شده در تلگرام را با https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo بررسی کنید. مطمئن شوید url به آدرس ngrok شما اشاره می‌کند و pending_update_count صفر است.
    • مطمئن شوید ورک‌فلو در n8n “Active” است.
    • n8n را یک بار stop و start کنید.

نتیجه‌گیری: اتوماسیون بی‌درنگ با تلگرام و n8n

با دنبال کردن این راهنمای جامع، شما قادر خواهید بود تلگرام را به n8n در حالت سلف‌هاستینگ با وب‌هوک متصل کنید و از قدرت اتوماسیون بی‌درنگ بهره‌مند شوید. این تنظیمات، پایه و اساس ساخت ربات‌های تلگرامی پیشرفته و سیستم‌های اعلان هوشمند را فراهم می‌کند.

به یاد داشته باشید که برای راه‌اندازی و نگهداری هر سیستم، داشتن ابزار مناسب اهمیت زیادی دارد. آری ابزار به عنوان یک فروشگاه آنلاین معتبر، می‌تواند مرجع مناسبی برای تهیه ابزارها و تجهیزات مورد نیاز شما در هر پروژه‌ای باشد. همین امروز وارد دنیای اتوماسیون شوید و کارهای خود را هوشمندتر از همیشه انجام دهید!

در ادامه این مقاله می توانید از مقاله ای که در آن قالب های آماده ی n8n رو دانلود کنید را مطالعه بفرمایید.

۱. بررسی تنظیم درست متغیر محیطی در ویندوز

در CMD این دستور را اجرا کنید:

set WEBHOOK_URL

اگر مقدار درستی نمایش داده نشد، مجدداً مقدار را به این شکل تنظیم کنید:

setx WEBHOOK_URL "<YOUR_WEBHOOK_URL>"

بعد از تنظیم، CMD را ببندید و دوباره باز کنید تا تغییرات اعمال شوند.

✅ حالا بررسی کنید که مقدار ذخیره شده است:

echo %WEBHOOK_URL%

۲. حذف Webhook قبلی و تنظیم جدید

https://api.telegram.org/bot<YOUR_BOT_TOKEN>/deleteWebhook

✅ سپس وب‌هوک جدید را تنظیم کنید:

https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://<YOUR_WEBHOOK_URL>