در این پست قصد داریم آموزش ساخت ربات تلگرام را آموزش دهیم. همچنین در ادامه به شما میآموزیم که چگونه SSL رایگان تهیه کنید. آموزش به صورت قدم به قدم میباشد و در انتهای آموزش سورس ربات را برای دانلود قرار داده ایم.
قدم اول: ساخت ربات تلگرام
اولین قدم برای ساخت ربات تلگرام این است که ابتدا باید در بوت فادر ربات خود را ایجاد کنید .
همان طور که در تصویر بالا می بینید من رباتی به نام myphpbot ایجاد کردم، توجه داشته باشید که این ربات در پایان آموزش از بین خواهد رفت پس از token id من استفاده نکنید. اگر با BotFather کار نکرده اید می توانید به لینک مراجعه کنید.
قدم دوم: استفاده ازwebHoock
در این آموزش قصد داریم از webHook برای ساخت ربات تلگرام استفاده کنیم، برای این کار شما نیاز به مجوز ssl دارید، اگر SSL دارید از این قسمت آموزش صرف نظر کنید، در غیر این صورت میتوانید آن را خریداری کرده یا از سرویس دهنده های رایگان مانند cloudflare.com استفاده کنید.
چگونه از کلودفلیر SSL رایگان دریافت کنیم؟
ابتدا به سایت Cloudflare مراجعه کنید، سپس یک حساب کاربری برای خود ایجاد کنید. سپس وارد حساب کاربری خود شوید و گزینه add site را بزنید ، صفحه ای مانند تصویر زیر خواهید دید.

نام دومین خود را وارد کنید مثلا salam.com و دکمه Begin Scan را بزنید، دامنه شما اسکن می شود، اگر همه چیز خوب پیش برود شما وارد صفحه مدیریت DNS ها می شوید که به صورت اتوماتیک کارهای مورد نیاز را انجام داده است، تصویری شبیه تصویر زیر:
برروی دکمه ادامه کلیک کنید و به مسیر خود ادامه دهید، صفحه ای با عنوان update name servers به شما نمایش داده خواهد شد، که در آن name servers فعلی و name servers که باید به جای آن قرار دهید را به شما نمایش داده است، به پنل مدیریت دامنه خود بروید و در قسمت مدیریت DNS این name servers های جدید را جایگذین قدیمی ها کنید.
بعد از اینکه جابجایی را انجام دادید، به cloudflare باز گردید قسمت overview را مشاهده کنید و ببینید وضعیت شما چیست؟

خب؛ شما میتوانید وضعیت ssl را از حالت full به flexible تغییر دهید برای این کار به قسمت crypto بروید، در قسمت مربوط به ssl حالت full را به flexible تغییر دهید .

صبر کنید تا مانند تصویر بالا active certificate برای شما نمایان شود بعد از این حدود 4 ساعت صبر کنید تا ssl شما فعال شود .دقت کنید مدت زمان اعتبار رایگان شما 6 ماه است.
خب وقتی ssl شما فعال شد بقیه کار ها بسیار ساده است، ابتدا باید به تلگرام بگویید وب هوک را روی چه آدرسی ست کند به شکل زیر:
https://api.telegram.org/bot273759407:AAEOqgo3I5nob3jIGzkY1ihguhPbXl945RQ/setwebhook?url=https://salam.com/myphpbot.php
دقت کنید که بعد از کلمه bot باید token خود را وارد کنید ، هم چنین در قسمت url آدرس خود را.
اکر همه چیز درست باشد یک json مانند شکل زیر به شما نمایش داده خواهد شد .
وب هوک هم ست شد حالا نوبت نوشتن کدها می رسد ، ربات ما قرار است کار بسیار ساده ای انجام دهد ، اگر کاربر پیام salam را بفرستد در جواب خواهد گفت salam be ruye mahet در غیر این صورت هر پیام دیگری دریافت کند chi migi میگوید.
به یاد داشته باشید ، که پیام های به صورت json به سمت شما می آید پس باید json را دی کد کنیم. کد بسیار ساده است و نیاز به توضیح بیشتری نیست.
نوبت آن است که رباتمان را امتحان کنیم:


قدم سوم: چگونه دکمه ایجاد کنیم
برای ایجاد دکمه رد ربات تلگرام می توانید از کد زیر استفاده کنید:
ini_set('error_reporting', 'E_ALL');
$botToken = "273759407:AAEOqgo3I5nob3jIGzkY1ihguhPbXl945RQ";
$webSite = "https://api.telegram.org/bot" . $botToken;
$update = file_get_contents("php://input");
$update = json_decode($update, TRUE);
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
//CustomKeyBord
$option = array(array("salam", "Key1"), array("key2", "key3"));
$replyMarkup = array(
'keyboard' => $option,
'one_time_keyboard' => false,
'resize_keyboard' => true,
'selective' => true
);
$encodedMarkup = json_encode($replyMarkup, true);
function sendMessage($chatId, $message, $r)
{
$url = $GLOBALS['webSite'] . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message) . "&reply_markup=" . $r;
file_get_contents($url);
}
switch ($message) {
case "/start":
sendMessage($chatId, "شروع می کنیم", $encodedMarkup);
break;
case "salam":
sendMessage($chatId, "salam be ruye mahet", $encodedMarkup);
break;
default:
sendMessage($chatId, "chi migi ??", $encodedMarkup);
}
به تصویر زیر توجه کنید :

همانطور که در کد و تصویر بالا میبینید، برای ساخت دکمه به آرایه نیاز داریم، رنگ زرد نشاندهنده ردیف اول دکمهها میباشد، و دارای دو دکمه به نام salam و Key1 است، رنگ قرمز ردیف دوم و دارای دو دکمه میباشد، برای ساخت ردیف سوم و … میتوانید به همین شکل یک یا چند آرایه دیگر اضافه کنید.
خوب همه چیز درسته، برای کسب اطلاعات بیشتر میتوانید به مستندات تلگرام مراجعه کنید همچنین، میتوانید از apiهای دیگری استفاده کنید که خود تلگرام معرفی کرده و در github موجود است، با رفتن به این آدرس می توانید آن ها را بیابید.
قدم آخر:دانلود سورس ربات تلگرام
برای دانلود سورس ربات تلگرام میتوانید از لینک زیر استفاده کنید.
سلام.مطلب خوبی بود.ولی من نفهمیدم بعد از اینکه وب هوک ست شد و شما گفتید حالا نوبت برنامه نویسی است.دقیقا بعد از اینکه برنامه نویسی را انجام دادیم چه کار کنیم.یا اصلا کجا برنامه نویسی را انجام دهیم؟
سلام علی عزیز
برنامه نویسی را درون سرور انجام میدیم، در انتهای وب هوک salam.com نام دامنه من و myphpbot.php نام فایل php است، که روبات را درون آن نوشته ام.
و بعد از برنامه نویسی، نرم افزار تلگرام خودتونو باز کنید و به دنبال روبات خودتون بگردید اونو پیدا کنید و اگر کدها را درست و بدون خطا زده باشید و وب هوک هم درست ست شده باشه،
ssl هم روی دامنه شما اکتیو باشه، میتونید با ربات خودتون ارتباط برقرار کنید.
شاد و سلامت باشید.
همون جایی که ست وبهوک کردی گزینه ی ادیت رو بزن و کدها رو اضافه کن
سلام و خداقوت
متوجه نشدم چطور و از چه قسمتی برنامه نویسی رو شروع میکنید؟
یعنی من چطور باید اون فایل myphpbot.php که کد رو روش نوشتم آپلود کنم
و یا اگه روی سرور باید کد رو بنویسم از کدوم قسمت وارد محیط کدنویسی بشم
ممنونم اگه توضیح بدی
متوجه شدم، هاست رو باید از یه جای دیگه تهیه کنم و کلود فلیر فقط ssl به ما میده
ولی کد رو دقیقاً کپی کردم و توکن رو به توکن رباتم تغییر دادم
رباتم عکس العملی نشون نمیده
سلام، سلمان عزیز
هاست از هر کجا که دوست دارید می تونید تهیه کنید، کلود فایر فقط برای اس اس ال رایگان استفاده شد، ممکنه زمان ببره اس اس ال براتون ست شه، چند نکته هست که ممکنه باعث بشه ربات کار نکنه اس اس ال ست نشده باشه، اشتباه ست شده باشه، موقع معرفی به تلگرام برای وب هوک آدرس فایل و فولدر خودتونو اشتباه زده باشید و یادتون باشه از توکن ای دی من استفاده نکنید.
برای سوال اول هم می تونید این فایل و با هر نامی هر جایی بنویسید، تو لوکال هاست یا وب سرور ، و درون هرپوشه ای.
شاد و سلامت باشید.
سلام هاست رایگان از کجا بگیرم که بشه روش SSL گذاشت؟از ۰۰۰webhost.com گرفتم قبول نکرد.لطفا راهنمایی کنید
سلام امیر عزیز
متاسفانه در مورد هاست های رایگان اطلاعاتی ندارم.
شاد و سلامت باشید.
سلام به همه
بنده ssl بر روی سایتم از طریق پشتیبانی هاست فعال شد و وب هوک هم درست ست شد:
…
اما اصلا روبات خواب خوابه
لطفا کمک کنید
روی .com هم تست کردم جواب نداد
سلام دوست عزیز، فکر می کنم ssl شما هنوز ست نشده
http://darkoobweb.com/wp-content/uploads/2017/04/Untitled.jpg
در صورتی که ssl درست ست شده کد خودتونو ایمیل کنید انشاالله بتونم کمکتون کنم.
عذرخواهی میکنم
روی این سایت تست کردم:
geramafon.com
خواهش میکنم دوست عزیز.
شاد و سلامت باشید.
البته هنوز کار نمیکنه
برگردم پشت سیستم خدمتتون ارسال میکنم
فقط لطف کنید اگه محبت میکنید یه پیام تلگرام بم بدید که کامنتای ریزه ریزه توی سایت نداشته باشیم و آخر سر کاملشو توی سایت میذارم
ممنون
@hassan_kalhor
با سلام. در تلگرام امکان تماس نداریم. از همین قسمت سوالتان را بپرسید. با تشکر
سلام
خسته نباشید
چه جوری میشه مقدار start رو از این url ربات گرفت و به سمت سرور سایتمون ارسال کرد؟
مثلا این آدرس ربات و مقدار start هست
http://telegram.me/funpatogh2017_bot?start=73782230
الان به چه شکلی میتونم مقدار start رو دریافت کنم
سلام محمد عزیز
اگر منظور شما درست متوجه شده باشم:
لینکی که اینجا قرار دادید در واقع یکی از راه های ارتباطی کاربران با ربات شما است، که در این شکل صفحه تلگرام ویندوز باز می شه و اینپوت باکسی که برای نوشتن متن پیام است با یک دکمه بزرگ start جایگزین می شه و اون دکمه چیزی که به سمت شما ارسال می کنه ” هرچی start/ ” خواهد بود نه start/ خالی، در اینجا هنگامی که من بخوام با ربات شما از این طریق ارتبات برقرار کنم start 73782230/ به سمت شما میاد (وقتی وارد ربات بشم و روی دکمه استارت کلیک کنم)
اطلاعات که به سمت ما میاد به صورت JSON هست و شما باید JSON را بگیرید، دی کد کنید، ببینید چه پیامی در اون وجود داره، و به آن پاسخ بدید.
در واقع اگر من به ربات شما بگم hi چیزی شبیه این سمت شما میاد:
,ok”:true,”result”:[{“update_id”:87654321″}
{[{{“message”:{“message_id”:1,”from”:{“id”:001,”first_name”:”Pouria”,”last_name”:”parhami”},”chat”:{“id”:001,”first_name”:”Pouria”,”last_name”:”Parhami”},”date”:542188854,”text”:”hi”
این ۳ خط برای دی کد کردن ، گرفتن مقدار چت آدی و دریافت پیامی است که کاربر به ربات داده است استفاده میشه.
;(update = json_decode($update, TRUE$
;[“chatId = $update[“message”][“chat”][“id$
;[“message = $update[“message”][“text$
و سپس همان طور که در مثال این آموزش آمده است با یک سویچ می تونید چک کنید چه پیامی آمده است و در مقابل چه پیامی باید چاپ بشه یا چه کارهایی باید انجام بشه.
و فکر میکنم بخواید از دیتابیس هم استفاده کنید، این لینک هم ممکنه کمکتون کنه
https://code.tutsplus.com/articles/how-to-start-a-telegram-bot-with-php–cms-26329
در این لینک هم سوالی شده، کامنت هایی که به عنوان پاسخ صحیح ثبت شده را نگاه کنید، امید وارم مشکل شما برطرف بشه
http://stackoverflow.com/questions/31197659/how-we-should-send-query-to-telegram-bot-api
این لینک هم مطالعه کنید:
https://fullmeter.com/blog/?p=14
شاد و سلامت باشید.
سلام آقا پوریا ممنون از جوابتون
اون لینک در واقع لینک دعوت نامه هست که کاربران میتونند به دوستاشون بفرستند و من از طریق همون عدد که جلوی start هست میخوام متوجه بشم هر نفر چند نفر را دعوت کرده است
الان من روی لینک دعوت نامه که کلیک میکنم دکمه start میاد بعد که روش میزنم
start/
ارسال میشه که خالی هست شما مگه نگفتید که خالی ارسال نمیشه و عدد هم باهاش بعد از start میره مثلا اینجوری
start76797665/
البته من سمت سرور php نتیجه رو ندیدم که ببینم دیکد شده json چیا توش میاد
سلام محمد عزیز
به این نوع کار و لینک شما می گن deep-linking
چرا دوست من برای شما start/ 76797665 ارسال می شه اما کاربر که با ربات کار می کنه فقط start/ می بینه، برای همین اگر از طریق لینک وارد بشید و روی دکمه استارت کلیک کنید به شما پیغام دستور نا معتبر است نمایش داده میشه چون شما تو سویچ یا دستور if خود تون چیزی به نام start/ 76797665 ندارید، اما اگر بعد از چاپ این پیام خودتون دستور start/ بزنید می بینید که منو و پیغام صحیح برای شما چاپ می شه.
برای شما این start/ 76797665 از طریق JSON ارسال می شه، و فاصله ای هم بین استارت و عدد وجود داره.
اول این لینک مطالعه کنید ساده و روان توضیح داده نحوه کار همراه با یک مثال ساده:
https://core.telegram.org/bots#deep-linking
بعد این دو لینک نگاه کنید مخصوصا لینک دوم که جواب همراه با کد داره و فکر میکنم بیشتر به کمک شما میاد و پاسخ مناسب برای پرسش شماست(کامند start می گیره و نگاه می کنه چی جلوی اون قرار داره و یوزر کاربر…).
۱- http://stackoverflow.com/questions/35111939/how-to-echo-message-at-telegram-start
2- http://stackoverflow.com/questions/31042219/how-do-i-get-authentication-in-a-telegram-bot
امید وارم مفید باشه
شاد و سلامت باشید.
آقا دمتون گرم موفق شدم
بالاخره این سوال فنی که کار منو متوقف کرده بود با کمک شما حل شد
این شکلی مقدار start رو هم جدا میکنم
$command= $arrayMessage[‘message’][‘text’];
$command=substr($command, strpos($command, ” “) + 1);
خواهش میکنم
ماشاالله به شما و پشتکارتون.
شاد و سلامت باشید.
سلام خسته نباشید
ببخشید یه سوالی داشتم در مورد نحوه دسترسی به داده ها
آیا میشه بجای ;[“message = $update[“message”][“text$
از
;message = $update->message->text$
استفاده کرد؟اگر بخوام اینطوری استفاده کنم باید چیکار کنم؟آیا چیز دیگه ای رو هم باید تغییر بدم یا همون خودش به تنهایی کافیه؟
سلام
من میخوام بعد از زدن یه کلید خاص از کاربر بخوام یه متن برام بفرسته تا اون متن رو فروارد کنم میشه راهنماییم کنید ؟
سلام رضای عزیز
در این آموزش نحوه ساخت دکمه آموزش داده شده، می تونید از همون استفاده کنید، برای فروارد کردن هم می تونید با رفتن به این آدرس https://core.telegram.org/bots/api#message متد فروارد مورد نظر خودتونو پیدا و استفاده کنید،
برای مثال می تونید داده های هر کاربر را بگیرد تا زمانی که دکمه مورد نظر خورد داده قبلی استخراج و فروارد کنید، البته یک مثال بود.
و برای اینکه کارتون راحت تر باشه می تونید از کتاب خونه هایی که با PHP یا زبان های دیگه برای راحتی کار با ربات تلگرام نوشته شده استفاده کنید که کاری که می خواید انجام بدین بسیار ساده کردن
از این لینک می تونید کتاب خونه مورد نظر خودتونو پیدا کنید، ین کتاب خونه ها مستندات خوبی هم دارن که راهنمای شما خواهند بود.
https://core.telegram.org/bots/samples
شاد و سلامت باشید.
سلام من تست کردم قسمت اول جواب میده و قسمت دوم که دکمه باشه جواب نمیده.
من دو تا کد عینن کپی پیست کردم. چه کار کنم؟
سلام پرهام عزیز
کد دوم که کدها باشه، آیا دکمه ها نمایش داده نمی شن؟
دکمه ها نمایش داده می شن اما وقتی کلیک می کنید کار مورد نظر انجام نمی شه ؟
سلام و درود پوریا جان
من میخوام وقتی کاربر کلید استارت رو زد بررسی کنه کاربر در کانال (مدیر ربات) عضو هست یانه !
و پیام نشون بده
یه جوری شرطی باشه !
ممنون میشم راهنمایی کنید
سلام میلاد عزیز
ربات شما می تونه در گروه یا کانال عضو بشه، اول از طریق بوت فادر این قابلیت براش فعال کنید، وقتی در گروه عضو بشه یا کانال می تونه آی دی، یوزنیم و … کاربران بگیره
وقتی کاربر روی دکمه استارت زد، شما می تونید یوز یا آدی فرد بگیرید بعد درون یک حلقه قرار بدینش تا آدی یوزر مورد نظر با لیست اعضای کانال یا گروه چک کنه اگر بود به شما ، true و اگر نبود برای شما false برگردونه.
پیشنهاد می کنم از API هایی که برای php در این باره نوشته شده استفاده کنید تا سریع تر به نتیجه برسید.
https://core.telegram.org/bots/samples
البته به یاد داشته باشید که ربات شما لیست اعضای کانال را ذخیره نمی کنه و ممکنه نیاز باشه شما هر دفعه اونها رو بگیرید و چک کنید آیا کاربر مورد نظر در لیست وجود داره یا نه.
به شخصه برای گروه مشابه این کار انجام دادم اما برای کانال خیر.
در لینک زیر هم فردی می خوادلیست کاربران کانال تلگرامشو بگیره و راهنمایی شده
http://stackoverflow.com/questions/33844290/how-to-get-telegram-channel-users-list-with-telegram-bot-api
لینک زیر هم لینک هسته ربات تلگرام در گیت هاب است، در پایین صفحه با مثال هایی گفته شده چطور عکس، ای دی و … کاربر و بگیرید
https://github.com/php-telegram-bot/core
شاد و سلامت باشید.
پوریاجان سپاس فراوان
خیلی کارمو جلو انداختی با کمکت، خود تلگرام خیلی روشن نگفته باید چه کرد و سمپل هم کم هست
اگه تونستی اینکه چطور میشه getUpdates رو با webhook بکاربرد روهم بذار
بازم مرسی و خسته نباشی
سلام پارسیما عزیز
خوشحالم که این آموزش به شما کمک کرده.
شما دو متد کلی دارید geUpdates و setWebhook، به صورت ساده:
getUdpdates به این معنی که شما در بازه های زمانی خاص باید این متد را بارها خودتون فراخوانی کنید تا درخواست ها یا همان پیام های کاربر رو دریافت و کار یا پاسخ مناسب را به سمت اون ارسال کنید.
setWebHook به این معنی که خود تلگرام زمانی که پیامی به سمت ربات شما از طرف کاربر ارسال بشه، اسکریپت شما را اجرا می کنه.
برای همین زمانی که شما دارید از setWebHook استفاده می کنید نیازی به استفاده از متد getUpdates ندارید، و اگر هم تلاش کنید از این متد استفاده کنید تلگرام در یک فایل جی سون به شما پیام خطایی مبنی بر اینکه “زمانی که webhook فعال است نمی توانید از getUpdates استفاده کنید.” را به شما نشان می ده.
شاد و سلامت باشید.
سلام
چرا وقتی میخوام به تلگرام بفهمونم که وب هوک رو چه آدرسی ذخیره کردم ، قبول نمیکنه؟!
سلام M.Anonymous عزیز
چه پیام خطایی برای شما به نمایش در میاد؟
آیا SSL تون ست شده؟
آیا آدرس درست می نویسید؟
{“ok”:false,”error_code”:400,”description”:”Bad Request: bad webhook: getaddrinfo: Name or service not known”}
این پیام میاد
با سلام وتشکر از مطلب کاربردیتان..چند سئوال داشتم محدودیت رباتها در فضای تلگرام چه چیزی است…ایا ربات با کاربر میلیونی در روز امکان پذیره…
سلام جعفر عزیز
متاسفانه در این مورد اطلاعات دقیقی ندارم، اما با توجه به سرورهای قدرتمند تلگرام فکر نمی کنم مشکلی داشته باشه، باید مستندات تلگرام را مطالعه کنید.
در مورد محدودیت، کاربری که با ربات شما ارتباط برقرار کنه می تونید عکس، یوزرنیم، شماره تلفن او را بگیرید در دیتابیس ذخیره کنید و …
اگر محدودیت خاصی مدنظر شما است، لطفا بیشتر توضیح بدید.
سلام وتشکر از سایت خوبتون
میخواستم بدونم میشه رباتی نوشت که گروه را طی زمانبندی مدیریت کنه
مثلا از ۱۲ شب تا ۸ صبح گروه را تعطیل کنی یعنی هر پیامی داده شد پاک کنه
و اینکه راهنمای قوانین گروه را به پی وی شخص ارسال کنه نه داخل گروه ؟؟
سلام حمید عزیز
بله می تونید رباتی بنویسید که در بازهای زمانی خواصی کاری نجام بده، (مدیریت کانال و …)
در API های گذشته امکان پاک کردن پیام ها نبود، اما در API جدید اضافه شده ( به شخصه استفاده نکردم) این لینکها می تونن کمکنون کنن
https://stackoverflow.com/questions/35269776/telegram-bot-how-to-delete-or-remove-a-message-or-media-from-a-channel-or-group/43965602#43965602
https://core.telegram.org/bots/api#deletemessage
باید از متد deletemessage استفاده کنید، و ابتدا باید قابلیت عضویت در گروه را برای ربات در بوت فادر فعال کنید، و ربات باید در گروه یا سوپر گروه عضو و ادمین باشه.
باید هنگامی که کاربر با ربات شما ارتباط بر قرار کرد یوزرآدی بگیرد ذخیره کنید و بعد در هر زمانی که خواستید می تونید برای یوزرهایی که یوزرآدی آن ها را دارید پیام بفرستید.
می تونید این لینکها را مطالعه کنید سوالی مشابه شما داشته اند.
https://github.com/irazasyed/telegram-bot-sdk/issues/20
https://stackoverflow.com/questions/35524065/send-message-to-th-all-of-bots-users-telegram-api/35540518
شاد و سلامت باشید.
آقا از ۰۰۰webhost.com هاست رایگان بگیرید ssl هم خودش داره نیاز به سایت های اضافی هم نیست.من خودم همین سورس رو تست کردم جواب داد.تشکر ویژه از آقا پوریا
سلام
طبق آموزش جلو رفتم و ssl هم فعال می باشد
منتها هیچ جوابی داخل بات دریافت نمیکنم
قطعه کد شما عینا کپی شده (بدون دکمه) و توکن نیز جایگزین شد.
**********
آدرس فایل هم اینجاس
سپاس از راهنمایی شما
سلام امیر مهدی عزیز
اگر کد را کپی پیست کردید، در کد اشتباه ویراشی بود در قسمت sendMessage
amp;amp;text
این عبارت را به =text& تغییر دهید، در کد آموزشی هم ویرایش شد.
حتما از توکن آدی خوتون هم استفاده کردید، اگر هنوز هم مشکل داشتید، جی سونی که به سمت شما می آید را نگاه کنید، ببینید چه چیزی بر می گرداند؟ خالی ؟ خظا ؟…
کد را دوباره بر روی سرور چک کردم و همه چیز به درستی کار می کنه
موفق و شاد باشید.
سپاس
مشکل از ssl بود که رفع شد
سپاس ازشما
لطفا ادرس وب سایت که در کامنت ذکر شد رو حذف نمایید.
🙂
موفق باشید.
سلام خیلی عالی یاد دادید
ببخشید من یه سوال دارم:
میخوام بدونم که چطوری میتونم نام کاربری کسی که استارت میزنه براش بفرستم؟
مثلا:
/start رو میزنه بعد ربات من براش بفرسته: سلام @username عزیز!
سلام ، ممنونم
می تونید با
$update[‘message’][‘chat’][‘username’]
یوزر نیم و بگیرید.
خیلی متشکرم
سلام
عالی بود
کد دوم را که وارد کردم کلا دیگه هیچ پیغامی نمیاد و در سرور این کدها رو خطا رده ‘keyboard’ => $option,
چرا؟
سلام سید مرتضی عزیز
در متد سند میسج برای ارسال دکمه باید
$url = API_URL . “/sendMessage?chat_id=” . $chatId . “&text=” . urlencode($message).’&reply_markup=’ . $value;
reply_markup استفاده کنید.
اگر مشکل دیگری وجود داره لطفا بیشتر توضیح بدید.
شاد و سلامت باشید.
امکان دارد کد صحیح را ارسال کنید
چون دقیق نمی دونم این کد باید کجا قرار بگیرید
می خوام مطمئا بشم که مشکل از کد نیست.
دوم من دی کد نکردم اصلا نمی دونم چطوری انجام میشه
$url = $GLOBALS[‘webSite’] url = API_URL . “/sendMessage?chat_id=” . $chatId . “&text=” . urlencode($message).’&reply_markup=’ . $value;
file_get_contents($url);
سلام سید مرتضی عزیز
متد سند میسج را به این شکل بنویسید و استفاده کنید
function sendMessage($chatId, $message, $r)
{
$url = $GLOBALS[‘webSite’] . “/sendMessage?chat_id=” . $chatId . “&text=” . urlencode($message) . “&reply_markup=” . $r;
file_get_contents($url);
}
چه چیزی دی کد نکردین ؟
به جای این کد؟
$url = $GLOBALS[‘webSite’] . “/sendMessage?chat_id=” . $chatId . “&text=” . urlencode($message) . “&reply_markup=” . $r;
file_get_contents($url);
“&a mp ; به جاش & قرار بدید، این مشکل نگارشی بود در زمانی که من داشتم کد را در وب سایت قرار می دادم پیش اومد، و به جای & این چاپ شد “&
الان در این بخش خطا
میده
‘keyboard’ => $option, *********
‘one_time_keyboard’ => false,
‘resize_keyboard’ => true,
‘selective’ => true
مرتضی عزیز
$option = array(array(“تاریخ”, “درباره ما”,”آب و هوا”));
$replyMarkup = array(
‘keyboard’ => $option,
‘one_time_keyboard’ => false,
‘resize_keyboard’ => true,
‘selective’ => true
);
$encodedMarkup = json_encode($replyMarkup, true);
اون & gt; را پاک کنید، دوستان من دارن قالب وب سایت تغیرراتی میدن متاسفانه کدها درچار اشتباه نگارشی شده.
ممنون
سلام
من به روش زیر نوشتم ولی به مشکل خوردم ببینید لطفا ببینید مشکلش کجاس
http://*******.org
با سلام. لطفآ اینگونه مشکلات را از طریق فرم تماس برای ما ارسال کنید. این قسمت مختص مسائل مربوط به این نوشته است. با تشکر
سلام دوست عزیز مقالتون خیلی عالی بود فقط یک سوال:وقتی از متد sendMessage استفاده میکنیم ی متدهای مشابه برای ارسال متن,متن هارو به صورت متراکم و بدونه فاصله و شکست خط میفرسته و امکان استفاده از اموجی های تلگرامم نیست ولی تو روبات های دیگه دیدم که استفاده میکنن ممنون میشم در این باره راهنماییم کنین
سلام پوریا عزیز
در متد سند مسیج، من به این شکل متن می فرستم و ایموجی هم ارسال میشه و در قست هایی که از بک اسلش ان استفاده کردم خط دچار شکست میشه.
“Hello, my name is … ? \n That mean hello ?. \n How can i help you ? ?”
اگر هم می خواید از المنت های HTML البته بعضی از اونها که در داکیومنشن خود تلگرام نام برده شده استفاده کنید باید parse_mode = ‘HTML’ قرار بدید.
شاد و سلامت باشید.
ممنون از راهنمایتون خیلی مطالب سایتتون آموزندس راجب متن سوال بالا یک مقدار جستجو کردم جوابشو پیدا کردم گفتم بزارم شاید بقیه ی دوستانم به کارشون اومد
همون جور که شما گفتین کد اموجی هارو باید فرستاد ولی کدا یک مقدار متفاوته لینک کامل کدارو میزارم
http://apps.timwhitlock.info/emoji/tables/unicode
به عنوان مثال:\xF0\x9F\x9A\x95
بازم ممنون از وب سایت خوبتون
سلام.وقت بخیر و تشکر بابت مطالب مفیدتون.
بتی در تلگرام ساختم.صد پیام که بهش ارسال میشه دیگه پیام های بعدی ارسا نمیشه.یعنی توسط getupdate پیام های بعدی خوانده نمیشه.چیکار میشه کرد؟با تشکر۰۹۳۹۴۶۹۴۰۴۶
سلام حسین مظفری عزیز.
با getUpdate کار نکردم.
کلا از webhook استفاده می کنم.
آیا برای ساخت ربات ویو گیر یا همون بازدید گیر هم از این روش استفاده کنم
آیا برای هر رباتی باید یه ربات عین ربات شما درست کنم بعد برنامه بنویسم؟
لطفا جواب بدید!!!
سلام محمد براهویی عزیز
شما برای ساخت ربات تلگرام ( ارسال و دریافت پیام ) و یا هر نوع عملیات دیگری که از طریق رباتهای تلگرام می شه انجام داد و در داکیومنشن تلگرام هم ذکر شده باشه، می تونید از این کدها استفاده کنید، این کدها سادهترین نیاز های ابتدایی یک ربات از قبیل دریافت پیام ارسال پیام ساخت دکمه و … است.
در مورد ربات بازدیدگر بنده اطلاعی ندارم و متوجه نشدم منظور از ربات باز دیدگیر چی هست؟ بازدید کجا ؟ چه چیزی ؟
شاد و سلامت باشید.
سلام بر پوریا عزیز و تشکر از وقتی که می گذاری
من هاست و ssl فعال دارم
کدهایی که دنبالشم باید این دو کار را انجام بده
۱ – مثلا یک تصویر براش ارسال کنیم بعد یک لوگو روی اون درج کنه و بهمون تحویل بدهد اگر پیشرفته تر هم بود که لینک و در کپشن اضافه کند که بهتر
۲ کدهایی که محدودیت ۲۰۰ کارکتری کپشن را بردارد مثل ربات اتچ
میشه لطفا راهنمایی کنید
با تشکر
سلام مصطفی عزیز
برای دریافت فایل شما باید از getFile استفاده کنید.
https://core.telegram.org/bots/api#getfile
استفاده کنید، در مورد برداشتن محدودیت ۲۰۰ کاراکتری کپشن و ایجاد لوگو بر روی تصویر اطلاعاتی ندارم.
همین طور میتونید از این API ساده برای ارسال و دریافت فایل استفاده کنید،
https://github.com/PouriaParhami/vstba
فایل theBot.php یک ربات نوشته شده با همین API است، که با دیدن کدهای اون میتونید چگونگی عمل کردAPI متوجه بشید.
همین طور به این نکته توجه کنید که فایلها باید داری حجم خاصی باشه، در دو لینکی که ابتدا براتون گذاشتم مطالعه کنید.
برای ارسال تصویر نیز می توانید از :
https://core.telegram.org/bots/api#sendphoto استفاده کنید.
شاد و سلامت باشید.
سلام و عرض خسته نباشید مجدد؛ یک سوال دیگه داشتم، چطوری میتونم وقتی کاربر پیام میده اسمش رو براش بفرستم؟(یوزرنیم رو گفتید اما فکر کنم اسم کوچیک بیشتر به کارم میاد:) )
آیا میتونم از این کد استفاده کنم؟: $update[‘message’][‘chat’][‘firstname’]
ممنون از پاسخگویی خوبتون:))
سلام امیر حسین عزیز
به این روشهای می تونید اطلاعات مورد نظر دریافت کنید
‘fromFirstName’ => $update[‘message’][‘from’][‘first_name’],
‘fromLastName’ => $update[‘message’][‘from’][‘last_name’],
‘fromUserName’ => $update[‘message’][‘from’][‘username’],
یا
‘chatFirstName’ => $update[‘message’][‘chat’][‘first_name’],
‘chatLastName’ => $update[‘message’][‘chat’][‘last_name’],
‘chatUserName’ => $update[‘message’][‘chat’][‘username’],
شاد و سلامت باشید.
تشکر از پاسختون:)
برای من بسیار مفید بود.
با تشکر.
مسعود عزیز
خوشحالیم از اینگه مطلب برای شما کاربردی و مفید بوده.
شاد و سلامت باشید.
سلام خسته نباشید….
من همه مراحل فوق رو انجام دادم ولی هیچ پیامی رد و بدل نمیشه.
webHook رو هم ست کردم. پیامش هم اومد که ست شده.
اینم لوکیشن فایلس:
سلام مهدی عزیز
لوکشین فایلتونو در دید همه قرار ندید
من با داشتن فقط لوکشین شما کار خاصی نمی تونم انجام بدم، خودتون باید خطا ها و پیام هایی که به سمت شما میاد و همین طور درستی کدی که نوشتید و بررسی کنید.
اگر پیام خطا و یا هر نوع پیام دیگری از جی سونی که به سمت شما میاد بررسی کردید جستوجو کردید و متوجه نشدید مشکل کجا ست اون پیام یا خطا را برای من ارسال کنید تا بررسی کنم.
سلام مهدی عزیز
مشکلات می تونه به این دلایل باشه:
۱- اشتباه آدرس درهی در ست کردن وب هوک
۲- ست نشدن اس اس ال
۳- وارد کردن اشتباه توکن آی دی
اگر این موارد همه گی درست بودن ببینید پیام خطایی دارید یا خیر مانند همیشه از این چند خط استفاده کنید
error_reporting(E_ALL);
ini_set(‘display_errors’, TRUE);
ini_set(‘display_startup_errors’, TRUE);
همین طور ببینید درون جی سونی که دریافت می کنید چه اطلاعاتی موجوده.
سلام بسیار عالی بود اموزشتون.
فقط سوال اینکه هیچ عکس العملی بات نشون نمیده .چطور میتونم دیباگ کنم کدم رو خروجی رو بتونم ببیننم. اصلا ببینم کانکشن برقرار میشه و خروجی چیه؟!
امیدیار عزیز
چک کنید تا آدرس وب هوک درست ست کرده باشید
چک کنید اس اس ال فعال باشه
چک کنید توکن آی دی درست وارد کرده باشید
update$ با print_r یا var_dump چاپ کنید و ببیند داخلش چه اطلاعاتی وجود داره
این سه خط کد در ابتدای فایل تون قرار بدید
error_reporting(E_ALL);
ini_set(‘display_errors’, TRUE);
ini_set(‘display_startup_errors’, TRUE);
مرسی دوست عزیز:
موقع صدا زدن api متد send message با webhook خطای ۵۰۲ Bad Gateway میگیرم!!
سلام امیدیار عزیز
bad gateway 502 به این معنا است که یک سرور داره اطلاعات نادرست از سرور دیگری دریافت می کنه، متد سند مسیج شما داره اطلاعات نادرست ارسال می کنه.
سلام
من همه کارای که به دوستانمون گفتید انجام دادم بازم بات خوابه خود فایلش رو روی بروزر اجرا می کنم این خطا رو میده
file_get_contents(https://api.telegram.org/botxxxxxxxxxxxxxxxxxxxXXXXXXXX/sendMessage?chat_id=&text=chi+migi+%3F%3F): failed to open stream: HTTP request failed! HTTP/1.1 400
Bad Request in
شما می تونید راهنماییم کنید؟
آقا با curl این مشکل رو حل کردم الان رو بروزر می زنم این پیغام رو می ده
{“ok”:false,”error_code”:400,”description”:”Bad Request: chat_id is empty”}
کلی خوشحال و خندون رفتم رو بات زدم دیدم خیلی خنگ تر این حرفاست.
سلام سعید عزیز بله با curl هم می شه
چت آدی خالی هست
سلام سعید عزیز
تا اونجایی که بنده اطلاع دارم از file_get_content باید به این شکل استفاده کنید = $update1 = file_get_contents(“php://input”);
برای ارسال پیام به شکل دیگری، و در کد بالا مقدار چت آدی وجود نداره
پوریا جان کار نمی کنه.
سعید عزیز
کدتونو برام به این نشانی ایمیل کنید info at darkoobweb dot com
سلام واقعا ممنونم که همیشه پاسخگوی همه هستید و از سوال ها خسته نمیشید:) امیدوارم موفق باشید
بازم من یه سوال دیگه دارم:))
میشه به من بگید چطوری میتونم روبات رو طوری تنظیم کنم که تنها به کاربرانی جواب بده که داخل کانال من عضو هستن
مثلا اگه شخص پیام دهنده عضو کانال نبود یهش بگه اول تو کانال عضو شه و بعد دوباره پیام بده
این متد رو جدیدا تلگرام به قابلیت روبات ها اضافه کرده فکر کنم،الان خیلی از روبات ها هستن که اینجورین
ممنون بابت همه راهنمایی هاتون
سلام امیر حسین عزیز
زمانی که فردی با ربات شما ارتباط برقرار میکنه، میتونید مشخصات فرد بگیرد ، بعد به ربات بگید گروه شما را به دنبال اون مشخصات بگرده اگر بود کارهایی که فرد مورد نظر میخواد انجام شه در غیر این صورت کاری انجام نده
به یاد داشته باشید که در بوت فادر باید قابلیت عضو شدن ربات در گروه را فعال کنید.
سلام ممنون؛ اما چطوری باید دنبال فرد تو گروه یا کانال بگرده؟ من تو api.telegram.org گشتم اما چون زبانم خیلی خوب نیست نتونست به من کمک کنه
سلام امیر حسین عزیز
می تونید با متد getchatmemberscount تعداد ممبر ها را بشمارید سپس با یک حلقه یکی یکی اطلاعات آنها را گرفته و با اطلاعات فردی که با ربات شما ارتبات برقرار کرده مقایسه کنید.
لینک زیر مطالعه کنید
https://core.telegram.org/bots/api#getchatmemberscount
https://core.telegram.org/bots/api#chatmember
https://core.telegram.org/bots/api#getchatmember
ممنون از راهنماییتون
ببخشید در Overview چجوریfuulرا تغییر بدم گزینه ی crypto وجود نداره!!
سلام
شما میبایست از منوی بالا crypto را انتخاب کنید و تنظیمات مربوطه را در آنجا انجام دهید.
crypto سومین گزینه بعد از overviw است.
موفق باشید.
ببخشید پیدا کردم ولی امکان تغییرش نیس!!نوشته ممکنه۲۴ساعت طول بکشه!!!
سلام
بله برای اعمال بعضی تنظیمات ممکن زمانی رو در انتظار سپری کنید.
از اونجایی که مدت زمان رایگان استفاده از این SSL شش ماه است، پیشنهاد می کنم SSL خریداری کنید.
سلام آقا پوریا ممنون ابت آموزش مفیدتون میشه لطفا متد ارسال اسناد و تصاویر رو هم توضیح بدی.با تشکر
با سلام. خوشحالم که مورد استفاده واقع گردیده است.
به زودی چند مجموعه آموزش جدید در سایت اضافه خواهد شد و از طریق اشتراک ایمیلی برای اعضا ارسال خواهد شد.
موفق باشید.
سلام آموزشتون خیلی خوب بود.
توقسمت مربوط به SSL وقنی به flexible تغییرش میدم پیغام Active certificate نمایش داده نمیشه. علتش چیه؟
سلام
معمولا بین چند ساعت تا چند روز طول میکشه تا اس اس ال برای شما فعال بشه.
باز هم داکیومنشن کلودفایر مطالعه کنید.
شاد و سلامت باشید.
سلام، من هیچوقت حوصله نظر دادن تو سایت ها رو ندارم ولی واقعا این دفعه نتونستم!!
آقا انصافا خیلی عالی توضیح دادی و کد روبات رو هم خیلی ساده و قابل فهم نوشتی. هیچ سایتی پیدا نکردم که عین شما به این خوبی گفته باشه همه مطالب رو.
این ربات رو هم با استفاده از آموزش شما تونستم به اینجا برسونم : strangerpp_bot@
بازم ممنونم :))
با سلام. خیلی هم عالی. موفق باشید
سلام خسته نباشید دو تا سوال داشتم
۱: کلود فیلر روی دامنه های ir هم جواب میده
۲: بعد اینکه گواهینامه ssl روی دامنه اومد دوباره باید dns های کلود فیلر رو به هاستی که خریدیم تغییر بدیم؟
با سلام.
دامنه ir پشتیبانی نمیشود توسط سایت کلودفلیر.
در مورد سوال بعدی شما باید دی ان اسهای کلودفلیر را ست کنید.
موفق باشید.
سلام لطفا متد ارسال تصاویر و فایل از هاست رو قرار بدید .با تشکر
http://darkoobweb.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%81%D8%A7%DB%8C%D9%84-%D8%AA%D9%88%D8%B3%D8%B7-%D8%B1%D8%A8%D8%A7%D8%AA-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85/
سلام خیلی عالیه
مهندس فقط هاستینگ اجازه استفاده از file_get_contents(“php://input”); رو نمیده و میگه از curl استفاده کنید چطوری میتونم تغییر بدم و از curl استفاده کنم لطفا راهنمایی نمایید
ممنون
سلام مرتضی عزیز
این مطالب مطالعه کنید، جواب پیدا میکنید.
https://stackoverflow.com/questions/8540800/php-how-to-use-curl-instead-file-get-contents
https://stackoverflow.com/questions/13004805/file-get-contents-or-curl-in-php
https://stackoverflow.com/questions/13004805/file-get-contents-or-curl-in-php
موفق و شاد باشید.
سلام خسنه نباشید من توبخش nameserver جدید رو جایگزین قدیمی کنیم مشکل دارم نمیدونم چطوری توcpanel این رو عوض کنم
سلام
بهترین راه حل تماس با مدیر سرور هست.
شاد و سلامت باشید.
سلام خسته نباشید . خاستم با عرض پوزش بگم که این مطلب سایت شما بسیار ناقص میباشد و کسی که از برنامه نویسی سر در نیاره اصلا نمیتونه اموزش شما رو متوجه بشه
شما اول باید بگید دوستان چجوری سورس رو بنویسند به طور کامل
بعد بگید هاست تهیه کنند و اونو اپلود کنند
و……..
سپاس
با سلام. امیدوارم خوب باشید. این آموزش برای کسانی است که با زبان برنامه نویسی php آشنایی دارند ولی به درستی نمیدانند چگونه از فانکشن های مربوط به API تلگرام برای ساخت ربات استفاده کنند.
موفق باشید
سلام
من ربات رو تنظیم کردم با وب هوک پیام ارسال و دریافت میشه
اما داخل یه حلقه میفته و برای یه پیام چندین بار جواب میاد
با سلام. مشکل از دستوراتی ست که نوشته اید. اگر مایلید در ساعت عضو شوید و از قسمت پشتیبانی مشکلتان را ارسال کنید.
با تشکر
سلام
درخواستها از طرف بات به هوک می آید (لاگ می اندازد) منتهی sendMessage ارسال نمی شود
سلام مهدی عزیز
اگر مظور شما این است که تلگرام درخواست کاربر را به ربات شما ارسال میکند، و شما آن در خواست را به صورت json و در نهایت یک آرایه دریافت میکنید، اما با متد سند مسیج نمیتوانید به کاربر پاسخ مد نظر خودتونو بدید
ابتدا شرط های خود را چک کنید، مثلا اگر در جواب “سلام چطوری” میخواهید پاسخی بدهید، چکنید عبارت را صحیح نوشته باشید “سلام چطور ی” با عبارت قبل متفاوت است.
منطق شرط خود را چک کنید
اگر از این موارد نبود متد سند مسیج را یک بار برسی کنید ممکن است اطلاعات را به صورت نادرسی میفرستید، مواردی مانند اشتباه وارد گردن چت آدی و … را نیز در نظر بگیرید و چک کنید.
کجا لاگ میندازه؟ آیا خطایی هم دریافت میکنید با این مضمون ( شما به صورت نادرس اطلاعت را ارسال میکنید) یا هر نوع خطای دیگه؟
سلام
آخرین پیغامی که cloudflare به من داده پیغامه زیره و هنوز بعد از ۱۲ ساعت هیچ تغییری نکرده، الان باید چکار کنم؟
Note: SSL certificate issuance may take up to 24 hours
Status: Ineligible for SSL
سلام
در پیغام گفته شده ممکنه تا ۲۴ طول بکشه، همین طور به احتمال زیاد آدرسی که دادید غیر قابل قبول بوده
توجه کنید اگر دامنه مد نظر شما ir. هست به شما ssl داده نخواهد شد.
اگر دامنه ir. نیست این لینک مطالعه کنید
https://support.cloudflare.com/hc/en-us/articles/200170566-Why-isn-t-SSL-working-for-my-site-
شاد و سلامت باشید.
ببخشید یه سوال داشتم
از چه کدی برای این عمل زیر میشه استفاده کرد یا ایا نمونه کد دارین ممنون میشم بفرستید
اینکه یک صفحه ای از سایت رو ربات بخونه مثلا این صفحه همیشه ۱ رو نمایش میده و وقتی به عدد ۳ رسید یا ۳ رو نمایش داد همون لحظه به کاربر پیام بده
با سلام. اگر منظورتون این است که میخواهید صفحه ی اچ تی ام را پارس کنید تا اطلاعات را به دست بیاورید میتوانید از php simple html dum parser استفاده کنید. به وسیله این کتابخونه میتونید اچ تی ام ال رو پارس کنید و هر سناریویی دارید انجام دهید. موفق باشید
ببخشید نمونه کد یا اموزشی دارین که بگه چجوری میتونیم دکمه رو درون دکمه بسازیم یعنی وقتی کسی روی یه دکمه زد بره و دکمه های خاص دیگه ای رو نمایش بده منظورم از دکمه همون کیبورد هستش
بله. در همین آموزش ساخت کلید توضیح داده شده است. برای کلیدهای تو در تو شما باید دو صفحه کلید بسازید. همچنین در آموزش تصویری ساخت ربات تلگرام ساخت کلید به صورت ویدئوی آموزش داده شده است. و در نهایت اگر میخواهید کد را ما برایتان بنویسیم میتوانید عضو سایت شوید و در پروفایل کاربری خود در قسمت پشتیبانی درخواست خود را توضیح دهید تا واحد پشتیبانی به شما کمک برسانند.
موفق باشید
ممنونم از کمکتون یه سوال داشتم که خیلی ممنون میشم اینم کمکم کنید اگه بخواییم تو کد نویسی php ربات در قسمت تکست اینتر داشته باشید در خروجی از چه کدی میشه استفاده کرد ؟
سلام
اگر منظورتون این که پیغامی که میخواهید چاپ کنید در دوخط باشه به این شکل عمل میکنیم.
“salam \n chetori”
و به این شکل برای کاربر نمایش داده میشه:
salam
chetori
این هم لینکی در مورد PHP
http://darkoobweb.com/php-learning-1/
شاد و سلامت باشید.
شرمنده یه سوال دیگه برام پیش اومد ارایه های من اینجوری دریافت میشن
$message = $results->message;
$text = $message->text;
$chat = $message->chat;
$user_id = $chat->id;
اگه بخوام اسم کاربر یا همون first name رو هم دریافت کنم باید این جوری بنویسم ایا ؟
$first_name= $message->first_name;
سلام
درون مسیج دو فیلد وجود داره به نام from دارای تایپ User و chat دارای تایپ chat
chat و user دارای فیلدهای first_name و… هستند
پس باید بگید، مسیج -> فرام -> فرست نیم
سه لینک زیر را مطالعه کنید
https://core.telegram.org/bots/api#message
https://core.telegram.org/bots/api#user
https://core.telegram.org/bots/api#chat
سلام ، آموزش شما شبیه آموزش های دیگر در سایته؟ یا یک نمونه فایل php داره؟ و اینکه درباره فایل پی اچ پی تون توضیح دادید؟ سطح کاربرد این آموزش رو بنویسید ، که مثلا کسی که می تونه کدهای پی اچ پی رو بفهمه به دردش می خوره یا کسی که میتونه کد پی اچ پی رو به صورت منسجم بنویسه؟ من جزء دسته ای هستم که کدها رو می فهمم! دوست دارم یک کد باشه تغییرش بدم ،اضافه کنم ، تا کدهای خودمو بسازم. اما بدون توضیح اولیه نمی تونم شروع کنم. این آموزش مناسب منه؟
سلام احمد عزیز
روند این آموزش بشکلی هست که کسانی که با زبان PHP آشنایی دارن میتونن ( آشنایی با مفاهیم اولیه) به راحتی کدهای نویشته شده را درک کنند.
میتونید متد سند مسیج در این آموزش خودتون تغییر بدبد، یا برای ساخت کلید متدی بنویسید.
کدها نوشته شده و توضیح داده شده هر کد چه کاری انجام میده.
سلام خسته نباشید، من دوباره برام سوال پیش اومد که چطور میتونم به چند کاربر همزمان پیام ارسال کنم؟
ممنون میشم پاسخ بدید
سلام امیر حسین عزیز
برای این کار شما باید چت آی دی کاربران خودتونو ذخیره کرده باشید (برای مثال در مای اس کیو ال)
بعد یک حلقه ایجاد می کنید، و در متد سند مسیج قسمتی که میخواد چت آدی وارد بشه چت آی دی های کاربران از دیتابیس میخونید و در اون قرار می دید.
شاد و سلامت باشید.
ممنون از زحمات فراوانتون
عرض تشکر و خسته نباشید فراوان دارم خدمت شما.
آموزش بسیار جامع و عالی ای بود. دستتون درد نکنه
من کد اولی را در یک فایل پی اچ پی نوشتم و توکن ار هم تغییر دادم.
فایل را آپلود کردم روی هاستی که ssl اون را هم فعال کردم.
وب هو کهم با موفقیت روی آدرس url فایل ست شد.
الان به ربات پیام میدم، هیچ اتفاقی نمی افته…. دلیلش چیه؟
سلام امین عزیز
در صورتی که از ست بودن وب هوک و اس اس ال خودتون اطمینان دارید. کد زیر در ابتدای فایل پی اچ پی خودتون قرار بدید.
error_reporting(E_ALL);
ini_set(‘display_errors’, TRUE);
ini_set(‘display_startup_errors’, TRUE);
و دوباره درخواستی برای ربات ارسال کنید، در همون مکانی که فایل پی اچ پی شما قرار داره فایلی ایجاد میشه که خطا یا مشکل مربوطه درون اون نوشته میشه.
همچنین میتونید JSON که به سمتتون میاد دریافت کنید و ببینید چه پیامی داخلش وجود داره.
شاد و سلامت باشید.
سلام.خسته نباشید.من متوجه نشدم فایل های php رو کجا آپلود کنم؟
سلام
فایل php مورد نظر را درون هاستتون میتونید قرار بدید، حالا یا در روت، یا پوشه یا پوشههایی ایجاد کنید و درون اون قرار بدید.
قسمت بعد معرفی مسیری هست که فایل php ربات شما در اونجا واقع شده.
شاد و سلامت باشید.
سلام من هم مشکلم مثل دوست اولی هستش یعنی هم وب هوک درسته و هو ssl ولی رباتمرکار نمیکنه الان هم این کدی که گفتید رو اضافه کردم و پیغام زیر رو بهم داد
error_reporting(E_ALL); ini_set(‘display_errors’, TRUE); ini_set(‘display_startup_errors’, TRUE);
خواهش جواب بدید چون کارم خیلی مهمه
سلام
این سه کد کجا به شما نمایش میده؟
این سه خط کد زمانی که خطایی رخ بده برای شما فایلی به نام log.txt ایجاد میکنن و پیام خطای مربوطه در اون فایل چاپ میشه
این سه استیتمنت در این API هم استفاده شده . https://github.com/PouriaParhami/vstba
اگر اس اس ال و وب هوک شما به درستی ست شده باشن، تنها احتمال خطای نگارشی در دستوراتی است که نوشتید.
سلام دامنه های ملی هم پشتیبانی میشه؟ ir؟
سلام مجید عزیز
خیر مشکل داشت.
شاد و سلامت باشید.
من ssl دارم و وقتی هوک رو به تلگرام معرفی کردم گفت set شد !
الان به رباتم متن ارسال میکنم چیزی جواب نمیده …
بنظر شما زمان میبره که تلگرام فعالش کنه ؟
سلام، اگر پیغام ست شدن داده شده پس ست شده، مشکل از جای دیگه است، کامنتهای قبلی بخونید ممکنه مشکل شما هم مثل دوستان دیگه باشه
سلام . من می خوام متن دکمه ها از داخل یک دیتابیس و درون بک چرخه فراخوانی بکنم . میشه یک راهنمایی کنید؟
مثلا توی یکی از تیبل های دیتابیسم چهار تا قسمت دارم . می خوام اونها بیاد به جای دکمه ها . میشه؟
سلام
فانکشن createButton در لینک زیر نگاه کنید انشاالله مفید باشه.
https://github.com/PouriaParhami/vstba/blob/master/vstba.php
سلام چطوری یه فایل بسازم با پسوند php ؟
یعنی باید از کجا فایل بسازم و کدها رو بنویسم توش که ران بشه
سلام
درون هاست تون باید فایل بسازید
اگر از Cpanel استفاده میکنید، وارد file manager بشید، بعد وارد public_html
در سمت چپ بالا نوشته شده file، folder
میتونید فولدری ایجاد کنید درون اون فایلی با پسوند php بسازید یا اینکه در همون public_html فایلی با پسوند php بسازید.
شاد و سلامت باشید.
[۱۴-Feb-2018 04:53:05 UTC] PHP Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in on line 35
[14-Feb-2018 04:53:05 UTC] PHP Warning: file_get_contents(https://api.telegram.org/bot44/sendMessage?chat_id=44&text=%D8%B4%D8%B1%D9%88%D8%B9+%D9%85%DB%8C+%DA%A9%D9%86%DB%8C%D9%85): failed to open stream: no suitable wrapper could be found in sitedladdkonbot.php on line 35
[14-Feb-2018 04:53:06 UTC] PHP Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in sitedladdkonbot.php on line 35
[14-Feb-2018 04:53:06 UTC] PHP Warning: file_get_contents(https://api.telegram.org/botjj/sendMessage?chat_id=63&text=salam+be+ruye+mahet): failed to open stream: no suitable wrapper could be found in on line 35
این خطا پیه کسی میدونه ؟
سلام
لطفا Token ID ربات به صورت شخصی نگه داری کنید و در سوالات توکن آدی ننویسید.
لینک زیر ممکن بتونه کمکتون کنه.
در خط ۳۵ چه عملی دارید انجام میدید؟
https://stackoverflow.com/questions/19527150/failed-to-open-stream-no-suitable-wrapper-could-be-found
file_get_contents($url);
این دستور هست
file_get_contents(https://api.telegram.org/bot/sendMessage?chat_id=&text=chi+migi+%3F%3F): failed to open stream: no suitable wrapper could be found in /home/sajadkho/public_html/S/sitedladdkonbot.php
این خطا هست
سلام
ممکنه سرور اجازه استفاده از این فانکشن به شما نداده باشه، با مسئول هاستینگ تون تماس بگرید و در این مورد سوال کنید.
allow_url_include در php.ini باید Enable باشد .
سلام و درود
من میخوام در جواب کاربر، در یکی از کیس ها، یک تصویر توسط ربات برای کاربر ارسال بشه.قالب دستوریش رو می گین چطوریه؟
تشکر
ممنونم قالب رو پیداکردم.
موفق باشید
سلام و تشکر فروان بابت آموزش خوبتون
همه کارا رو انجام دادم رباتم کار نمیکنه .اون سه خطم که به اول پی اچ پیم اضافه کردم توی log ایجاد شده این دو خط ارور رو داد
[۰۲-Mar-2018 16:23:08 UTC] PHP Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/yadnetto/public_html/myphpbot.php on line 12
[02-Mar-2018 16:23:08 UTC] PHP Warning: file_get_contents(https://api.telegram.org/botToken/sendmessage?chat_id=115182326&text=hello): failed to open stream: no suitable wrapper could be found in /home/yadnetto/public_html/myphpbot.php on line 12
مشکلش چیه و باید چیکار کنم؟؟؟
سلام
با مدیر سرور تماس بگیرید و بگید میخواهید از file_get_contents استفاده کنید، اگر گفتند نمیتونید و این امکان به شما ندادن باید از curl برای ارسال و دریافت اطلاعات استفاده کنید.
شاد و سلامت باشد.
با سلام و عرض ارادت در آموزش سایت خوبتان ، در وب هوک غیرفعالStatus: Website not active (DNS modification pending) و نام سرور جایگزین قبلی با نام جدید نشده و نادر ست است و the nameservers provided و ست نشده و و در ison پیغام: {“ok”:true,”result”:true,”description”:”Webhook is already deleted”} میدهد لطفا راهنمایی فرمایید چگونه نام قبلی به جدید انجام و وب هوک فعال و ست شود با تشکر
سلام
برای مورد اول با شرکتی که از آن هاست تهیه کردهاید تماس بگیرد سریعتر و دقیقتر کمکتون میکنن
برای مورد دوم
api.telegram.org/bot/setWebhook?url=https://x.com/x.php
بعد از bot تکن ای پی آی خودتون قرار بدید و بعد از url= آدرس دقیق فایل ربات برای مثال من نوشتم :
http://x.com/x.php
شاد و سلامت باشید.
اقا از کجا دامین و هاست رایگان بگیریم که تو کلودفیر ثبت کنیم ؟ . برای یه ربات نباید ۱۰۰ هزار داد که .
سلام
متاسفانه اطلاعی ندارم.
صفحه php که میسازیم و کد رو داخلش قرار میدیم با داخل تگ html باشه ؟
چون من تمام مراحل بالا رو رفتن ، ssl هم داره دامنه ام ولی ربات کار نمیکنه
با سلام. خیر نیازی نیست داخل تگ HTML باشه.
این سه خط کد را در ابتدای کدتون قرار بدید. کد را اجرا کنید و خطای مربوطه را بررسی کنید.
در شاخه ی اصلی که فایل PHP قرار دارد یک فایل ایجاد میشود و خطاها را به شما نشان میدهد. احتمالا خطای نگارشی و یا منظقی دارید. موفق باشید.
با سلام رباط ساخته شده و فایل کد نویسی مطابق پی اچ پی فوق انجام و وبهوک هم با آن ست شده ولی ربات کار نمی کند ، چگونه با یک سرور ایجاد شده مرتبط کنیم و چگونه ربات را امتحان کنم مراحل تست و آزمایش آنرا بفرمایید
مرسی بابت زحماتتون !!
|
چطور Name server اصلی رو جایگزین فعلی کنم ؟؟؟
وارد تنظیمات دامنتون باید بشین و ان اسهاتون رو تغییر بدین. موفق باشید
سلام ممنون از سایت خوبتون. هومن ، پوریا واقعا از وقتی که برای مخاطبین سایتون می گذارید متشکرم و راستش یکم شگفت زده شدم.
من هم یک مشکل دارم باتم آماده است اما کلیدهای اینلاینی که کار کردم به خاطر متن طولانی باید در دو (یا چند) سطر بیاید که مشکل از اینجاست که آخرش را چند نقطه نمایش می دهد بجای نمایش کامل متن . می تونید اینجا ببینید @saman_fabaloollbot
واقعا به کمک احتیاج دارم و اگر راه حل این چالش بدید ممنونتون می شم البته اگر خبری ازتون نشد بازم ارادتم نسبت به شما کم نمی شه
سلام هومن و پوریا عزیز خدا قوت و خسته نباشید نمی دونم پیام قبلی رسید یا نه . از اینکه اینقدر برای مخاطبینتون وقت می زارید دلگرم شدم و خواستم یک مشکلم درمیان بزار خدا کنه کمک کنید. ربات راه اندازی کردم و کلیدهای اینلاین (شیشه ای) داره ولی چون متنش طولانی هست به صورت کامل نشان نمی دهد ممنون میشم راهنمایی کنید خود ربات گویای همه توضیحات هست اینجا @saman_fabaloollbot
سلام پویا جان
من یک مشگلی دارم خیلی رفته رو اعصابم! میشه راهنماییم کنی؟
من وقتی فایل PHP شما رو روی سرور میزارم مطمین نیستم ادرسش رو درست میزارم یا نه این ادرسشه:
https://files.000webhost.com
مطمین هستم که وب هوک ست شده ولی وقتی میرم تو ربات استارت میزنم کار نمیکنه!
خیلی عجیبه من ۴ ماه پیش همین روند رو انجام دادم کار میکرد! آیا تلگرام اخیرا بلاک کرده این فعالیت هارو؟ یا من اشتباه انجام میدم؟!
مرسی
سلام
من تمامی کارهایی که کردید رو درست انجام دادم و لینک دمو
https://api.telegram.org/botMYTOKEN/setWebhook?url=https://ucoucom2.000webhostapp.com/bot/bot/3/myphpbot.php
قرار دادم و پیام
{“ok”:true,”result”:true,”description”:”Webhook was set”}
برام اومد ولی اصلا رباتم کار نمیکنه
ربات
@UcoUcombot
مشکل از چیه؟؟؟
از کجا و چطوری دقیقا سرور هارو تو سایت ssl جایگزن کنم. می رمDNS نیم سرور نشون میده ولی جایگزین نمیکنه
سلام من یه ربات تلگرام ساختم و فایل کدی رو که برای ربات نوشتم رو درون هاست قرار دادم و SSL هم فعال کردم اما همینطور وب هوک رو هم ست کردم اما بازم کار نمی کنه ربات
لطفا بگید چکار کنم ممنون
من موفق شدم یه ربات تلگرامی تعبیر خواب بسازم
سلام من میخوام رباتم در کانال عضو بشه باید چیکار کنم . لطفا با ایمیلم ارسال کنید
سلام
من از force_reply استفاده که می کنم منو که با دستورات keyboard ساخته شده مخفی میشه!
راهی هست که مخفی نشه؟
هر چی گشتم پیدا نکردم.
ممنون
سایت خیلی خوبی دارید
امیدوارم موفق باشید