آموزش اتصال ربات تلگرام به هاست و سرور ایران قسمت اول
هدف از این آموزش چیست؟
به نام خدا، با توجه به تحریم های دو طرفه کشور ایران و اپلیکیشن تلگرام نسبت به یکدیگر امکان نصب و راه اندازی ربات های تلگرام در هاست و سرور های ایرانی وجود ندارد. بنابراین جهت انجام این کار نیاز به یک bypass یا راه فرعی از یک سرور دیگر که بتواند دستورات سرور و تلگرام را به یکدیگر برساند داریم. در این آموزش از سرویس رایگان گوگل اسکریپت استفاده خواهیم نمود.
این آموزش درچه صورتی غیر قابل استفاده است؟
- در صورتی که ربات شما از Telegram Bot API برای ساخت ربات تلگرام استفاده ننماید. و از telegram API جهت ساخت ربات استفاده شده باشد.
- قصد ساختن رباتی داشته باشید که نیاز به آپلود و دانلود فایل با حجم بیشتر از 20 مگ داشته باشد. اینگونه ربات ها از طریق Telegram Bot API قابل طراحی نیستند.
- در صورتی که فایل ارسالی شما محتوی ویروس باشد، از طریق این روش غیر قابل دانلود خواهد بود.
مرحله اول : ساخت bypass توسط گوگل اسکریپت
در این مرحله نیاز است با استفاده از اکانت گوگل داخل سرویس رایگان گوگل اسکریپت سایت گوگل شوید. بنابر این اگر اکانت گوگل ندارید. حتما قبل از ادامه یک اکانت گوگل برای خود تهیه نمایید. از طریق این لینک وارد این سرویس شوید.
مانند تصویر زیر روی دکمه New Script کلیک کنید.
در این مرحله پنجره جدیدی باز می شود که با صفحه ساخت اسکریپت مواجه خواهید شد. در این مرحله باید کدهای زیر کپی و داخل این اسکریپت که به صورت پیشفرض با نام Code.gs هست قرار داده شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | function doGet(e) { if(typeof e !== 'undefined'){ return send_to_telegram(e); } } function doPost(e) { if(typeof e !== 'undefined'){ return send_to_telegram(e); } } function send_to_bot_original_url(e){ bot_original_url = ''; var args = e.postData.contents; var data = { "method": "post", "muteHttpExceptions": true, 'payload': args } var res = UrlFetchApp.fetch(bot_original_url, data); return; } function send_to_telegram(e){ if(typeof e.postData !== 'undefined'){ return send_to_bot_original_url(e); } else { if(typeof e.parameter.file === 'undefined'){ var api_url = decodeURIComponent(e.parameter.request); var args = JSON.parse(JSON.stringify(e.parameter)); var data = { "method": "post", "muteHttpExceptions": true, 'payload': args } var res = UrlFetchApp.fetch(api_url, data); var text = res.getContentText(); return ContentService.createTextOutput(text); } else { var file = e.parameter.file; var alumnopath = DriveApp.getFoldersByName("telegram"); var folderalumno = alumnopath.hasNext() ? alumnopath.next() : DriveApp.createFolder("telegram"); var response = UrlFetchApp.fetch(file); var fileBlob = response.getBlob(); var folder = DriveApp.getFoldersByName('telegram').next(); var result = folder.createFile(fileBlob); var text = fileBlob.getName(); var file_size = fileBlob.getBytes().length; var files = folder.getFilesByName(text).next(); var file_id = files.getId(); files.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT); var direct_link = 'https://drive.google.com/uc?export=download&id=' + file_id ; return ContentService.createTextOutput(direct_link); } } } |
توضیحات: در خط شماره 14 مقدار دهی bot_original_url را به آدرسی که در هاست خود برای فایل ربات درنظر گرفته اید تغییر دهید.
ذخیره اسکریپت گوگل اسکریپت:
بعد از قرار دادن این کدها با زدن کلید ترکیبی CTRL + S و یا استفاده از آیکون ذخیره که در ابزار این ویرایشگر وجود دارد با وارد کردن نام دلخواه برای پروژه، فایل مورد نظر را ذخیره نمایید.
توسعه پروژه به صورت اپلیکیشن وب:
سپس از منوی این ویرایشگر روی Publish کلیک کرده و سپس گزینه Deploy as web app رو انتخاب کنید.
پنجره زیر نمایش داده میشه که در این مرحله باید گزینه Who has access to the app رو روی حالت Anyone, even anonymous قرار داده شود و بر روی دکمه Deploy کلیک نمایید.
مشابه تصویر زیر بر روی دکمه Review Permissions کلیک کنید. در یک پنجره مرورگر مشابه تصویر زیر صفحهای باز می شود. اکانت گوگلی که قصد دارید این پروژه در آن اکانت توسعه یابد را انتخاب نمایید.
ممکن است بعد از انتخاب اکانت مورد نظرتان با اخطاری مشابه تصویر زیر روبه رو شوید. بدون توجه به متن اخطار همانند تصویر بر روی go to unsafe کلیک نمایید تا از این مرحل عبور نمایید.
دریافت url اسکریپت bypass که ساخته اید
در این گام دسترسی های مورد نیاز برای اجرای اسکریپت را تایید نمایید. بر روی دکمه Allow کلیک کنید. با کلیک روی این دکمه به صفحه اسکریپت بر میگردید. با دیدن صفحهای مشابه تصویر زیر آدرس URL اسکریپت را ذخیره نمایید.
در گام بعدی لازم است این لینک را در تلگرام ست وب هوک نمایید. و از عبارات ?request= و ?file= در متود get استفاده نمایید. البته متود post نیز در این اسکریپت قابل اجراست. در قسمت دوم آموزش به این موارد خواهیم پرداخت.