Мне нужно доставать из базы данных все юзер айди и проверять на то, кто из них заблокировал бота, чтобы в конечном итоге их посчитать, я пытаюсь сделать это следующим способом:
// Отправка запросов в Telegram
function sendRequest($method, $post = '') {
$ch = curl_init('https://api.telegram.org/bot' . BOT_TOKEN . '/' . $method);
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$user_count = count(get_all_users_id()); // Получить количество юзеров всего
$blocked_users = 0;
for ($i = 0; $i < $user_count; $i++) {
$users_id_get = get_all_users_id()[$i];
$all_users = "\n" . $users_id_get['user_id'];
// Отправляю каждому пользователю запрос методом sendChatAction
try {
$post = [
'chat_id' => $users_id_get['user_id'],
'action' => 'typing'
];
sendRequest('sendChatAction', $post);
// Но эта часть не работает, заблокировавшие бота пользователи не добавляются в
// счетчик переменной $blocked_users и сообщение с ошибкой не выводится
} catch (Exception $ex) {
$post = [
'chat_id' => $user_id,
'text' => 'data: ' . $ex->getMessage() . ' user_id: ' . $users_id_get['user_id']
];
sendRequest('sendMessage', $post);
$blocked_users = $blocked_users + 1;
}
}
В каком месте нужно делать try...catch? В самой функции sendRequest или уже при получении каждого user_id и отправке запроса (если тут, то почему не выводится ошибка)?