У меня есть бот в телеграм, который достает данные с гитлаба, чтобы это делать у него есть файлы, подключенные к вебхуку гитлаба, соответственно телеграмовские переменные по типу 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);
}