انجمن تخصصی ایران سرور
آموزش ساخت ربات تلگرام ( کاربردی ) Telegram Bot - نسخه قابل چاپ

+- انجمن تخصصی ایران سرور (https://forums.irserv.ir)
+-- انجمن: بخش آموزشی (https://forums.irserv.ir/Forum-%D8%A8%D8%AE%D8%B4-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C--1)
+--- انجمن: بخش سرورها ( سخت افزار ها ، نرم افزارها ) (https://forums.irserv.ir/Forum-%D8%A8%D8%AE%D8%B4-%D8%B3%D8%B1%D9%88%D8%B1%D9%87%D8%A7-%D8%B3%D8%AE%D8%AA-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%87%D8%A7-%D8%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%D9%87%D8%A7--53)
+---- انجمن: متفرقه ( آموزشی ) (https://forums.irserv.ir/Forum-%D9%85%D8%AA%D9%81%D8%B1%D9%82%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C--57)
+---- موضوع: آموزش ساخت ربات تلگرام ( کاربردی ) Telegram Bot (/Thread-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B1%D8%A8%D8%A7%D8%AA-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-Telegram-Bot--1405)



آموزش ساخت ربات تلگرام ( کاربردی ) 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 
یک کد ضمیمه پیام تایید ساخت ربات  برای  دسترسی به مدیریت  به شما ارسال می شود که شما این کد را باید در جایی ذخیره و محفوظ نگهدارید عملاً حکم فرمان کنترل ربات شما را دارد پس مواظب این کد باشید !

مطابق تصویر زیر
[عکس: do.php?img=552]

از دستور /setdescription   جهت  توضیحی کوتاه برای دیده شدن این توضیح از سمت کاربران استفاده کنید بطور مثال بعد از زدن دستور /setdescription  بنویسید این یک ربات آموزشی است !

از  دستور /setuserpic و سپس انتخاب نام ربات از کیبورد ،  تصویر مورد نظر را جهت  پروفایل ربات انتخاب نمایید !!

در این مرحله باید به ربات chatfuel وارد شوید که مهمترین قسمت کار است !!! 

با ارسال دستور    /start ساخت و راه اندازی ربات آغاز میشود !
و بعد با دستور  /addbot به همراه کد که در قسمت قبلی دریافت نمودید باید ارسال نمایید مانند تصویر زیر :

[عکس: do.php?img=553]
در صورتیکه تمام مراحل را بدرستی انجام داده باشید پیغام زیر نمایان میگردد :

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($handleCURLINFO_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($responsetrue);
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($responsetrue);
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($handleCURLOPT_RETURNTRANSFERtrue);
curl_setopt($handleCURLOPT_CONNECTTIMEOUT5);
curl_setopt($handleCURLOPT_TIMEOUT60);

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($handleCURLOPT_RETURNTRANSFERtrue);
curl_setopt($handleCURLOPT_CONNECTTIMEOUT5);
curl_setopt($handleCURLOPT_TIMEOUT60);
curl_setopt($handleCURLOPT_POSTFIELDSjson_encode($parameters));
curl_setopt($handleCURLOPT_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($contenttrue);

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($handleCURLINFO_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($responsetrue);
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($responsetrue);
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($handleCURLOPT_RETURNTRANSFERtrue);
curl_setopt($handleCURLOPT_CONNECTTIMEOUT5);
curl_setopt($handleCURLOPT_TIMEOUT60);

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($handleCURLOPT_RETURNTRANSFERtrue);
curl_setopt($handleCURLOPT_CONNECTTIMEOUT5);
curl_setopt($handleCURLOPT_TIMEOUT60);
curl_setopt($handleCURLOPT_POSTFIELDSjson_encode($parameters));
curl_setopt($handleCURLOPT_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($contenttrue);

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 رایگان گرفتم هم ربات تلگرام ساختم متشکر مbb :8:


RE: آموزش ساخت ربات تلگرام ( کاربردی ) Telegram Bot - sh.dehnavi - سه شنبه ۰۵ مرداد ۱۳۹۵

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