diff --git a/vk_client.py b/vk_client.py index 3eab634..49bc174 100644 --- a/vk_client.py +++ b/vk_client.py @@ -107,11 +107,25 @@ class VKClient: for attempt in range(max_retries): try: response = requests.post(url=URL_VK_POST, params=params_post, data=data) + response_json = response.json() if response.status_code == 200: - self.logger.info("Сообщение успешно опубликовано в VK") - self.logger.debug(response.json()) - return response + # Проверяем наличие ошибки в ответе VK API + if 'error' in response_json: + error_code = response_json['error']['error_code'] + error_msg = response_json['error']['error_msg'] + self.logger.error(f"Ошибка VK API {error_code}: {error_msg}") + if 'request_params' in response_json['error']: + self.logger.debug(f"Параметры запроса: {response_json['error']['request_params']}") + # Не повторяем попытки при ошибках валидации + if error_code == 100: # Invalid parameter + return None + elif 'response' in response_json: + self.logger.info("Сообщение успешно опубликовано в VK") + self.logger.debug(f"ID поста: {response_json['response'].get('post_id', 'неизвестен')}") + return response + else: + self.logger.warning(f"Неожиданный формат ответа VK: {response_json}") else: self.logger.warning(f"Ошибка при публикации в VK: {response.status_code} - {response.reason} (попытка {attempt + 1}/{max_retries})")