متد ها
گرفتن اطلاعات بات¶
- متد:
getMe - اطلاعات پایهای بات را بازمیگرداند، شامل نام، نام کاربری، شناسه و... تا بتوان هویت و تنظیمات اولیه بات را بررسی کرد.
- ورودی
- این متد اطلاعات پایهای بات را برمیگرداند. معمولاً برای تست اتصال بات و شناسایی آن استفاده میشود و هیچ پارامتری به عنوان ورودی دریافت نمیکند.
- خروجی
| فیلد | نوع | توضیحات |
|---|---|---|
bot |
Bot
|
بات |
-
مثال
$bot->getMe();ارسال پیام (Text, Keypad, InlineKeypad)¶
- متد:
send - این متد پیام را از بات به یک چت ارسال میکند و نوع محتوا را میتوان مشخص کرد. مانند ارسال Text، Keypad یا InlineKeypad برای دریافت پاسخ مستقیم کاربر.
- ورودی
- خروجی
فیلد نوع توضیحات message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Keyboard\Keypad; use RubikaBot\Keyboard\Button; $bot = new Bot('YOUR_TOKEN'); // ساخت کیبورد اینلاین $keypad = Keypad::make() ->row() ->add(Button::simple('100', 'Add Account')) ->row() ->add(Button::simple('101', 'Edit Account')) ->add(Button::simple('102', 'Remove Account')); // ارسال پیام با کیبورد اینلاین $result = $bot->chat('CHAT_ID') ->message('Welcome') ->inlineKeypad($keypad->toArray()) ->send(); echo "پیام با شناسه {$result['message_id']} ارسال شد";<ارسال keypad¶
- متد:
send - ورودی
فیلد نوع توضیحات chat_idstrشناسه چت textstrمتن پیام chatkeypadChatKeypadTypeEnumنوع keypad chatkeypadKeypadkeypad message_idstrدر جوابِ پیامِ؟ - خروجی
فیلد نوع توضیحات message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Keyboard\Keypad; use RubikaBot\Keyboard\Button; $bot = new Bot('YOUR_TOKEN'); // ساخت کیبورد چت $keypad = Keypad::make() ->setResize(true) ->setOnetime(false) ->row() ->add(Button::simple('100', 'Add Account')) ->row() ->add(Button::simple('101', 'Edit Account')) ->add(Button::simple('102', 'Remove Account')); // ارسال پیام با کیبورد چت $result = $bot->chat('CHAT_ID') ->message('Welcome') ->chatKeypad($keypad->toArray(), 'New') ->send(); echo "پیام با شناسه {$result['message_id']} ارسال شد";
ارسال پیام متنی¶
- متد:
send - ورودی
فیلد نوع توضیحات chat_idstrشناسه چت textstrمتن پیام message_idstrدر جوابِ پیامِ؟ - خروجی
فیلد نوع توضیحات message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // ارسال پیام متنی ساده $result = $bot->chat('CHAT_ID') ->message('Hello user, this is my text') ->send(); echo "پیام با شناسه {$result['message_id']} ارسال شد"; // ارسال پیام با ریپلای $result2 = $bot->chat('CHAT_ID') ->message('این پیام در پاسخ به پیام دیگری است') ->replyTo('MESSAGE_ID_TO_REPLY') ->send();curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendMessage' \ --header 'Content-Type: application/json' \ --data-raw '{ "text": "Hello user, this is my text", "chat_id": "{chat_id}" }'import requests data = { "chat_id": chat_id, "text": "Hello user, this is my text", } url = f'https://botapi.rubika.ir/v3/{token}/sendMessage' response = requests.post(url, json=data) print(response.text)var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendMessage', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "text": "Hello user, this is my text" }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });
ارسال نظرسنجی¶
- متد:
sendPoll - این متد امکان ارسال نظرسنجی از بات به چت را فراهم میکند، شامل سوال، گزینهها و تنظیمات تعامل کاربران با نظرسنجی.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت pollstrمتن سوال optionslist[str]گزینههای سوال - خروجی
فیلد نوع توضیحات message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // ارسال نظرسنجی $result = $bot->chat('CHAT_ID') ->poll( 'Do you have any question?', ['yes', 'no'] ) ->sendPoll(); echo "نظرسنجی با شناسه {$result['message_id']} ارسال شد"; // مثال دیگر با گزینههای بیشتر $result2 = $bot->chat('CHAT_ID') ->poll( 'کدام زبان برنامهنویسی را ترجیح میدهید؟', ['Python', 'PHP', 'JavaScript', 'Java'] ) ->sendPoll();curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendPoll' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "question": "Do you have any question?", "options": ["yes", "no"] }'import requests data = { "chat_id": chat_id, "question": "Do you have any question?", "options": ["yes", "no"], } url = f'https://botapi.rubika.ir/v3/{token}/sendPoll' response = requests.post(url, json=data) print(response.text)from rubika_bot.requests import send_poll send_poll( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', question='Do you have any question?', options=['yes', 'no'] )var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendPoll', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "question": "Do you have any question?", "options": ["yes", "no"], }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });
ارسال موقعیت مکانی¶
- متد:
sendLocation - این متد موقعیت مکانی را از بات به چت ارسال میکند و شامل مختصات طول و عرض جغرافیایی است.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت latitudestrعرض جغرافیایی longitudestrطول جغرافیایی chatkeypadKeypadkeypad inlinekeypadKeypadKeypad message_idstrدر جوابِ پیامِ؟ chatkeypadChatKeypadTypeEnumنوع keypad - خروجی
فیلد نوع توضیحات message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // ارسال موقعیت مکانی $result = $bot->chat('CHAT_ID') ->location(35.759662741892626, 51.4036344416759) ->sendLocation(); echo "موقعیت مکانی با شناسه {$result['message_id']} ارسال شد"; // ارسال موقعیت با کیبورد اینلاین $result2 = $bot->chat('CHAT_ID') ->location(35.6892, 51.3890) ->inlineKeypad([ 'rows' => [ [ 'buttons' => [ [ 'id' => 'location_btn', 'type' => 'Simple', 'button_text' => 'مشاهده در نقشه' ] ] ] ] ]) ->sendLocation();curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendLocation' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "latitude": "{latitude}", "longitude": "{longitude}" }'import requests data = { "chat_id": chat_id, "latitude": latitude, "longitude": longitude, } url = f'https://botapi.rubika.ir/v3/{token}/sendLocation' response = requests.post(url, json=data) print(response.text)from rubika_bot.requests import send_location send_location( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', latitude='35.759662741892626', longitude='51.4036344416759' )var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendLocation', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "latitude": latitude, "longitude": longitude, }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });
ارسال مخاطب¶
- متد:
sendContact - این متد امکان ارسال اطلاعات تماس (شماره تلفن و نام فرد) از بات به چت را فراهم میکند تا کاربران بتوانند بهطور مستقیم با آن تماس برقرار کنند.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت first_namestrنام مخاطب last_namestrنامخانوادگی مخاطب phone_numberstrشماره مخاطب chatkeypadKeypadkeypad inlinekeypadKeypadkeypad message_idstrدر جوابِ پیامِ؟ chatkeypadChatKeypadTypeEnumنوع keypad - خروجی
فیلد نوع توضیحات message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // ارسال مخاطب $result = $bot->chat('CHAT_ID') ->contact( 'علی', 'رضایی', '09123456789' ) ->sendContact(); echo "مخاطب با شناسه {$result['message_id']} ارسال شد"; // ارسال مخاطب با کیبورد اینلاین $result2 = $bot->chat('CHAT_ID') ->contact( 'محمد', 'احمدی', '09351112233' ) ->inlineKeypad([ 'rows' => [ [ 'buttons' => [ [ 'id' => 'call_btn', 'type' => 'Simple', 'button_text' => 'تماس بگیر' ] ] ] ] ]) ->sendContact();curl --location -g --request POST 'https://botapi.rubika.ir/v3/{token}/sendContact' \ --header 'Content-Type: application/json' \ --data-raw '{ "chat_id": "{chat_id}", "first_name": "{first_name}", "last_name": "{last_name}", "phone_number": "{phone_number}" }'import requests data = { "chat_id": chat_id, "first_name": first_name, "last_name": last_name, "phone_number": phone_number, } url = f'https://botapi.rubika.ir/v3/{token}/sendContact' response = requests.post(url, json=data) print(response.text)from rubika_bot.requests import send_contact send_contact( token='SUPER_SECRET_TOKEN', chat_id='CHAT_ID', first_name='Ali', last_name='Rn', phone_number='09038754321' )var request = require('request'); var options = { 'method': 'POST', 'url': 'https://botapi.rubika.ir/v3/{token}/sendContact', 'headers': { 'Content-Type': 'application/json' }, body: JSON.stringify({ "chat_id": chat_id, "first_name": first_name, "last_name": last_name, "phone_number": phone_number }) }; request(options, function (error, response) { if (error) throw new Error(error); console.log(response.body); });
گرفتن اطلاعات چت¶
- متد:
getChat - این متد اطلاعات کامل یک چت مشخص را بازمیگرداند، شامل شناسه، نام، نوع، تصویر و تنظیمات آن، تا بات بتواند ویژگیها و وضعیت چت را مدیریت یا بررسی کند.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت - خروجی
فیلد نوع توضیحات chatChatچت -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // دریافت اطلاعات چت $chatInfo = $bot->getChat([ 'chat_id' => 'CHAT_ID' ]); // یا به روش سادهتر $chatInfo = $bot->getChatInfo('CHAT_ID'); // نمایش اطلاعات چت echo "عنوان چت: {$chatInfo['title']}" . PHP_EOL; echo "نوع چت: {$chatInfo['type']}" . PHP_EOL; echo "آیدی چت: {$chatInfo['chat_id']}" . PHP_EOL; // بررسی نوع چت if ($chatInfo['type'] === 'Group') { echo "این یک گروه است" . PHP_EOL; echo "تعداد اعضا: {$chatInfo['members_count']}" . PHP_EOL; } // استفاده در شرط if ($chatInfo['type'] === 'User') { // ارسال پیام خصوصی $bot->chat($chatInfo['chat_id']) ->message("سلام {$chatInfo['title']}! 👋") ->send(); }
گرفتن آخرین آپدیتها¶
- متد:
getUpdates - این متد تمامی پیامها، ویرایشها و رویدادهای جدید مربوط به چتها را از سرور دریافت میکند. با استفاده از آن، بات میتواند فعالیتهای کاربران، پاسخها، و تغییرات پیامها را دنبال کند.
- ورودی
فیلد نوع توضیحات offset_idstrشناسهای برای دریافت ادامهی لیست. در صورت تمایل به دریافت پیامهای بعدی، مقدار next_offset_id درخواست قبلی را در این فیلد قرار دهید. limitintتعداد رکوردهای هر درخواست - خروجی
فیلد نوع توضیحات updateslist[Update]آرایهای از آپدیت ها next_offset_idstrشناسهای برای درخواست بعدی جهت دریافت ادامهی دادهها. -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Types\Update; $bot = new Bot('YOUR_TOKEN'); // دریافت آپدیتها با محدودیت تعداد $updates = $bot->getUpdates([ 'limit' => 10 ]); // پردازش آپدیتها foreach ($updates['updates'] as $update) { echo "شناسه آپدیت: {$update['update_id']}" . PHP_EOL; echo "نوع آپدیت: {$update['type']}" . PHP_EOL; // بررسی نوع آپدیت if ($update['type'] === 'Message') { echo "پیام جدید از: {$update['message']['text']}" . PHP_EOL; echo "در چت: {$update['message']['chat_id']}" . PHP_EOL; } if ($update['type'] === 'CallbackQuery') { echo "کلیک روی دکمه: {$update['callback_query']['button_id']}" . PHP_EOL; } } // دریافت آپدیتهای بعدی با استفاده از offset if (isset($updates['next_offset_id']) && $updates['next_offset_id']) { $nextUpdates = $bot->getUpdates([ 'offset_id' => $updates['next_offset_id'], 'limit' => 10 ]); echo "تعداد آپدیتهای بعدی: " . count($nextUpdates['updates']) . PHP_EOL; } // حلقه برای دریافت مداوم آپدیتها $offset = null; while (true) { $updates = $bot->getUpdates([ 'offset_id' => $offset, 'limit' => 10 ]); foreach ($updates['updates'] as $update) { // پردازش هر آپدیت var_dump($update); } $offset = $updates['next_offset_id'] ?? $offset; sleep(1); // تاخیر 1 ثانیه }
فوروارد کردن پیام¶
- متد:
forwardMessage - این متد پیام موجود در یک چت را به چت دیگری منتقل میکند، بدون تغییر محتوا و با حفظ اطلاعات اصلی پیام.
- ورودی
فیلد نوع توضیحات from_chat_idstrاز چتِ؟ message_idstrشناسه پیام to_chat_idstrبه چتِ؟ - خروجی
فیلد نوع توضیحات new_message_idstrشناسه پیام جدید -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // فوروارد پیام از یک چت به چت دیگر $result = $bot->forwardFrom('FROM_CHAT_ID') ->messageId('MESSAGE_ID') ->forwardTo('TO_CHAT_ID') ->forward(); echo "پیام با شناسه جدید {$result['new_message_id']} فوروارد شد" . PHP_EOL; // فوروارد با غیرفعال کردن نوتیفیکیشن $result2 = $bot->forwardFrom('GROUP_CHAT_ID') ->messageId('IMPORTANT_MESSAGE_ID') ->forwardTo('USER_CHAT_ID') ->disableNotification(true) ->forward(); // فوروارد چندین پیام $messageIds = ['MSG_1', 'MSG_2', 'MSG_3']; foreach ($messageIds as $msgId) { $result = $bot->forwardFrom('SOURCE_CHAT') ->messageId($msgId) ->forwardTo('DESTINATION_CHAT') ->forward(); echo "پیام {$msgId} با شناسه جدید {$result['new_message_id']} فوروارد شد" . PHP_EOL; } // استفاده در هندلر پیام برای فوروارد خودکار $bot->onMessage(function(Bot $bot, $message) { // اگر پیام حاوی کلمه "فوروارد" بود، به چت مدیریت فوروارد کن if (strpos($message->text, 'فوروارد') !== false) { $result = $bot->forwardFrom($message->chat_id) ->messageId($message->message_id) ->forwardTo('MANAGEMENT_CHAT_ID') ->forward(); // پاسخ به کاربر $bot->chat($message->chat_id) ->message("پیام شما به مدیریت فوروارد شد ✅") ->send(); } });
ویرایش متن پیام¶
- متد:
editMessage - این متد متن یک پیام ارسالشده توسط بات را ویرایش میکند، بدون ایجاد پیام جدید در چت.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت message_idstrشناسه پیام textstrپیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // ویرایش متن پیام $result = $bot->chat('CHAT_ID') ->messageId('MESSAGE_ID') ->message('این متن جدید است') ->editMessage(); echo "پیام با موفقیت ویرایش شد" . PHP_EOL; // ویرایش پیام با فرمتبندی $result2 = $bot->chat('CHAT_ID') ->messageId('MESSAGE_ID') ->message("متن **بولد** و __ایتالیک__") ->setParseMode('Markdown') ->editMessage(); // ویرایش پیام در پاسخ به رویداد $bot->onMessage(function(Bot $bot, $message) { // ارسال پیام اولیه $sentMessage = $bot->chat($message->chat_id) ->message("در حال پردازش...") ->send(); // شبیهسازی پردازش sleep(2); // ویرایش پیام بعد از پردازش $bot->chat($message->chat_id) ->messageId($sentMessage['message_id']) ->message("پردازش با موفقیت انجام شد! ✅") ->editMessage(); }); // ویرایش پیام با شمارنده $messageId = 'COUNTDOWN_MESSAGE_ID'; for ($i = 5; $i > 0; $i--) { $bot->chat('CHAT_ID') ->messageId($messageId) ->message("شمارنده: {$i}") ->editMessage(); sleep(1); } // ویرایش نهایی $bot->chat('CHAT_ID') ->messageId($messageId) ->message("شمارنده به پایان رسید! 🎉") ->editMessage(); // ویرایش پیام با استفاده از متد مستقیم $result3 = $bot->editMessageText([ 'chat_id' => 'CHAT_ID', 'message_id' => 'MESSAGE_ID', 'text' => 'متن ویرایش شده' ]);
ویرایش Inline Keypad¶
- متد:
editMessageKeypad - این متد صفحهکلید (InlineKeypad) یک پیام موجود را بهروزرسانی میکند، بدون تغییر متن پیام.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت message_idstrشناسه پیام inline_keypadKeypadKeypad -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Keyboard\Keypad; use RubikaBot\Keyboard\Button; $bot = new Bot('YOUR_TOKEN'); // ساخت کیبورد جدید $newKeypad = Keypad::make() ->row() ->add(Button::simple('add_account', '➕ افزودن حساب')) ->row() ->add(Button::simple('edit_account', '✏️ ویرایش حساب')) ->add(Button::simple('remove_account', '🗑️ حذف حساب')); // ویرایش کیبورد پیام $result = $bot->chat('CHAT_ID') ->messageId('MESSAGE_ID') ->inlineKeypad($newKeypad->toArray()) ->editMessageKeypad(); echo "کیبورد پیام با موفقیت ویرایش شد" . PHP_EOL; // مثال پیشرفته: تغییر کیبورد بر اساس وضعیت $bot->onMessage(function(Bot $bot, $message) { // اگر کاربر روی دکمه "مشاهده جزئیات" کلیک کرد if ($message->button_id === 'view_details') { // ساخت کیبورد جدید با گزینههای بیشتر $detailedKeypad = Keypad::make() ->row() ->add(Button::simple('edit_profile', '👤 ویرایش پروفایل')) ->row() ->add(Button::simple('change_password', '🔐 تغییر رمز')) ->add(Button::simple('privacy_settings', '⚙️ تنظیمات حریم خصوصی')) ->row() ->add(Button::simple('back_to_main', '🔙 بازگشت')); // ویرایش کیبورد پیام فعلی $bot->chat($message->chat_id) ->messageId($message->message_id) ->inlineKeypad($detailedKeypad->toArray()) ->editMessageKeypad(); } // اگر کاربر روی دکمه "بازگشت" کلیک کرد if ($message->button_id === 'back_to_main') { // بازگشت به کیبورد اصلی $mainKeypad = Keypad::make() ->row() ->add(Button::simple('view_details', '📋 مشاهده جزئیات')) ->row() ->add(Button::simple('settings', '⚙️ تنظیمات')) ->add(Button::simple('help', '❓ راهنما')); $bot->chat($message->chat_id) ->messageId($message->message_id) ->inlineKeypad($mainKeypad->toArray()) ->editMessageKeypad(); } }); // ویرایش کیبورد با استفاده از متد مستقیم $keypadData = [ 'rows' => [ [ 'buttons' => [ [ 'id' => 'btn1', 'type' => 'Simple', 'button_text' => 'دکمه ۱' ] ] ] ] ]; $result2 = $bot->editMessageKeypad([ 'chat_id' => 'CHAT_ID', 'message_id' => 'MESSAGE_ID', 'inline_keypad' => $keypadData ]);
حذف پیام¶
- متد:
deleteMessage - این متد یک پیام مشخص را از چت حذف میکند، شامل پیامهای ارسالی بات یا پیامهای دیگران (در صورت داشتن مجوز).
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // حذف پیام $result = $bot->chat('CHAT_ID') ->messageId('MESSAGE_ID') ->delete(); echo "پیام با موفقیت حذف شد" . PHP_EOL; // حذف پیام با استفاده از متد مستقیم $result2 = $bot->deleteMessage([ 'chat_id' => 'CHAT_ID', 'message_id' => 'MESSAGE_ID' ]); // حذف پیام در پاسخ به رویداد $bot->onMessage(function(Bot $bot, $message) { // اگر پیام حاوی کلمه ممنوعه بود، حذف شود $forbiddenWords = ['اسپم', 'تبلیغ', 'فیلتر']; foreach ($forbiddenWords as $word) { if (strpos($message->text, $word) !== false) { // حذف پیام $bot->chat($message->chat_id) ->messageId($message->message_id) ->delete(); // ارسال اخطار $bot->chat($message->chat_id) ->message("⚠️ پیام شما به دلیل محتوای نامناسب حذف شد.") ->send(); break; } } }); // حذف پیامهای قدیمی به صورت دستهای $oldMessages = ['MSG_001', 'MSG_002', 'MSG_003', 'MSG_004']; foreach ($oldMessages as $messageId) { try { $bot->chat('CHAT_ID') ->messageId($messageId) ->delete(); echo "پیام {$messageId} حذف شد" . PHP_EOL; sleep(1); // تاخیر برای جلوگیری از محدودیت نرخ } catch (Exception $e) { echo "خطا در حذف پیام {$messageId}: {$e->getMessage()}" . PHP_EOL; } } // حذف پیام خود بات بعد از مدت زمان مشخص $bot->onMessage(function(Bot $bot, $message) { // اگر پیام دستور /temp بود if ($message->text === '/temp') { // ارسال پیام موقت $tempMessage = $bot->chat($msmessageg->chat_id) ->message("این پیام بعد از 10 ثانیه حذف میشود...") ->send(); // حذف پیام بعد از 10 ثانیه sleep(10); $bot->chat($message->chat_id) ->messageId($tempMessage['message_id']) ->delete(); } });
تنظیم دستورها (commands)¶
- متد:
setCommands - این متد فهرست دستورات قابل استفاده بات را تعریف یا بهروزرسانی میکند تا کاربر بتواند آنها را در رابط بات مشاهده کند.
- ورودی
فیلد نوع توضیحات bot_commandslist[BotCommand]آرایهای از دستورات -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // تنظیم دستورات بات $commands = [ [ 'command' => 'start', 'description' => 'شروع کار با ربات' ], [ 'command' => 'help', 'description' => 'راهنمای استفاده از ربات' ], [ 'command' => 'profile', 'description' => 'مشاهده پروفایل کاربر' ], [ 'command' => 'settings', 'description' => 'تنظیمات ربات' ] ]; $result = $bot->setCommands([ 'bot_commands' => $commands ]); echo "دستورات بات با موفقیت تنظیم شد" . PHP_EOL; // تنظیم دستورات پیشرفته با دستهبندی $advancedCommands = [ // دستورات عمومی [ 'command' => 'start', 'description' => '🚀 شروع کار با ربات' ], [ 'command' => 'help', 'description' => '📖 راهنمای کامل' ], // دستورات کاربری [ 'command' => 'profile', 'description' => '👤 پروفایل من' ], [ 'command' => 'balance', 'description' => '💰 موجودی حساب' ], // دستورات مدیریتی [ 'command' => 'admin', 'description' => '⚙️ پنل مدیریت' ], [ 'command' => 'stats', 'description' => '📊 آمار ربات' ] ]; $result2 = $bot->setCommands([ 'bot_commands' => $advancedCommands ]); // تنظیم دستورات به صورت پویا بر اساس زبان کاربر $persianCommands = [ ['command' => 'start', 'description' => 'شروع'], ['command' => 'help', 'description' => 'راهنما'], ['command' => 'profile', 'description' => 'پروفایل'] ]; $englishCommands = [ ['command' => 'start', 'description' => 'Start bot'], ['command' => 'help', 'description' => 'Help guide'], ['command' => 'profile', 'description' => 'User profile'] ]; // تشخیص زبان کاربر و تنظیم دستورات مناسب $userLanguage = 'fa'; // در واقعیت از دیتابیس یا تنظیمات کاربر خوانده میشود if ($userLanguage === 'fa') { $bot->setCommands(['bot_commands' => $persianCommands]); } else { $bot->setCommands(['bot_commands' => $englishCommands]); } // تنظیم دستورات در زمان راهاندازی ربات function setupBotCommands(Bot $bot) { $defaultCommands = [ ['command' => 'start', 'description' => 'شروع کار با ربات'], ['command' => 'help', 'description' => 'نمایش راهنما'], ['command' => 'menu', 'description' => 'نمایش منوی اصلی'], ['command' => 'about', 'description' => 'درباره ربات'] ]; try { $bot->setCommands(['bot_commands' => $defaultCommands]); echo "✅ دستورات بات با موفقیت تنظیم شد" . PHP_EOL; } catch (Exception $e) { echo "❌ خطا در تنظیم دستورات: {$e->getMessage()}" . PHP_EOL; } } // فراخوانی تابع در زمان راهاندازی setupBotCommands($bot);
آپدیت آدرس بات (URL Endpoint)¶
- متد:
updateBotEndpoints - این متد آدرسهای endpoint بات را بهروزرسانی میکند تا سرور بتواند رویدادها و درخواستها را به آدرسهای جدید ارسال کند.
- ورودی
فیلد نوع توضیحات urlstrآدرس جدید typeUpdateEndpointTypeEnumنوع آدرس -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Types\UpdateEndpointTypeEnum; $bot = new Bot('YOUR_TOKEN'); // تنظیم آدرس وبهوک برای دریافت آپدیتها $result = $bot->updateBotEndpoints([ 'url' => 'https://your-domain.com/webhook', 'type' => UpdateEndpointTypeEnum::GET_UPDATES ]); echo "آدرس وبهوک با موفقیت تنظیم شد" . PHP_EOL; // تنظیم آدرس برای دریافت آیتمهای انتخابی $result2 = $bot->updateBotEndpoints([ 'url' => 'https://your-domain.com/api/selection', 'type' => UpdateEndpointTypeEnum::GET_SELECTION_ITEM ]); // تنظیم آدرس برای جستجوی اینلاین $result3 = $bot->updateBotEndpoints([ 'url' => 'https://your-domain.com/api/inline', 'type' => UpdateEndpointTypeEnum::INLINE_SEARCH ]); // استفاده از متد سادهتر برای تنظیم وبهوک $bot->setEndpoint('https://your-domain.com/webhook'); // تنظیم چندین آدرس به صورت همزمان $endpoints = [ [ 'url' => 'https://api.example.com/webhook', 'type' => UpdateEndpointTypeEnum::GET_UPDATES ], [ 'url' => 'https://api.example.com/selection', 'type' => UpdateEndpointTypeEnum::GET_SELECTION_ITEM ], [ 'url' => 'https://api.example.com/inline', 'type' => UpdateEndpointTypeEnum::INLINE_SEARCH ] ]; foreach ($endpoints as $endpoint) { try { $bot->updateBotEndpoints($endpoint); echo "✅ آدرس {$endpoint['type']} تنظیم شد: {$endpoint['url']}" . PHP_EOL; } catch (Exception $e) { echo "❌ خطا در تنظیم آدرس {$endpoint['type']}: {$e->getMessage()}" . PHP_EOL; } } // تابع کمکی برای تنظیم آدرسها در زمان استقرار function setupBotEndpoints(Bot $bot, $baseUrl) { $endpoints = [ 'webhook' => UpdateEndpointTypeEnum::GET_UPDATES, 'selection' => UpdateEndpointTypeEnum::GET_SELECTION_ITEM, 'inline' => UpdateEndpointTypeEnum::INLINE_SEARCH ]; foreach ($endpoints as $path => $type) { $url = $baseUrl . '/api/' . $path; try { $bot->updateBotEndpoints([ 'url' => $url, 'type' => $type ]); echo "✅ آدرس {$type} تنظیم شد: {$url}" . PHP_EOL; } catch (Exception $e) { echo "❌ خطا در تنظیم آدرس {$type}: {$e->getMessage()}" . PHP_EOL; } } } // استفاده از تابع setupBotEndpoints($bot, 'https://your-domain.com'); // غیرفعال کردن وبهوک (تنظیم آدرس خالی) $bot->updateBotEndpoints([ 'url' => '', 'type' => UpdateEndpointTypeEnum::GET_UPDATES ]); echo "وبهوک غیرفعال شد" . PHP_EOL;
حذف keypad¶
- متد:
editChatKeypad -
این متد با مشخص کردن پارامتر
chat_keypad_typeبا مقدارRemove، صفحهکلید مرتبط با چت را حذف میکند و گزینههای تعاملی موجود در پیامها را از بین میبرد. - ورودی
فیلد نوع توضیحات chat_idstrشناسه چت chat_keypad_typeChatKeypadTypeEnumمقدارِ Remove-
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Types\ChatKeypadTypeEnum; $bot = new Bot('YOUR_TOKEN'); // حذف کیبورد چت $result = $bot->editChatKeypad([ 'chat_id' => 'CHAT_ID', 'chat_keypad_type' => ChatKeypadTypeEnum::REMOVE ]); echo "کیبورد چت با موفقیت حذف شد" . PHP_EOL; // استفاده از متد سادهتر برای حذف کیبورد $bot->removeChatKeypad('CHAT_ID'); // حذف کیبورد در پاسخ به رویداد $bot->onMessage(function(Bot $bot, $message) { // اگر کاربر روی دکمه "بستن منو" کلیک کرد if ($message->button_id === 'close_menu') { // حذف کیبورد $bot->removeChatKeypad($message->chat_id); // ارسال پیام تأیید $bot->chat($message->chat_id) ->message("منو بسته شد. برای نمایش مجدد منو از دستور /menu استفاده کنید.") ->send(); } // حذف خودکار کیبورد بعد از عدم فعالیت if ($message->text === 'زمانسنج') { // ارسال پیام با کیبورد موقت $bot->chat($message->chat_id) ->message("این کیبورد بعد از 30 ثانیه به طور خودکار حذف میشود...") ->chatKeypad([ 'rows' => [ [ 'buttons' => [ [ 'id' => 'btn1', 'type' => 'Simple', 'button_text' => 'دکمه موقت' ] ] ] ] ], 'New') ->send(); // حذف کیبورد بعد از 30 ثانیه sleep(30); $bot->removeChatKeypad($message->chat_id); } }); // حذف کیبورد از چندین چت به صورت دستهای $chatIds = ['CHAT_1', 'CHAT_2', 'CHAT_3', 'CHAT_4']; foreach ($chatIds as $chatId) { try { $bot->removeChatKeypad($chatId); echo "کیبورد چت {$chatId} حذف شد" . PHP_EOL; sleep(1); // تاخیر برای جلوگیری از محدودیت نرخ } catch (Exception $e) { echo "خطا در حذف کیبورد چت {$chatId}: {$e->getMessage()}" . PHP_EOL; } } // تابع کمکی برای حذف کیبورد در صورت وجود function safeRemoveKeypad(Bot $bot, $chatId) { try { $bot->removeChatKeypad($chatId); return true; } catch (Exception $e) { // اگر کیبوردی وجود نداشته باشد، خطا نادیده گرفته میشود if (strpos($e->getMessage(), 'keypad not found') !== false) { return true; } throw $e; } } // استفاده از تابع ایمن safeRemoveKeypad($bot, 'CHAT_ID');
ویرایش keypad¶
- متد:
editChatKeypad - برای ویرایش صفحهکلید مرتبط با چت، باید پارامتر chat_keypad_type را برابر New قرار دهید؛ این متد صفحهکلید مرتبط با چت را بهروزرسانی میکند.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت chat_keypadKeypadkeypad chat_keypad_typeChatKeypadTypeEnumمقدارِ New-
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Keyboard\Keypad; use RubikaBot\Keyboard\Button; use RubikaBot\Types\ChatKeypadTypeEnum; $bot = new Bot('YOUR_TOKEN'); // ساخت کیبورد جدید $newKeypad = Keypad::make() ->row() ->add(Button::simple('add_account', '➕ افزودن حساب')) ->row() ->add(Button::simple('edit_account', '✏️ ویرایش حساب')) ->add(Button::simple('remove_account', '🗑️ حذف حساب')) ->setResize(true) ->setOnetime(false); // ویرایش کیبورد چت $result = $bot->editChatKeypad([ 'chat_id' => 'CHAT_ID', 'chat_keypad_type' => ChatKeypadTypeEnum::NEW, 'chat_keypad' => $newKeypad->toArray() ]); echo "کیبورد چت با موفقیت ویرایش شد" . PHP_EOL; // استفاده از متد سادهتر برای ویرایش کیبورد $bot->chat('CHAT_ID') ->chatKeypad($newKeypad->toArray(), 'New') ->editChatKeypad(); // ویرایش کیبورد در پاسخ به رویداد $bot->onMessage(function(Bot $bot, $message) { // اگر کاربر روی دکمه "تغییر منو" کلیک کرد if ($message->button_id === 'change_menu') { // ساخت کیبورد جدید با گزینههای پیشرفته $advancedKeypad = Keypad::make() ->row() ->add(Button::simple('profile', '👤 پروفایل')) ->add(Button::simple('settings', '⚙️ تنظیمات')) ->row() ->add(Button::simple('notifications', '🔔 اعلانها')) ->add(Button::simple('help', '❓ راهنما')) ->row() ->add(Button::simple('back', '🔙 بازگشت')) ->setResize(true); // ویرایش کیبورد چت $bot->chat($message->chat_id) ->chatKeypad($advancedKeypad->toArray(), 'New') ->editChatKeypad(); } }); // ویرایش کیبورد با استفاده از آرایه مستقیم $keypadData = [ 'rows' => [ [ 'buttons' => [ [ 'id' => 'btn1', 'type' => 'Simple', 'button_text' => 'دکمه ۱' ], [ 'id' => 'btn2', 'type' => 'Simple', 'button_text' => 'دکمه ۲' ] ] ] ], 'resize_keyboard' => true, 'on_time_keyboard' => false ]; $result2 = $bot->editChatKeypad([ 'chat_id' => 'CHAT_ID', 'chat_keypad_type' => ChatKeypadTypeEnum::NEW, 'chat_keypad' => $keypadData ]); // ویرایش کیبورد برای چندین چت به صورت دستهای $chatIds = ['CHAT_1', 'CHAT_2', 'CHAT_3']; $commonKeypad = Keypad::make() ->row() ->add(Button::simple('support', '🎫 پشتیبانی')) ->row() ->add(Button::simple('website', '🌐 وبسایت')) ->add(Button::simple('channel', '📢 کانال')); foreach ($chatIds as $chatId) { try { $bot->chat($chatId) ->chatKeypad($commonKeypad->toArray(), 'New') ->editChatKeypad(); echo "کیبورد چت {$chatId} ویرایش شد" . PHP_EOL; sleep(1); // تاخیر برای جلوگیری از محدودیت نرخ } catch (Exception $e) { echo "خطا در ویرایش کیبورد چت {$chatId}: {$e->getMessage()}" . PHP_EOL; } }
دریافت فایل¶
- متد:
getFile - این متد مسیر دانلود یک فایل آپلود شده را بازمیگرداند، تا بات بتواند فایل را دریافت کند.
- ورودی
فیلد نوع توضیحات file_idstrشناسه فایل - خروجی
فیلد نوع توضیحات download_urlstrآدرس فایل در سرور -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; $bot = new Bot('YOUR_TOKEN'); // دریافت لینک دانلود فایل $fileInfo = $bot->getFile([ 'file_id' => 'FILE_ID' ]); $downloadUrl = $fileInfo['download_url']; echo "لینک دانلود: {$downloadUrl}" . PHP_EOL; // دانلود فایل و ذخیره آن $fileContent = file_get_contents($downloadUrl); file_put_contents('downloaded_file.jpg', $fileContent); echo "فایل با موفقیت دانلود و ذخیره شد" . PHP_EOL; // استفاده از متد سادهتر برای دانلود فایل $savedPath = $bot->downloadFile('FILE_ID', '/path/to/save/file.jpg'); echo "فایل در مسیر {$savedPath} ذخیره شد" . PHP_EOL; // دریافت و پردازش فایل در پاسخ به رویداد $bot->onMessage(function(Bot $bot, $message) { // اگر پیام حاوی فایل بود if ($message->file_id) { try { // دریافت اطلاعات فایل $fileInfo = $bot->getFile(['file_id' => $message->file_id]); // دانلود فایل $tempPath = sys_get_temp_dir() . '/downloaded_file_' . uniqid(); $bot->downloadFile($message->file_id, $tempPath); // پردازش فایل (مثلاً بررسی سایز) $fileSize = filesize($tempPath); $fileSizeMB = round($fileSize / (1024 * 1024), 2); // پاسخ به کاربر $bot->chat($message->chat_id) ->message("فایل شما دریافت شد! 📁\nحجم فایل: {$fileSizeMB} مگابایت") ->send(); // پاک کردن فایل موقت unlink($tempPath); } catch (Exception $e) { // در صورت خطا در دریافت فایل $bot->chat($message->chat_id) ->message("خطا در دریافت فایل ❌\nلطفاً دوباره تلاش کنید.") ->send(); } } }); // تابع کمکی برای دریافت و بررسی فایل function processUploadedFile(Bot $bot, $fileId) { try { // دریافت لینک دانلود $fileInfo = $bot->getFile(['file_id' => $fileId]); // دانلود به پوشه uploads if (!is_dir('uploads')) { mkdir('uploads', 0755, true); } $filename = 'uploads/file_' . uniqid() . '.dat'; $bot->downloadFile($fileId, $filename); return [ 'success' => true, 'filename' => $filename, 'download_url' => $fileInfo['download_url'], 'size' => filesize($filename) ]; } catch (Exception $e) { return [ 'success' => false, 'error' => $e->getMessage() ]; } } // استفاده از تابع کمکی $result = processUploadedFile($bot, 'FILE_ID'); if ($result['success']) { echo "فایل با موفقیت پردازش شد: {$result['filename']} ({$result['size']} بایت)" . PHP_EOL; } else { echo "خطا در پردازش فایل: {$result['error']}" . PHP_EOL; }
ارسال فایل¶
- متد:
sendFile - این متد فایل مشخص شده را از بات به چت ارسال میکند، فایل میتواند شامل محتوا و گزینههای اضافی مانند متن همراه یا صفحهکلید باشد.
- ورودی
فیلد نوع توضیحات chat_idstrشناسه چت file_idstrشناسه فایل textstrمتن message_idstrدر جوابِ پیامِ؟ chatkeypadKeypadkeypad inlinekeypadKeypadkeypad chat_keypad_typeChatKeypadTypeEnumنوع keypad - خروجی
فیلد نوع توضیحات message_idstrشناسه پیام -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Keyboard\Keypad; use RubikaBot\Keyboard\Button; $bot = new Bot('YOUR_TOKEN'); // ارسال فایل با file_id $result = $bot->chat('CHAT_ID') ->file_id('FILE_ID') ->sendFile(); echo "فایل با شناسه پیام {$result['message_id']} ارسال شد" . PHP_EOL; // ارسال فایل با توضیحات $result2 = $bot->chat('CHAT_ID') ->file_id('FILE_ID') ->caption("این یک فایل نمونه است 📁") ->sendFile(); // ارسال فایل با کیبورد اینلاین $keypad = Keypad::make() ->row() ->add(Button::simple('download', '📥 دانلود')) ->add(Button::simple('info', 'ℹ️ اطلاعات')); $result3 = $bot->chat('CHAT_ID') ->file_id('FILE_ID') ->caption("فایل با کیبورد اینلاین") ->inlineKeypad($keypad->toArray()) ->sendFile(); // ارسال فایل در پاسخ به پیام $result4 = $bot->chat('CHAT_ID') ->file_id('FILE_ID') ->replyTo('MESSAGE_ID') ->caption("این پاسخ به پیام شماست") ->sendFile(); // ارسال فایل با غیرفعال کردن نوتیفیکیشن $result5 = $bot->chat('CHAT_ID') ->file_id('FILE_ID') ->disableNotification(true) ->sendFile(); // ارسال فایل با استفاده از متد مستقیم $result6 = $bot->sendFile([ 'chat_id' => 'CHAT_ID', 'file_id' => 'FILE_ID', 'text' => 'توضیحات فایل', 'inline_keypad' => [ 'rows' => [ [ 'buttons' => [ [ 'id' => 'view', 'type' => 'Simple', 'button_text' => 'مشاهده' ] ] ] ] ] ]); // ارسال فایل در پاسخ به رویداد $bot->onMessage(function(Bot $bot, $message) { // اگر کاربر درخواست فایل نمونه کرد if ($message->text === 'دریافت فایل نمونه') { // ارسال فایل از پیش آپلود شده $bot->chat($message->chat_id) ->file_id('SAMPLE_FILE_ID') ->caption("فایل نمونه شما 📄\nامیدواریم مفید باشد!") ->inlineKeypad([ 'rows' => [ [ 'buttons' => [ [ 'id' => 'thanks', 'type' => 'Simple', 'button_text' => '🙏 تشکر' ] ] ] ] ]) ->sendFile(); } }); // ارسال چندین فایل به صورت متوالی $fileIds = ['FILE_1', 'FILE_2', 'FILE_3']; foreach ($fileIds as $index => $fileId) { try { $result = $bot->chat('CHAT_ID') ->file_id($fileId) ->caption("فایل شماره {$index + 1}") ->sendFile(); echo "فایل {$fileId} ارسال شد (شناسه پیام: {$result['message_id']})" . PHP_EOL; sleep(2); // تاخیر برای جلوگیری از محدودیت نرخ } catch (Exception $e) { echo "خطا در ارسال فایل {$fileId}: {$e->getMessage()}" . PHP_EOL; } }
آپلود فایل¶
- متد:
requestSendFile - این متد به بات امکان میدهد نوع فایل مورد نظر برای آپلود را مشخص کند و در پاسخ، یک آدرس برای بارگذاری فایل دریافت میکند تا فایل مورد نظر از طریق آن آدرس به سرور ارسال شود.
- ورودی
فیلد نوع توضیحات typeFileTypeEnumنوع فایل - خروجی
فیلد نوع توضیحات upload_urlstrآدرس مخصوص آپلود فایل در سرور -
مثال
<?php require_once 'vendor/autoload.php'; use RubikaBot\Bot; use RubikaBot\Types\FileTypeEnum; $bot = new Bot('YOUR_TOKEN'); // درخواست آپلود فایل عکس $uploadInfo = $bot->requestSendFile([ 'type' => FileTypeEnum::IMAGE ]); $uploadUrl = $uploadInfo['upload_url']; echo "آدرس آپلود: {$uploadUrl}" . PHP_EOL; // آپلود فایل به آدرس دریافتی $filePath = '/path/to/your/image.jpg'; $fileContent = file_get_contents($filePath); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $uploadUrl); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $fileContent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/octet-stream' ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode === 200) { $uploadResult = json_decode($response, true); $fileId = $uploadResult['file_id']; echo "فایل با موفقیت آپلود شد. شناسه فایل: {$fileId}" . PHP_EOL; } else { echo "خطا در آپلود فایل. کد خطا: {$httpCode}" . PHP_EOL; } // استفاده از متد سادهتر برای آپلود فایل $fileId = $bot->uploadFile('/path/to/file.jpg', FileTypeEnum::IMAGE); echo "فایل آپلود شد. شناسه: {$fileId}" . PHP_EOL; // آپلود انواع مختلف فایل $fileTypes = [ 'عکس' => FileTypeEnum::IMAGE, 'ویدیو' => FileTypeEnum::VIDEO, 'صدا' => FileTypeEnum::VOICE, 'فایل' => FileTypeEnum::FILE, 'گیف' => FileTypeEnum::GIF ]; foreach ($fileTypes as $typeName => $fileType) { try { $fileId = $bot->uploadFile("/path/to/sample.{$typeName}", $fileType); echo "{$typeName} آپلود شد: {$fileId}" . PHP_EOL; } catch (Exception $e) { echo "خطا در آپلود {$typeName}: {$e->getMessage()}" . PHP_EOL; } } // آپلود فایل در پاسخ به رویداد $bot->onMessage(function(Bot $bot, $message) { // اگر کاربر فایل ارسال کرد if ($msg->file_id) { // دریافت فایل کاربر $userFileInfo = $bot->getFile(['file_id' => $message->file_id]); // دانلود فایل کاربر $tempFile = tempnam(sys_get_temp_dir(), 'user_file'); file_put_contents($tempFile, file_get_contents($userFileInfo['download_url'])); // پردازش فایل (مثلاً تغییر سایز عکس) // ... کد پردازش فایل // آپلود فایل پردازش شده $processedFileId = $bot->uploadFile($tempFile, FileTypeEnum::IMAGE); // ارسال فایل پردازش شده به کاربر $bot->chat($msg->chat_id) ->file_id($processedFileId) ->caption("فایل شما پردازش شد! ✅") ->sendFile(); // پاک کردن فایل موقت unlink($tempFile); } }); // تابع کمکی برای آپلود ایمن فایل function safeUploadFile(Bot $bot, $filePath, $fileType) { if (!file_exists($filePath)) { throw new Exception("فایل وجود ندارد: {$filePath}"); } $fileSize = filesize($filePath); if ($fileSize > 50 * 1024 * 1024) { // 50MB limit throw new Exception("حجم فایل بیش از حد مجاز است: {$fileSize} بایت"); } return $bot->uploadFile($filePath, $fileType); } // استفاده از تابع ایمن try { $fileId = safeUploadFile($bot, '/path/to/file.jpg', FileTypeEnum::IMAGE); echo "فایل با موفقیت آپلود شد: {$fileId}" . PHP_EOL; } catch (Exception $e) { echo "خطا: {$e->getMessage()}" . PHP_EOL; }
آدرس دریافت شده در یک فیلد با نام
upload_urlبرمیگردد که برای آپلود فایل از طریق درخواستPOSTاستفاده میشود. فایل باید در بدنه(Body)درخواست ارسال گردد.- ورودی
فیلد نوع توضیحات file(multipart/form-data)فایل - خروجی
فیلد نوع توضیحات file_idstrشناسه فایل - متد:
- متد: