چطور به انتخاب کاربر در بله پاسخ بدهیم؟¶
برای دکمههای درونخطی، آرایهٔ خام مستند بله را مستقیماً در reply_markup بفرستید. لاراول بله سازندهٔ دکمه یا مسیردهی پاسخ انتخاب ندارد.
use Sajaddp\Bale\Facades\Bale;
Bale::sendMessage(
chatId: 123456789,
text: 'یک گزینه را انتخاب کنید',
options: [
'reply_markup' => [
'inline_keyboard' => [
[
['text' => 'تأیید', 'callback_data' => 'confirm'],
['text' => 'وبسایت', 'url' => 'https://example.test'],
],
],
],
],
);
callback_data دادهٔ انتخاب برنامهٔ شماست و url کاربر را به نشانی پیوند میبرد. گزینهها را فقط مطابق مستندات بله برای همان ساختار بفرستید.
ابتدا انتخاب را پاسخ دهید¶
پس از دریافت callback_query، answerCallbackQuery را فراخوانی کنید تا حالت انتظار دکمه پایان یابد. سپس فقط در صورت وجود پیام همراه انتخاب، آن را ویرایش کنید؛ message در دادهٔ انتخاب اختیاری است.
$callback = $update['callback_query'];
Bale::answerCallbackQuery(
callbackQueryId: $callback['id'],
options: ['text' => 'ثبت شد'],
);
if (isset($callback['message'])) {
Bale::editMessageText(
chatId: $callback['message']['chat']['id'],
messageId: $callback['message']['message_id'],
text: 'ثبت شد',
);
}
پاسخ به انتخاب و ویرایش پیام دو کار مستقلاند. برای متدهای editMessageCaption، editMessageReplyMarkup و حذف پیام، راهنمای پیامها را بخوانید و برای امضاها به مرجع رابط برنامهنویسی رجوع کنید.