برگزیده های پرشین تولز

آموزش ساخت ربات تلگرام و ارتباط با آن در php

web-developer

Registered User
تاریخ عضویت
29 دسامبر 2015
نوشته‌ها
572
لایک‌ها
725
موضوع این تاپیک به این صورته که چطور یک ربات بسازیم و با کدهای php تنظیم کنیم به صورتیکه بتونه به درخواستهای ما جواب بده
ربات در تلگرام می تونه پس از دریافت یک رشته از کاربر با توجه به اون رشته بهش پاسخ بده
مثلا شما بنویسین سلام جواب مناسب بده یا وقتی کد رهگیری بدین چک کنه که ایا همچین کدرهگیری اصلا وجود داره؟ وضعیتش رسیدگیش چطوره و با پاسخ مناسب رو بده
رباتی که اینجا می سازیم این ویژگی ها رو خواهد داشت:
اعلام ساعت
اعلام قیمت طلا
پاسخ دادن به احوالپرسی
ارسال اخرین مطالب سایتتون به کسانی که بهش پیام دادن
و دریافت کد سفارش و چک کردن وضعیت سفارش و پاسخ متناسب
و ... که خودتون می تونین اضافه کنین

البته همه اینها از یک استایل پیروی می کنن و همشون اینجا توضیح داده میشن
اموزش قدم به قدمه و روانه
توجه داشته باشین که ربات تلگرام به کسی که بهش پیام نداده نمی تونه پیام بده(البته شدنش که هر کاری میشه ولی با api رسمی نمیشه فعلا)
اموزش کاربردیه یعنی توضیح تئوری مثل ssl چیست و json چیه و ... نداریم
فقط چون ما یه کم مشغولیم ممکنه ارام پیش بریم
------------------------------
مرحله اول:
ساخت یک ربات در تلگرام
باید یک ربات داخل نرم افزار تلگرام بسازیم تا بتوانیم به ان پیام ارسال و دریافت کنیم
برای ساخت ربات در تلگرام به این ای دی پیام می دهیم: @BotFather
می تونین رو این لینک هم کلیک کنید: https://telegram.me/botfather
این یک ربات پدر است که می تواند هر چقدر بخواهیم ربات به ما تحویل بدهد
وقتی روی start کلیک کنیم
یک لیستی از دستورات را نشان میدهد
کد:
BotFather, [25.01.16 19:47]
They call me the Botfather, I can help you create and set up Telegram bots. Please read this manual before we begin:
https://core.telegram.org/bots

You can control me by sending these commands:

/newbot - create a new bot
/token - generate authorization token
/revoke - revoke bot access token
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setinline - change inline settings
/setinlinefeedback - change inline feedback settings
/setcommands - change bot commands list
/setjoingroups - can your bot be added to groups?
/setprivacy - what messages does your bot see in groups?
/deletebot - delete a bot
/cancel - cancel the current operation
این یک لیستی از دستورات است ما دستور
/newbot
را برای ایجاد یک bot جدید میدهیم(همین جا بگم رباط به چیزی که فیزیکی کار اتوماتیک انجام بده میگن و بات به کدی که اتوماتیک باشه)
حالا از ما می پرسد که اسمش را انتخاب کنید که همان اسمی ست که به افراد نمایش خواهد داد و هر اسمی می توانیم وارد کنیم سپس یک username می پرسد که باید یکتا باشد یعنی قبلا ثبت نشده باشه و با کلمه bot به پایان برسه
اگر یوزر نیم ما را قبول کرد و تکرار نبود پیغام زیر را میدهد:
PHP:
Done! Congratulations on your new bot. You will find it at telegram.me/plasticyabBot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.

Use this token to access the HTTP API:
توکن یک رشته ایست که مختص ربات شماست و اینجا به جای این نوشته قرار می گیرد و بعدا ما استفاده خواهیم کرد

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

بسیار خب این از ربات
فقط به نوشته فاسی که داخل کادر بالا مشخص کردم دقت کنید
اونجا یک رشته قرار می گیره شبیه به :
123123123:AASDQDadaQqwe2_1dadASDasd
که بهش میگن token
در پست بعدی ادامه میدیم
 
Last edited:

pegahfarhadi85

کاربر تازه وارد
تاریخ عضویت
11 فوریه 2016
نوشته‌ها
3
لایک‌ها
0
سن
33
ممنونم دوست عزیز کارتون عالیه ادامه بدید ;)
 

XDesigner

Registered User
تاریخ عضویت
26 فوریه 2016
نوشته‌ها
197
لایک‌ها
84
تشکر از شما، منتظر ادامه مطلب هستیم
 

احسان نود و پنج

Registered User
تاریخ عضویت
3 جولای 2012
نوشته‌ها
495
لایک‌ها
66
محل سکونت
اصفهان
عزیز ای کاش ادامه میدادید مخصوصا نحوه استعلام یه کد بصورت خودکار خیلی برام سواله
 

MOHAMMAD026_1

مدیر بخش ویژه وب مستر
مدیر انجمن
تاریخ عضویت
16 ژوئن 2014
نوشته‌ها
5,056
لایک‌ها
8,688
محل سکونت
ROOT
عزیز ای کاش ادامه میدادید مخصوصا نحوه استعلام یه کد بصورت خودکار خیلی برام سواله
اگر سوالی دارید بپرسید، استارتر، من و بقیه دوستان هستیم
دقیقا شرح بدید منظورتون از استعلام یک کد چیه؟
 

vernes

Registered User
تاریخ عضویت
8 ژانویه 2016
نوشته‌ها
184
لایک‌ها
56
سن
36
محل سکونت
مشهد
من هاست و دامین دارم و حالا سوالم اینکه ایا میشه از ssl که cloud flare میده برای وب هوک تلگرام استفاده کرد؟ چون وب هوک باید حتما ssl باشه ایا میشه؟
 

MOHAMMAD026_1

مدیر بخش ویژه وب مستر
مدیر انجمن
تاریخ عضویت
16 ژوئن 2014
نوشته‌ها
5,056
لایک‌ها
8,688
محل سکونت
ROOT
من هاست و دامین دارم و حالا سوالم اینکه ایا میشه از ssl که cloud flare میده برای وب هوک تلگرام استفاده کرد؟ چون وب هوک باید حتما ssl باشه ایا میشه؟
بله میتونید از ssl ای که cloudflare میده بدون هیچگونه مشکلی برای وب هوک استفاده کنید
 

vernes

Registered User
تاریخ عضویت
8 ژانویه 2016
نوشته‌ها
184
لایک‌ها
56
سن
36
محل سکونت
مشهد
cloflare با دامنه .ir مشکلی که نداره؟ یا حتما دامنه باید چیز دیگه باشه؟
 

MOHAMMAD026_1

مدیر بخش ویژه وب مستر
مدیر انجمن
تاریخ عضویت
16 ژوئن 2014
نوشته‌ها
5,056
لایک‌ها
8,688
محل سکونت
ROOT
cloflare با دامنه .ir مشکلی که نداره؟ یا حتما دامنه باید چیز دیگه باشه؟
بله متاسفانه مشکل داره
میبایست از دامین های بین المللی استفاده کنید (دامنه های in یا us تقریبا ارزان و مناسب میباشند)
 

vernes

Registered User
تاریخ عضویت
8 ژانویه 2016
نوشته‌ها
184
لایک‌ها
56
سن
36
محل سکونت
مشهد
اقا دامنه رو به کلود فلیر وصل کردم این خطارو میده موغع باز کردن دامین


There’s a problem with this website’s security certificate
This might mean that someone’s trying to fool you or steal any info you send to the server. You should close this site immediately.

مگه کلود فلیر ssl معتبر نمیده؟ الان وب هوک هم ست نشد با این وضع
 

MOHAMMAD026_1

مدیر بخش ویژه وب مستر
مدیر انجمن
تاریخ عضویت
16 ژوئن 2014
نوشته‌ها
5,056
لایک‌ها
8,688
محل سکونت
ROOT
اقا دامنه رو به کلود فلیر وصل کردم این خطارو میده موغع باز کردن دامین


There’s a problem with this website’s security certificate
This might mean that someone’s trying to fool you or steal any info you send to the server. You should close this site immediately.

مگه کلود فلیر ssl معتبر نمیده؟ الان وب هوک هم ست نشد با این وضع
cloudflare بهتون ssl سبز و معتبر میده
اگر تازه ثبت کردید، باید منتظر باشید تا ssl برای شما ساخته بشه (معمولا نیم ساعت الی چند ساعت ممکنه طول بکشه)
وارد تب Crypto بشید و ببینید وضعیت ssl در حالت active و سبز میباشد؟
اگر بله، ssl شما مشکلی نداره و میتونید واسه وب هوک ست کنید (البته اگر در حالت active، همچنان https برای خودتون قرمز هست، مشکلی نداره. ممکنه از سمت مرورگر کش شده باشه و با گذشت چند ساعت اوکی میشه)
 

vernes

Registered User
تاریخ عضویت
8 ژانویه 2016
نوشته‌ها
184
لایک‌ها
56
سن
36
محل سکونت
مشهد
برای من که هنوز کش نشده ولی ربات کار میکنه و یک سوال؟ کلود فلر از چن مدل ssl استفاده میکنه؟ چون به همه رایگان میده برا خودش هزینه نداره؟

Sent from my Lenovo K50a40
 

MOHAMMAD026_1

مدیر بخش ویژه وب مستر
مدیر انجمن
تاریخ عضویت
16 ژوئن 2014
نوشته‌ها
5,056
لایک‌ها
8,688
محل سکونت
ROOT
برای من که هنوز کش نشده ولی ربات کار میکنه و یک سوال؟ کلود فلر از چن مدل ssl استفاده میکنه؟ چون به همه رایگان میده برا خودش هزینه نداره؟

Sent from my Lenovo K50a40
منظورتون از "چند مدل ssl" چی هست دقیقا؟!
متوجه نشدم
 

unp

کاربر تازه وارد
تاریخ عضویت
13 جولای 2014
نوشته‌ها
186
لایک‌ها
41
سن
35
محل سکونت
تهران
یکی از بهترین مطالب ها دیدم در اینجا عالی
 

shahapaya

کاربر تازه وارد
تاریخ عضویت
14 آگوست 2016
نوشته‌ها
34
لایک‌ها
6
سن
38
ssl valid | ssl notvalid همشون کار میکنن مشکلی نیست.
 

vernes

Registered User
تاریخ عضویت
8 ژانویه 2016
نوشته‌ها
184
لایک‌ها
56
سن
36
محل سکونت
مشهد
توسط کلود فلر دامنه ssl شد ولی یک سوال؟ این کلود فلر از چه نوع ssl هست که میده به کاربر؟

wildcard ssl

comodo dv ssl

یا.....؟

Sent from my Lenovo K50a40
 

king_Zone

کاربر تازه وارد
تاریخ عضویت
22 اکتبر 2013
نوشته‌ها
89
لایک‌ها
18
بچه هایی که میخوان وب هوک ست کنن، اینو بدونن که اگر گواهینامه تون معتبر باشه، واسه ست کردن وب هوک فقط کافیه آدرستون رو به آدرسی که خود تلرگام مشخص کرده بفرستید! و اگر هم که گواهینامه معتبر ندارید، میتونید خودتون یدونه self signed تولید کنید و توی این حالت وقتی میخوان آدرس وب هوکتون رو تنظیم کنید علاوه بر آدرس قسمت قبل باید public key تون هم به صورت فرمت pem واسه تلگرام بفرستید!
توی کلودفلیر واسه دامنه ی ir نمیتونید ssl بگیرید، ولی توی سایت https://www.sslforfree.com/ برای همه ی دامنه ها من جمله ir می تونید گواهینامه معتبر رایگان بگیرید!
 

shahi33

Registered User
تاریخ عضویت
3 جولای 2008
نوشته‌ها
205
لایک‌ها
5
محل سکونت
تهران
بچه هایی که میخوان وب هوک ست کنن، اینو بدونن که اگر گواهینامه تون معتبر باشه، واسه ست کردن وب هوک فقط کافیه آدرستون رو به آدرسی که خود تلرگام مشخص کرده بفرستید! و اگر هم که گواهینامه معتبر ندارید، میتونید خودتون یدونه self signed تولید کنید و توی این حالت وقتی میخوان آدرس وب هوکتون رو تنظیم کنید علاوه بر آدرس قسمت قبل باید public key تون هم به صورت فرمت pem واسه تلگرام بفرستید!
توی کلودفلیر واسه دامنه ی ir نمیتونید ssl بگیرید، ولی توی سایت https://www.sslforfree.com/ برای همه ی دامنه ها من جمله ir می تونید گواهینامه معتبر رایگان بگیرید!

سلام
من بات ساختم ssl ولید هم روی دامنه com خریدم
میشه بگی آدرس دامنه رو به کدوم آدرس ارسال کنم تا وب هوکم ست بشه؟
ممنون
 

king_Zone

کاربر تازه وارد
تاریخ عضویت
22 اکتبر 2013
نوشته‌ها
89
لایک‌ها
18
سلام
من بات ساختم ssl ولید هم روی دامنه com خریدم
میشه بگی آدرس دامنه رو به کدوم آدرس ارسال کنم تا وب هوکم ست بشه؟
ممنون
شما اگه میخوای بات تلگرام بنویسی باید داکیومنشن خود سایت رو بخونی و به نظرم اینجوری سوالا رو اگه یکی غلط جواب بده ممکنه که فقط دچار سردرگرمی بشی!
در هر صورت توی لینک زیر تنظیم وب هوک رو یاد داده!
https://core.telegram.org/bots/api#setwebhook
حالا من توضیح اضافه تر میدم که ایشالله به مشکل نخوری :)
همونطوری که توی بخش making request تلگرام توضیح داده شده شما باید فرمت درخواستات به شکل زیر باشه :
https://api.telegram.org/bot<token>/METHOD_NAME
که به جای token معلومه که باید توکنی که از bothfather گرفتی رو بزاری و به جای METHOD_NAME هم setwebhook رو باید بزاری که توی لینک بالا که بهت دادم توضیح داده!
توی درخواستتم که باید به شکل post باشه باید پارامتری با اسم url و مقدار آدرسی که میخوای تنظیم کنی رو بفرستی! و چون میگی که آدرست ولیده، نیازی نیست که پارامتری به اسم certificate هم بفرستی!
خود تلگرام پیشنهاد داده که بهتره آدرسی که میخوای واسه وب هوک تنظیم شه شامل token ات باشه که امنیتش بره بالا و کسه دیگه ای آدرستو پیدا نکنه که بهت اطلاعات فیک بفرسته!
و همچنین اگه وب هوک تنظیم کنی دیگه نمیتونی از متود getUpdate برای گرفتن پیام ها استفاده کنی!
واسه اینکه وب هوک رو هم حظف کنی کافیه توی پارامتر url مقدار خالی قرار بدی و درخواستتو بفرستی، اینجوری دوباره میتونی از متود getupdate واسه تست یا هر چیز دیگه ای استفاده کنی!
به نظر من بهتره از اپلیکیشن postman برای کار با api ها استفاده کنی که به فهمت توی کار با api ها خیلی کمک میکنه! از آدرس getpostman.org دانلودش کن (البته این اپ افزونه ی کرومه و قطعا باید رو سیستمت کروم نصب باشه واسه استفاده اش)
 
بالا