@fakin_kiska
Telegram Bots and iOS

Как можно сделать проверку при получении нужного user_id из БД в Telegram?

У меня есть бот в телеграм, который достает данные с гитлаба, чтобы это делать у него есть файлы, подключенные к вебхуку гитлаба, соответственно телеграмовские переменные по типу user_id, username и тд эти файлы не видят. Поскольку мне нужно отправлять из этих файлов сообщения в телеграм, то было предпринято написать функции для бд, которые сохраняют user_id и по нему же отправляют сообщения (Раньше работало если подставить прямой айди пользователя)

Проблема в том, что я не знаю, каким образом делать проверки при получении user_id, чтобы каждому пользователю доставлялись свои сообщения Если при получении того же user_id в файле с вебхуком телеграма я проверял user_id в бд и в чате с пользователем, то в данном случае не приложу ума что нужно сделать

// Регистрация новых пользователей
function notification_user_login($user_id, $username)
{
    global $pdo;
    $sql = "INSERT INTO `notification_users` (user_id, username)
    VALUES (:user_id, :username)";
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT);
    $stmt->bindParam(':username', $username, PDO::PARAM_STR);
    $stmt->execute();
    return true;
}

// Получение user_id
function select_notification_user()
{
    global $pdo;
    $sql = "SELECT user_id
        FROM notification_users
        ORDER BY id DESC LIMIT 1";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    return $stmt->fetch();
}


Во второй функции я достаю по последнему id строки user_id просто для проверки работоспособности функции

include 'database.php'; // Файл с БД

$input = file_get_contents("php://input");
$json = json_decode($input);

$user = select_notification_user();

// То, что отправляет GitLab
if ($json->object_kind == 'push') { // Если пришел Push event

    $ref = $json->ref;
    $project_name = $json->project->name;
    $name = $json->user_name;
    $username = $json->user_username;

    $post = [
        'chat_id' => $user['user_id'],
        'text' => ' <b>Webhook caught push event!</b>' . "\n\n" . '<b>Ref:</b> ' . $ref . "\n"
            . '<b>Name:</b> ' . $name . "\n" . '<b>Username:</b> ' . $username . "\n" . '<b>Project name:</b> ' . $project_name,
        'parse_mode' => 'html'
    ];
    sendRequest('sendMessage', $post);
}
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы