Активный
- Регистрация
- 14 Сен 2024
- Сообщения
- 227
- Автор темы
- #1
Всем привет !
Написал бота по рассылки через во ВК
Прошу сильно не бить меня палками
Если кто-то не хочешь скачивать даю исходный код тут
Написал бота по рассылки через во ВК
Прошу сильно не бить меня палками
Если кто-то не хочешь скачивать даю исходный код тут
Python:
import vk_api
import time
import random
import logging
import os
from vk_api.exceptions import ApiError
# Настройки (лучше вынести в отдельный файл)
TOKEN = ""
GROUP_ID = ""
MESSAGE_TEXT = "Привет, ГОЙДА!"
DELAY_SECONDS = 1
LOG_FILE = "vk_mailing.log"
# Настройка логирования
logging.basicConfig(filename=LOG_FILE, level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s')
try:
vk_session = vk_api.VkApi(token=TOKEN)
vk = vk_session.get_api()
# Получение ID подписчиков группы
response = vk.groups.getMembers(group_id=GROUP_ID)
user_ids = response['items']
total_users = len(user_ids)
sent_count = 0
error_count = 0
logging.info(f"Найдено подписчиков: {total_users}")
print(f"Найдено подписчиков: {total_users}")
# Рассылка сообщений
for index, user_id in enumerate(user_ids):
try:
vk.messages.send(user_id=user_id, message=MESSAGE_TEXT, random_id=random.randint(0, 2 ** 31 - 1))
logging.info(f"Сообщение отправлено пользователю ID {user_id}")
print(f"Сообщение отправлено пользователю ID {user_id} ({index + 1}/{total_users})")
sent_count += 1
except ApiError as error:
error_count += 1
if error.code == 901:
logging.warning(f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом.")
print(
f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом. ({index + 1}/{total_users})")
else:
logging.error(f"Ошибка отправки пользователю ID {user_id}: {error}")
print(f"Ошибка отправки пользователю ID {user_id}: {error} ({index + 1}/{total_users})")
time.sleep(DELAY_SECONDS)
logging.info("Рассылка завершена!")
print("Рассылка завершена!")
logging.info(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")
print(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")
except ApiError as error:
logging.error(f"Произошла ошибка при инициализации сессии: {error}")
print(f"Произошла ошибка при инициализации сессии: {error}")
except Exception as e:
logging.error(f"Произошла ошибка: {e}")
print(f"Произошла ошибка: {e}")