آقا جدا دستت درد نکنه واقعا عالی بود ٬من کارم راه افتاد و قول میدم هر پیشرفتی بود همین جا بزارم
فقط یه سوال تو این کد باید ادرس سایت رو بزاریم
کد PHP:
define('WEBHOOK_URL', 'https://my-site.example.com/secret-path-for-webhooks/');
آقا جدا دستت درد نکنه واقعا عالی بود ٬من کارم راه افتاد و قول میدم هر پیشرفتی بود همین جا بزارم
فقط یه سوال تو این کد باید ادرس سایت رو بزاریم
کد 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"]);
}
سلام. من از این کدی (Hello bot) که گفتید کار میکنه استفاده کردم، ولی بازم ربات عکس العملی نشون نداد.
من ssl نخردیم؛ اما یه قسمت داخل سی پنل هاستم بود که از اونجا تونستم رایگان نصب کنم. دامنه به خوبی با https کار میکنه؛ اینم آدرسش:
https://ahajat.ir/robo.php
توکن هم به خوبی ست شده.
به نظرتون مشکل از کجاست؟
من آدرس دامنه رو توی کلودفلیر ثبت کردم؛ الان اگر نیم سرور های کلودفلیر رو توی ایرنیک ست کنم مشکل برطرف میشه؟
Telegram: https://t.me/Dir1400
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)