آموزش ساخت ربات تلگرام ( کاربردی ) Telegram Bot - Network - یکشنبه ۱۶ اسفند ۱۳۹۴
سلام ، آموزش کاربردی ساخت ربات تلگرام که از طریق هاست دستورات به سمت ربات ارسال میشه داخل این تاپیک قرار میگیره :
کپی برداری از مطالب کاملاً آزاد می باشد چون این مطالب عامدانه و پابلیک برای شما عزیزان در انجمن ایران سرور قرار گرفته
در ابتدای کار باید به ربات Botfather در تلگرام بروید و سپس دستور /start را زده و از سمت این ربات دستورات و آموزشهایی برای شما ارسال میگردد ! توجه داشته باشید که عموم دستورات کار با سرویس های تلگرام با / شروع میشوند ...
با زدن دستور /newbot فرمان ساخت ربات را به سرور تلگرام میفرستید !
زمانیکه پیغام مقابل را دریافت کردید Alright, a new bot. How are we going to call it? Please choose a name for your bot
باید یک نام برای ربات انتخاب نمایید
که در اینجا ما عبارت Iranserver را ارسال میکنیم و شما میتوانید نام دلخواه را تایپ و ارسال نمایید
مرحله بعد از شما نامی برای ID ربات که قرار است بسازید درخواست میکند و بنا به مواردی چون آزاد بودن نام ربات و نام دلخواه می توانید نامی انتخاب نمایید البته توجه کنید که انتهای نام شما حتماً و الزاماً باید کلمه bot قرار گیرد که در اینجا ما Iranserverbot را انتخاب می نماییم البته برای شکیل بودن میتوانید از _ هم برای جدا سازی ID از اسم ربات استفاده نمایید ، بطور مثال Iranserver_bot
یک کد ضمیمه پیام تایید ساخت ربات برای دسترسی به مدیریت به شما ارسال می شود که شما این کد را باید در جایی ذخیره و محفوظ نگهدارید عملاً حکم فرمان کنترل ربات شما را دارد پس مواظب این کد باشید !
مطابق تصویر زیر
از دستور /setdescription جهت توضیحی کوتاه برای دیده شدن این توضیح از سمت کاربران استفاده کنید بطور مثال بعد از زدن دستور /setdescription بنویسید این یک ربات آموزشی است !
از دستور /setuserpic و سپس انتخاب نام ربات از کیبورد ، تصویر مورد نظر را جهت پروفایل ربات انتخاب نمایید !!
در این مرحله باید به ربات chatfuel وارد شوید که مهمترین قسمت کار است !!!
با ارسال دستور /start ساخت و راه اندازی ربات آغاز میشود !
و بعد با دستور /addbot به همراه کد که در قسمت قبلی دریافت نمودید باید ارسال نمایید مانند تصویر زیر :در صورتیکه تمام مراحل را بدرستی انجام داده باشید پیغام زیر نمایان میگردد :
Okay, I added you as owner of Robotname خب تا اینجای کار ما یک ربات در تلگرام ساختیم و البته در تلگرام هم امکاناتی محدود برای استفاده و تنظیمات ربات موجود است
اما برای مدیریت و دسترسی بیشتر تصمیم بر این داریم روش ایجاد فایل php روی هاست و ارسال کدهای دستوری به ربات را آموزش دهیم
ایجاد فایل php و اتصال آن به ربات تلگرام !!! - Network - یکشنبه ۱۶ اسفند ۱۳۹۴
از طریق ftp یا کنترل پنل به filemanager سایت برید هدف اینه که شما یک فایل با نام رباتتون و پسوند php روی هاستتون ایجاد کنید نمونه فایل در پایین همین پست ضمیمه شد که میتوانید دانلودش کنید و با قرار دادن کد Token ربات ( که ابتدای ساختش دریافت کردید) روی هاستتون آپلود کنید و قرارش بدید .
برای تست کد هارو در این قسمت هم قرار میدم تا بررسی بهتری داشته باشیمکد پیاچپی: <?php define('BOT_TOKEN', '[color=#FF0000]کد ربات شما[/color] '); define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
function apiRequestWebhook($method, $parameters) { if (!is_string($method)) { error_log("Method name must be a string\n"); return false; }
if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { error_log("Parameters must be an array\n"); return false; }
$parameters["method"] = $method;
header("Content-Type: application/json"); echo json_encode($parameters); return true; }
function exec_curl_request($handle) { $response = curl_exec($handle);
if ($response === false) { $errno = curl_errno($handle); $error = curl_error($handle); error_log("Curl returned error $errno: $error\n"); curl_close($handle); return false; }
$http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE)); curl_close($handle);
if ($http_code >= 500) { // do not wat to DDOS server if something goes wrong sleep(10); return false; } else if ($http_code != 200) { $response = json_decode($response, true); error_log("Request has failed with error {$response['error_code']}: {$response['description']}\n"); if ($http_code == 401) { throw new Exception('Invalid access token provided'); } return false; } else { $response = json_decode($response, true); if (isset($response['description'])) { error_log("Request was successfull: {$response['description']}\n"); } $response = $response['result']; }
return $response; }
function apiRequest($method, $parameters) { if (!is_string($method)) { error_log("Method name must be a string\n"); return false; }
if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { error_log("Parameters must be an array\n"); return false; }
foreach ($parameters as $key => &$val) { // encoding to JSON array parameters, for example reply_markup if (!is_numeric($val) && !is_string($val)) { $val = json_encode($val); } } $url = API_URL.$method.'?'.http_build_query($parameters);
$handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($handle, CURLOPT_TIMEOUT, 60);
return exec_curl_request($handle); }
function apiRequestJson($method, $parameters) { if (!is_string($method)) { error_log("Method name must be a string\n"); return false; }
if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { error_log("Parameters must be an array\n"); return false; }
$parameters["method"] = $method;
$handle = curl_init(API_URL); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($handle, CURLOPT_TIMEOUT, 60); curl_setopt($handle, CURLOPT_POSTFIELDS, json_encode($parameters)); curl_setopt($handle, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
return exec_curl_request($handle); }
function processMessage($message) { // process incoming message $message_id = $message['message_id']; $chat_id = $message['chat']['id']; if (isset($message['text'])) { // incoming text message $text = $message['text'];
if (strpos($text, "/start") === 0) { apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => 'Hello', 'reply_markup' => array( 'keyboard' => array(array('Hello', 'Hi')), 'one_time_keyboard' => true, 'resize_keyboard' => true))); } else if ($text === "Hello" || $text === "Hi") { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Nice to meet you')); } else if (strpos($text, "/stop") === 0) { // stop now } else { apiRequestWebhook("sendMessage", array('chat_id' => $chat_id, "reply_to_message_id" => $message_id, "text" => 'Cool')); } } else { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'I understand only text messages')); } }
define('WEBHOOK_URL', 'https://my-site.example.com/secret-path-for-webhooks/');
if (php_sapi_name() == 'cli') { // if run from console, set or delete webhook apiRequest('setWebhook', array('url' => isset($argv[1]) && $argv[1] == 'delete' ? '' : WEBHOOK_URL)); exit; }
$content = file_get_contents("php://input"); $update = json_decode($content, true);
if (!$update) { // receive wrong update, must not happen exit; }
if (isset($update["message"])) { processMessage($update["message"]); }
در فایل بالا فقط در قسمت کد ربات شما باید token ربات خودتون رو وارد و روی هاستتون قرار بدید .
نکته : هاست شما باید دارای ssl باشد و سایت با آدرس HTTPS فعال باشد
در صورتی ssl ندارید من و همکارانم از طریق سایتهای رایگان با توجه به اعلام دامنه سایتتون میتونیم ssl یکساله ساخته و در اختیارتون قرار بدیم
البته داخل گوگل هم بزنید ssl رایگان سایت فراوان وجود داره اما در هر صورت اگر تمایل داشتید با ارسال نام دامنه در تاپیک یا بصورت خصوصی در کمترین زمان ssl مربوط به سایت شما ساخته و پرداخته میشه...
خب در این مرحله لحظه فراخوانی ربات و اتصال فایل php به ربات فرا رسیده
مرورگر را باز کنید و مطابق آموزش آدرس را وارد نمایید
https://api.telegram.org/botcoderobot/setWebhook?url=https://siteshoma/botname.php
بطور مثال من کدهای بالا را بعد از وارد کردن Token رباتم که در خط دوم مشخص کردم با نام Iranserverbot.php روی هاستم ذخیره کردم و ssl هم فعال گردیده پس آدرس فراخوانی روی مرورگر به این شکل میشه :
https://api.telegram.org/bot321321321321321321321321321321/setWebhook?url=https://irserv.ir/Iranserverbot.php
بعد از اجرای آدرس در مرورگرتون باید پیغام زیر را دریافت کنید{"ok":true,"result":true,"description":"Webhook is set"}
بعبارتی اتصال بدرستی با ربات شما در تلگرام برقرار شده
در pv (پیام خصوصی ربات )میتوانید دستور /start را صادر کنید باید عکس العمل نشون بده و داخل همین فایل PHP جملاتی پیش فرض تعریف شده که باید
به شما پاسخ بده مثلاً برای کلمات Hi و Hello باید عکس العمل نشون بده // این ربات دارای کیبورد تعریف شده داخل همین فایل php هست و مطابق نیاز خودتون میتونید قسمتهای مورد نظر را ویرایش و جملات و کلمات جدید اضافه کنید
موفق و پیروز باشید !
RE: آموزش ساخت ربات تلگرام ( کاربردی ) Telegram Bot - andro - یکشنبه ۱۶ اسفند ۱۳۹۴
ممنون از آموزش خوبتون من چندتا سایت ssl رایگان معرفی میکنم خودم رو Cpanel استفاده کردم شما بعد از ساخت میتونید از قسمت ssl خود cpanel که من تست گرفتم بصورت zip از گزینه Browse یا وقتی از سایت دانلودش میکنید و ساختیدش از زیپ خارج کنید و با notepad فایلهاشو باز کنید و کپی کنید تو قسمتهای مشخص شده ssl داخل cpanel خلاصه خیلی راحته
این سایت که عالیه تا 3 سال میتونید از اس اس ال رایگان بگیرید !!!! https://buy.wosign.com/free/#apply
https://www.startssl.com/
http://www.webhostingtalk.ir/showthread.php?t=149482
http://www.webhostingtalk.ir/showthread.php?t=37262
RE: ایجاد فایل php و اتصال آن به ربات تلگرام !!! - tootak - یکشنبه ۱۶ اسفند ۱۳۹۴
(یکشنبه ۱۶ اسفند ۱۳۹۴ ساعت ۲۲:۴۸ ب.ظ )Network نوشته: از طریق ftp یا کنترل پنل به filemanager سایت برید هدف اینه که شما یک فایل با نام رباتتون و پسوند php روی هاستتون ایجاد کنید نمونه فایل در پایین همین پست ضمیمه شد که میتوانید دانلودش کنید و با قرار دادن کد Token ربات ( که ابتدای ساختش دریافت کردید) روی هاستتون آپلود کنید و قرارش بدید .
برای تست کد هارو در این قسمت هم قرار میدم تا بررسی بهتری داشته باشیمکد پیاچپی: <?php define('BOT_TOKEN', '[color=#FF0000]کد ربات شما[/color] '); define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
function apiRequestWebhook($method, $parameters) { if (!is_string($method)) { error_log("Method name must be a string\n"); return false; }
if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { error_log("Parameters must be an array\n"); return false; }
$parameters["method"] = $method;
header("Content-Type: application/json"); echo json_encode($parameters); return true; }
function exec_curl_request($handle) { $response = curl_exec($handle);
if ($response === false) { $errno = curl_errno($handle); $error = curl_error($handle); error_log("Curl returned error $errno: $error\n"); curl_close($handle); return false; }
$http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE)); curl_close($handle);
if ($http_code >= 500) { // do not wat to DDOS server if something goes wrong sleep(10); return false; } else if ($http_code != 200) { $response = json_decode($response, true); error_log("Request has failed with error {$response['error_code']}: {$response['description']}\n"); if ($http_code == 401) { throw new Exception('Invalid access token provided'); } return false; } else { $response = json_decode($response, true); if (isset($response['description'])) { error_log("Request was successfull: {$response['description']}\n"); } $response = $response['result']; }
return $response; }
function apiRequest($method, $parameters) { if (!is_string($method)) { error_log("Method name must be a string\n"); return false; }
if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { error_log("Parameters must be an array\n"); return false; }
foreach ($parameters as $key => &$val) { // encoding to JSON array parameters, for example reply_markup if (!is_numeric($val) && !is_string($val)) { $val = json_encode($val); } } $url = API_URL.$method.'?'.http_build_query($parameters);
$handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($handle, CURLOPT_TIMEOUT, 60);
return exec_curl_request($handle); }
function apiRequestJson($method, $parameters) { if (!is_string($method)) { error_log("Method name must be a string\n"); return false; }
if (!$parameters) { $parameters = array(); } else if (!is_array($parameters)) { error_log("Parameters must be an array\n"); return false; }
$parameters["method"] = $method;
$handle = curl_init(API_URL); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($handle, CURLOPT_TIMEOUT, 60); curl_setopt($handle, CURLOPT_POSTFIELDS, json_encode($parameters)); curl_setopt($handle, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
return exec_curl_request($handle); }
function processMessage($message) { // process incoming message $message_id = $message['message_id']; $chat_id = $message['chat']['id']; if (isset($message['text'])) { // incoming text message $text = $message['text'];
if (strpos($text, "/start") === 0) { apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => 'Hello', 'reply_markup' => array( 'keyboard' => array(array('Hello', 'Hi')), 'one_time_keyboard' => true, 'resize_keyboard' => true))); } else if ($text === "Hello" || $text === "Hi") { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'Nice to meet you')); } else if (strpos($text, "/stop") === 0) { // stop now } else { apiRequestWebhook("sendMessage", array('chat_id' => $chat_id, "reply_to_message_id" => $message_id, "text" => 'Cool')); } } else { apiRequest("sendMessage", array('chat_id' => $chat_id, "text" => 'I understand only text messages')); } }
define('WEBHOOK_URL', 'https://my-site.example.com/secret-path-for-webhooks/');
if (php_sapi_name() == 'cli') { // if run from console, set or delete webhook apiRequest('setWebhook', array('url' => isset($argv[1]) && $argv[1] == 'delete' ? '' : WEBHOOK_URL)); exit; }
$content = file_get_contents("php://input"); $update = json_decode($content, true);
if (!$update) { // receive wrong update, must not happen exit; }
if (isset($update["message"])) { processMessage($update["message"]); }
در فایل بالا فقط در قسمت کد ربات شما باید token ربات خودتون رو وارد و روی هاستتون قرار بدید .
نکته : هاست شما باید دارای ssl باشد و سایت با آدرس HTTPS فعال باشد
در صورتی ssl ندارید من و همکارانم از طریق سایتهای رایگان با توجه به اعلام دامنه سایتتون میتونیم ssl یکساله ساخته و در اختیارتون قرار بدیم
البته داخل گوگل هم بزنید ssl رایگان سایت فراوان وجود داره اما در هر صورت اگر تمایل داشتید با ارسال نام دامنه در تاپیک یا بصورت خصوصی در کمترین زمان ssl مربوط به سایت شما ساخته و پرداخته میشه...
خب در این مرحله لحظه فراخوانی ربات و اتصال فایل php به ربات فرا رسیده
مرورگر را باز کنید و مطابق آموزش آدرس را وارد نمایید
https://api.telegram.org/botcoderobot/setWebhook?url=https://siteshoma/botname.php
بطور مثال من کدهای بالا را بعد از وارد کردن Token رباتم که در خط دوم مشخص کردم با نام Iranserverbot.php روی هاستم ذخیره کردم و ssl هم فعال گردیده پس آدرس فراخوانی روی مرورگر به این شکل میشه :
https://api.telegram.org/bot321321321321321321321321321321/setWebhook?url=https://irserv.ir/Iranserverbot.php
بعد از اجرای آدرس در مرورگرتون باید پیغام زیر را دریافت کنید{"ok":true,"result":true,"description":"Webhook is set"}
بعبارتی اتصال بدرستی با ربات شما در تلگرام برقرار شده
در pv (پیام خصوصی ربات )میتوانید دستور /start را صادر کنید باید عکس العمل نشون بده و داخل همین فایل PHP جملاتی پیش فرض تعریف شده که باید
به شما پاسخ بده مثلاً برای کلمات Hi و Hello باید عکس العمل نشون بده // این ربات دارای کیبورد تعریف شده داخل همین فایل php هست و مطابق نیاز خودتون میتونید قسمتهای مورد نظر را ویرایش و جملات و کلمات جدید اضافه کنید
موفق و پیروز باشید !
تست شد و بخوبی کار میکنه تشکررررررر
RE: آموزش ساخت ربات تلگرام ( کاربردی ) Telegram Bot - سیدهاشم زارع - سه شنبه ۱۸ اسفند ۱۳۹۴
با استفاده از آموزش شما هم ssl رایگان گرفتم هم ربات تلگرام ساختم متشکر م
RE: آموزش ساخت ربات تلگرام ( کاربردی ) Telegram Bot - sh.dehnavi - سه شنبه ۰۵ مرداد ۱۳۹۵
سلام و عرض خسته نباشید
بنده دامنه IR دارم و برای ربات تلگرامم میخواهم ssl دریافت کنم
|