یادداشت های من

دنبال کنندگان ۱ نفر
این وبلاگ را دنبال کنید

۱ مطلب با کلمه‌ی کلیدی «telegram-bot» ثبت شده است

برای تبدیل کامپیوتر خودتان به سرور تلگرام(با استفاده از روش WebHook)  برای دیباگ کردن کد هاتون میتونید مراحل زیر را انجام بدید تا کامپیوتر شما آماده پاسخگویی به سرور تلگرام باشد : همانطور که اطلاع دارید در روش WebHook  ابتدا باید Url  مشخصی که قرار است درخواستهای تلگرام به اون Forward بشه رو باید به تلگرام بشناسونیم .

برای این کار باید از Browser این تکه ادرس زیر را تایپ کنیم

https://api.telegram.org/bot(yourToken)/setWebhook?url=http://ادرس هاست

و در نهایت شما باید یه همچین چیزی داشته باشین : 


https://api.telegram.org/bot425345159:AAGFggsjEBukP7eB6GeENfDs3230LR-M/setWebhook?url=https://testurl.com

با باز کردن این ادرس در browser با ثب شدن آدرس شما ، تلگرامی پیامی را با متن زیر برای شما نمایش می دهد  :  

 WebHook was set 

خب بریم سر اصل مطلب .

در حالت عادی تمام این url که در webhook  ست می شود معمولا بر روی هاست خریداری شده از طرف شما هست ، اما حالا ما موردی رو بررسی میکنیم که شما میتونید کامپیوتر خودتونم تبدیل به یه هاست از نوع HTTPS کنید و به راحتی کدتون رو بزنید و دیباگ کنید .



خب مرحله به مرحله پیش میریم :


1) ابتدا باید نرم افزار ngrok  رو دانلود کنید .  حجم حدود 5 mb : دانلود ngrok 


2) بعد از این که نرم افزار را دانلود کردید باید به صورت run as administrator  بازش کنید .


3) در این مرحله ابتدا باید چک کنیم که Visual studio پروژه تحت وب که میتونه هم Webapi باشه  هم MVC بر روی کدوم پورت اجرا میشه

 (right click on project/properties/ web tab) 


خب حالا برای مثال پورت میشه 5422


4) خب در اینجا فقط اجرای نرم افزار ngrok مونده که به صورت command prompt باز شده است . دستور زیر را تایپ کنید 


ngrok http 5422


5) خب پس از وارد کردن دستور بالا ngrok  یک تونل برای شما ایجاد میکند 


ویه همچین چیزایی نشونتون میده 


Forwarding              Http://1242d2bdkf.ngrok.io -> localhost:5422
Forwarding              Https://1242d2bdkf.ngrok.io -> localhost:5422


خب در اینجا تنها کاری که باقی مانده است این است که شما به سرور تلگرام بگید که میخواهید درخواستهاتون به این ادرس بره چرا که ادرسی که ngrok  به شما داده دقیقا داره تمامی درخواست ها(request ) ها رو به سیستم لوکال شما Forward میکنه .



https://api.telegram.org/bot425345159:AAGFggsjEBukP7eB6GeENfDs3230LR-M/setWebhook?url=Https://1242d2bdkf.ngrok.io/ControllerName/Methodname
https://api.telegram.org/bot425345159:AAGFggsjEBukP7eB6GeENfDs3230LR-M/setWebhook?url=Https://1242d2bdkf.ngrok.io/home/GetMsgAsync


دقت داشته باشید از ادرس HTPPS استفاده کنید چون تلگرام فقط از این بستر برای ارسال درخواست میتونه استفاده کنه .


تمام شد ! خب اگر تا اینجای کار مشکلی نداشتید و همه چیز عالی اجرا شد  که هیچی اما اگر مثل من مشکل اساسی داشتید برای اینکه پروژه شما در IIS Express  در Visual Studio  بود و خواستید از حالت localhost  ادرس رو تغییر بدین به ادرس IP  باید این پست رو هم بخونین و کامل اجراش کنین . ##دسترسی از کامپیوترهای دیگر به IIS Express ای که از طریق ویژوال استودیو اجرا شده است##


دقت داشته باشید اگر تمامی موارد بالا به همراه پستی که لینکشو گذاشتم اجرا کردید حتما باید در ngrok  به این صورت دستورات را وارد کنید :

ngrok http 192.168.1.105:5422




  • سید یاسر نوراللهی