← Вернуться к списку тем

Как передать user_id пользователя спровоцировавшего отправку сообщения !

Код первого бота

<?php
// ...
$marhrut = "https://maps.google.com/maps?q=" . $lat . "%2C" . $lon . "&z=17&hl=ru";
$method = 'sendMessage';
$send_data_dispetcher = [
    'parse_mode' => "html",
    'text' => "
Заказ от @taxi_bot
Заказ № " . $nomer_zakaza . "
Клиент: @" . $username . ":
Имя: " . $first_name . "
ID Клиента: " . $user_id . "
Телефон: +" . $contact . "
Адрес: " . $adressgeo,
    'reply_markup' => [
        'inline_keyboard' => [
            [
                ['text' => '🚙 Проложить маршрут в навигаторе ? 🚙', 'url' => $marhrut],
            ],
            [
                ['text' => '❌ Забанить', 'callback_data' => '/ban'],
                ['text' => '✅ Разбанить', 'callback_data' => '/unban'],
            ]
        ]
    ]
];


Код второго бота

<?php
// ...
switch($data){
    case '/ban':
        sendMessage($dispetcher_id, "Вы забанили пользователя $????????");
        banUser($user_id);
        break;
    case '/unban':
        sendMessage($dispetcher_id, "Вы разбанили пользователя $????????");
        unbanUser($user_id);
        break;
}

Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.

  • iMakeBots [1 год назад]

    Добрый день.

    Если правильно понял, то вы хотите при нажатии кнопки передать id_пользователя?

    При форматировании вашего сообщения в читабельный вид, удалил текст - толком в него не вникнув. Случайно получилось )) - во всем виновато новое расширение для браузера - не поладил он с редактором сообщений. Расширение удалил уже, но вот из вашего сообщений успел только код восстановить.

    Надо добавить user_id в значение кнопки

    [
       'text' => '❌ Забанить', 
       'callback_data' => 'ban_' . $user_id
    ]

    А там где ловите команду достать user_id

    // используйте например для этого list()
    list($command, $user_id) = explode("_", $data);
    
    switch($command){
        case 'ban':
            sendMessage($dispetcher_id, "Вы забанили пользователя " . $user_id);
            banUser($user_id);
            break;
        case 'unban':
            sendMessage($dispetcher_id, "Вы разбанили пользователя " . $user_id);
            unbanUser($user_id);
            break;
    }
  • Vlad [1 год назад → iMakeBots]

    Огромное спасибо за подсказку ! Буду пробовать !

  • Vlad [1 год назад → iMakeBots]

    Всё получилось ! Безмерно благодарен !