ابتدا $text_reply یک مقدار دهید قبل شرط ها ممکنه خالی هست، ارور لاگ هم چک کنید.
ابتدا $text_reply یک مقدار دهید قبل شرط ها ممکنه خالی هست، ارور لاگ هم چک کنید.
ممنون از توجهتون
متاسفانه باز هم جواب نگرفتیم
راستی با همین یوزری که ربات ایجاد شده هم بزنیم جواب میگیریم
البته با یه یوزر دیگه هم امتحان کردم نشد
سلام من از خود تلگرام یه کد نمونه که هم کیبورد داره و هم قابلیت افزایش کدها درش وجود داره بسته به سلیقه و علم شما اینجا قرار میدم داخل همون فایل php که در پست اول نحوه اجراش رو توضیح داده کپی کنید مطمئنن مراحل رو درست انجام داده باشید Robot با توجه به محتوای این کدها فعال میشه من خیلی تلاش کردم با کدهای این تاپیک هیچ پیامی نمیداد اما این جواب داد
نکته : همونطوری که که من این کدهارو قرار میدم انتظار دارم دوستان عزیزی که کاملش میکنن هم اطلاعات و کدهاشونو در همین تاپیک ارسال کنن که همه استفاده کنیم
من هدفم اینه روی همین کد مثلاً تعدادی جوک با دستور قرار بدم که بطور رندوم مثلا داخل گروه کاربر میزنه !jok یکی از اون مطالب رو ارسال کنه ...
هر کجا مشکل بود اعلام کنید چون خودم تست گرفتم کمکتون میکنم
اگه میخواید رباتتون داخل گروه فعال بشه و پیام ارسال کنه دستور /start داخل چنل بزنید ...
کد PHP:
<?php
define('BOT_TOKEN', 'tokeeeeeeeeen');
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"]);
}
بجای عبارت خط دوم tokeeeeeeeeen مشخصه دیگه کد بوت خودتون رو قرار بدید
دستورات طبق کیبوردش هم مشخصه فعلاً با Hello و Hi که براش تعریف شده کار میکنه
تشکر هم فراموش نشه![]()
ویرایش توسط ali0000 : March 6th, 2016 در ساعت 21:46
آیا راهی هست که ربات تلگرام رو به دیتابیس وصل نمود ؟
اگه امکانش هست چگونه است ؟
بزودی بازگشت آریایی
wWw.Ariaie.IR
آقا جدا دستت درد نکنه واقعا عالی بود ٬من کارم راه افتاد و قول میدم هر پیشرفتی بود همین جا بزارم
فقط یه سوال تو این کد باید ادرس سایت رو بزاریم
کد PHP:
define('WEBHOOK_URL', 'https://my-site.example.com/secret-path-for-webhooks/');
فکر میکنم به نوعی شبیه rss سایت عمل کنه و احتمالاً ربات از طریق این لینک اطلاعاتی از آدرس که روی سایت هست رو استخراج و ارسال کنه یا بلعکس !! مطلب زیر در جستجوی گوگل بدست آمد
وب هوک اساسا یک رویداد اطلاع رسانی است که به url انتخابی شما ارسال میشود.کاربران میتوانند آن را برای رویداد هایی که اتفاق میفتد روی یک سایت برای فراخوانی در سایت های دیگر پیکر بندی کنند.
بنابراین وب هوک ها برای ادغام خدمات شخص ثالث و دیگر api های خارجی پشتیبانی کننده از آن ها بسیار مفید هستند
- - - Updated - - -
سلام - یکی از دوستان این کد رو بازنویسی کنه میخوام داخل گروه تلگرامی هرکس متنی یا چیزی ارسال کرد ربات پاسخی رندوم بده و امکان ارسال استیکر هم داشته باشه
دوستانی که کدهای اول این تاپیک روی هاستشون جواب نمیداد و ربات هیچ عکس العملی نشون نمیداد از همین کد استفاده کنید و حالشو ببرید
کد PHP:
<?php
define('BOT_TOKEN', 'tokeeeeeeeeen');
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"]);
}
دوستان سلام
دامنه من توسط ربات تلگرام شناسایی نمیشه
دامنه کام و https هم هست
کسی در مورد لینک زیر چیزی متوجه شد لطفا به ما کمک کنه
https://core.telegram.org/bots/self-signed
با تشکر
سلام
لطفا در مورد تعریف منو برای ربات توضیح دهید
فایل پیوست 30389
با سلام
دو سوال داشتم در مورد کیبورد
1- چطور می تونیم برای یگ دکمه بعد از زدنش زیر دکمه هم تعیین کنیم
مثلا وقتی دکمه ثبت نام رو زدیم بیاد عادی و ویژه
2- چطور می تونیم برای کیبورد ایکن هم بزاریم
با کد نویسی
شما php بلدی؟
داخل اکشن ربات هر کاری بخوای میشه کرد
- - - Updated - - -
هر دکمه یه دستوره به ربات
برای اون دکمه باید ربات یک منوی جدید ارسال کنه به کاربر
- - - Updated - - -
منو به صورت یک آرایه همراه با پیام به کاربر ارسال میشه
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)