Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.
Зарегистрироваться!import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import time
from threading import Thread
# Настройки бота
VK_TOKEN = "ВАШ_ТОКЕН_ГРУППЫ" # Токен группы VK
GROUP_ID = 123456789 # ID вашей группы (без минуса)
MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊" # Текст рассылки
ATTACHMENTS = "photo-123456789_456239048" # Прикрепления (опционально)
INTERVAL = 900 # Интервал рассылки в секундах (15 минут = 900 сек)
# Список ID бесед, куда будет идти рассылка
CHAT_IDS = [
2000000001,
2000000002,
2000000003
]
class VkBot:
def __init__(self, token, group_id):
self.vk_session = vk_api.VkApi(token=token)
self.vk = self.vk_session.get_api()
self.longpoll = VkBotLongPoll(self.vk_session, group_id)
self.running = True
def send_message(self, chat_id, message, attachments=None):
try:
self.vk.messages.send(
chat_id=chat_id - 2000000000, # Преобразование ID беседы
message=message,
attachment=attachments,
random_id=0
)
print(f"Сообщение отправлено в беседу {chat_id}")
except Exception as e:
print(f"Ошибка при отправке в {chat_id}: {e}")
def start_polling(self):
while self.running:
try:
for event in self.longpoll.listen():
# Здесь можно обрабатывать входящие сообщения
pass
except Exception as e:
print(f"Ошибка в longpoll: {e}")
time.sleep(10)
def start_auto_posting(self):
while self.running:
for chat_id in CHAT_IDS:
self.send_message(chat_id, MESSAGE_TEXT, ATTACHMENTS)
time.sleep(1) # Небольшая задержка между отправками
time.sleep(INTERVAL)
def stop(self):
self.running = False
if __name__ == "__main__":
bot = VkBot(VK_TOKEN, GROUP_ID)
# Запускаем longpoll в отдельном потоке
poll_thread = Thread(target=bot.start_polling)
poll_thread.start()
# Запускаем авто-рассылку в основном потоке
try:
bot.start_auto_posting()
except KeyboardInterrupt:
bot.stop()
poll_thread.join()
Python:import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import time from threading import Thread # Настройки бота VK_TOKEN = "ВАШ_ТОКЕН_ГРУППЫ" # Токен группы VK GROUP_ID = 123456789 # ID вашей группы (без минуса) MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊" # Текст рассылки ATTACHMENTS = "photo-123456789_456239048" # Прикрепления (опционально) INTERVAL = 900 # Интервал рассылки в секундах (15 минут = 900 сек) # Список ID бесед, куда будет идти рассылка CHAT_IDS = [ 2000000001, 2000000002, 2000000003 ] class VkBot: def __init__(self, token, group_id): self.vk_session = vk_api.VkApi(token=token) self.vk = self.vk_session.get_api() self.longpoll = VkBotLongPoll(self.vk_session, group_id) self.running = True def send_message(self, chat_id, message, attachments=None): try: self.vk.messages.send( chat_id=chat_id - 2000000000, # Преобразование ID беседы message=message, attachment=attachments, random_id=0 ) print(f"Сообщение отправлено в беседу {chat_id}") except Exception as e: print(f"Ошибка при отправке в {chat_id}: {e}") def start_polling(self): while self.running: try: for event in self.longpoll.listen(): # Здесь можно обрабатывать входящие сообщения pass except Exception as e: print(f"Ошибка в longpoll: {e}") time.sleep(10) def start_auto_posting(self): while self.running: for chat_id in CHAT_IDS: self.send_message(chat_id, MESSAGE_TEXT, ATTACHMENTS) time.sleep(1) # Небольшая задержка между отправками time.sleep(INTERVAL) def stop(self): self.running = False if __name__ == "__main__": bot = VkBot(VK_TOKEN, GROUP_ID) # Запускаем longpoll в отдельном потоке poll_thread = Thread(target=bot.start_polling) poll_thread.start() # Запускаем авто-рассылку в основном потоке try: bot.start_auto_posting() except KeyboardInterrupt: bot.stop() poll_thread.join()
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import time
import json
from threading import Thread
from pathlib import Path
# Настройки бота
VK_TOKEN = "ВАШ_ТОКЕН_ГРУППЫ" # Токен группы VK
GROUP_ID = 123456789 # ID вашей группы (без минуса)
MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊" # Текст рассылки
ATTACHMENTS = "photo-123456789_456239048" # Прикрепления (опционально)
INTERVAL = 900 # Интервал рассылки в секундах (15 минут = 900 сек)
CHATS_FILE = "saved_chats.json" # Файл для сохранения ID бесед
class VkBot:
def __init__(self, token, group_id):
self.vk_session = vk_api.VkApi(token=token)
self.vk = self.vk_session.get_api()
self.longpoll = VkBotLongPoll(self.vk_session, group_id)
self.running = True
self.chat_ids = self.load_chats()
def load_chats(self):
"""Загружает сохранённые ID бесед из файла"""
try:
if Path(CHATS_FILE).exists():
with open(CHATS_FILE, 'r') as f:
return json.load(f)
except Exception as e:
print(f"Ошибка загрузки чатов: {e}")
return []
def save_chats(self):
"""Сохраняет ID бесед в файл"""
try:
with open(CHATS_FILE, 'w') as f:
json.dump(self.chat_ids, f)
except Exception as e:
print(f"Ошибка сохранения чатов: {e}")
def add_chat(self, chat_id):
"""Добавляет беседу в список, если её там нет"""
if chat_id not in self.chat_ids:
self.chat_ids.append(chat_id)
self.save_chats()
print(f"Добавлена новая беседа: {chat_id}")
def send_message(self, chat_id, message, attachments=None):
"""Отправляет сообщение в указанную беседу"""
try:
self.vk.messages.send(
chat_id=chat_id - 2000000000, # Преобразование ID беседы
message=message,
attachment=attachments,
random_id=0
)
print(f"Сообщение отправлено в беседу {chat_id}")
except Exception as e:
print(f"Ошибка при отправке в {chat_id}: {e}")
def start_polling(self):
"""Обрабатывает входящие сообщения и сохраняет беседы"""
while self.running:
try:
for event in self.longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat:
chat_id = event.chat_id + 2000000000 # Получаем полный ID беседы
self.add_chat(chat_id)
except Exception as e:
print(f"Ошибка в longpoll: {e}")
time.sleep(10)
def start_auto_posting(self):
"""Запускает автоматическую рассылку"""
while self.running:
if self.chat_ids:
print(f"Начинаю рассылку в {len(self.chat_ids)} бесед...")
for chat_id in self.chat_ids:
self.send_message(chat_id, MESSAGE_TEXT, ATTACHMENTS)
time.sleep(1) # Небольшая задержка между отправками
else:
print("Нет сохранённых бесед для рассылки")
time.sleep(INTERVAL)
def stop(self):
"""Останавливает бота"""
self.running = False
self.save_chats()
if __name__ == "__main__":
bot = VkBot(VK_TOKEN, GROUP_ID)
# Запускаем longpoll в отдельном потоке
poll_thread = Thread(target=bot.start_polling)
poll_thread.start()
# Запускаем авто-рассылку в основном потоке
try:
bot.start_auto_posting()
except KeyboardInterrupt:
bot.stop()
poll_thread.join()
ща проверю, рабочий или неьPython:import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import time import json from threading import Thread from pathlib import Path # Настройки бота VK_TOKEN = "ВАШ_ТОКЕН_ГРУППЫ" # Токен группы VK GROUP_ID = 123456789 # ID вашей группы (без минуса) MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊" # Текст рассылки ATTACHMENTS = "photo-123456789_456239048" # Прикрепления (опционально) INTERVAL = 900 # Интервал рассылки в секундах (15 минут = 900 сек) CHATS_FILE = "saved_chats.json" # Файл для сохранения ID бесед class VkBot: def __init__(self, token, group_id): self.vk_session = vk_api.VkApi(token=token) self.vk = self.vk_session.get_api() self.longpoll = VkBotLongPoll(self.vk_session, group_id) self.running = True self.chat_ids = self.load_chats() def load_chats(self): """Загружает сохранённые ID бесед из файла""" try: if Path(CHATS_FILE).exists(): with open(CHATS_FILE, 'r') as f: return json.load(f) except Exception as e: print(f"Ошибка загрузки чатов: {e}") return [] def save_chats(self): """Сохраняет ID бесед в файл""" try: with open(CHATS_FILE, 'w') as f: json.dump(self.chat_ids, f) except Exception as e: print(f"Ошибка сохранения чатов: {e}") def add_chat(self, chat_id): """Добавляет беседу в список, если её там нет""" if chat_id not in self.chat_ids: self.chat_ids.append(chat_id) self.save_chats() print(f"Добавлена новая беседа: {chat_id}") def send_message(self, chat_id, message, attachments=None): """Отправляет сообщение в указанную беседу""" try: self.vk.messages.send( chat_id=chat_id - 2000000000, # Преобразование ID беседы message=message, attachment=attachments, random_id=0 ) print(f"Сообщение отправлено в беседу {chat_id}") except Exception as e: print(f"Ошибка при отправке в {chat_id}: {e}") def start_polling(self): """Обрабатывает входящие сообщения и сохраняет беседы""" while self.running: try: for event in self.longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat: chat_id = event.chat_id + 2000000000 # Получаем полный ID беседы self.add_chat(chat_id) except Exception as e: print(f"Ошибка в longpoll: {e}") time.sleep(10) def start_auto_posting(self): """Запускает автоматическую рассылку""" while self.running: if self.chat_ids: print(f"Начинаю рассылку в {len(self.chat_ids)} бесед...") for chat_id in self.chat_ids: self.send_message(chat_id, MESSAGE_TEXT, ATTACHMENTS) time.sleep(1) # Небольшая задержка между отправками else: print("Нет сохранённых бесед для рассылки") time.sleep(INTERVAL) def stop(self): """Останавливает бота""" self.running = False self.save_chats() if __name__ == "__main__": bot = VkBot(VK_TOKEN, GROUP_ID) # Запускаем longpoll в отдельном потоке poll_thread = Thread(target=bot.start_polling) poll_thread.start() # Запускаем авто-рассылку в основном потоке try: bot.start_auto_posting() except KeyboardInterrupt: bot.stop() poll_thread.join()
окща проверю, рабочий или неь
код рабочий , но он не работает без админки (не активирует беседу )
так, мне нужен автопиар который без админки работать будетадминку беседу выдай
сразу бы мог написатьтак, мне нужен автопиар который без админки работать будет
извините, просто в этом и суть автопиара, то что он без админки работает, ну хз для кого каксразу бы мог написать
извините, просто в этом и суть автопиара, то что он без админки работает, ну хз для кого как
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import time
import json
from threading import Thread
from pathlib import Path
# Настройки
VK_TOKEN = "ВАШ_ТОКЕН_ПОЛЬЗОВАТЕЛЯ" # Токен пользователя (не группы!)
USER_ID = 123456789 # Ваш ID пользователя
MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊"
INTERVAL = 900 # 15 минут
CHATS_FILE = "saved_chats.json"
class VkUserBot:
def __init__(self, token, user_id):
self.vk_session = vk_api.VkApi(token=token)
self.vk = self.vk_session.get_api()
self.user_id = user_id
self.running = True
self.chat_ids = self.load_chats()
def load_chats(self):
try:
if Path(CHATS_FILE).exists():
with open(CHATS_FILE, 'r') as f:
return json.load(f)
except Exception as e:
print(f"Ошибка загрузки чатов: {e}")
return []
def save_chats(self):
try:
with open(CHATS_FILE, 'w') as f:
json.dump(self.chat_ids, f)
except Exception as e:
print(f"Ошибка сохранения чатов: {e}")
def get_all_chats(self):
"""Получаем список всех бесед пользователя"""
try:
conversations = self.vk.messages.getConversations(count=200)['items']
return [conv['conversation']['peer']['id'] for conv in conversations
if conv['conversation']['peer']['type'] == 'chat']
except Exception as e:
print(f"Ошибка получения бесед: {e}")
return []
def send_message(self, chat_id, message):
"""Отправка сообщения от имени пользователя"""
try:
self.vk.messages.send(
peer_id=chat_id,
message=message,
random_id=0
)
print(f"Сообщение отправлено в {chat_id}")
return True
except vk_api.exceptions.ApiError as e:
if e.code == 917: # Нет доступа
print(f"Нет доступа к беседе {chat_id}")
else:
print(f"Ошибка отправки: {e}")
return False
def start_auto_posting(self):
"""Авторассылка в беседы"""
while self.running:
active_chats = self.get_all_chats()
if not active_chats:
print("Нет доступных бесед")
time.sleep(60)
continue
print(f"Начинаю рассылку в {len(active_chats)} бесед")
for chat_id in active_chats:
if chat_id not in self.chat_ids:
self.chat_ids.append(chat_id)
self.save_chats()
self.send_message(chat_id, MESSAGE_TEXT)
time.sleep(3) # Задержка для избежания лимитов
time.sleep(INTERVAL)
if __name__ == "__main__":
bot = VkUserBot(VK_TOKEN, USER_ID)
try:
bot.start_auto_posting()
except KeyboardInterrupt:
bot.save_chats()
print("Бот остановлен")
а зачем кстати ID пользователя, для чего?Python:import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import time import json from threading import Thread from pathlib import Path # Настройки VK_TOKEN = "ВАШ_ТОКЕН_ПОЛЬЗОВАТЕЛЯ" # Токен пользователя (не группы!) USER_ID = 123456789 # Ваш ID пользователя MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊" INTERVAL = 900 # 15 минут CHATS_FILE = "saved_chats.json" class VkUserBot: def __init__(self, token, user_id): self.vk_session = vk_api.VkApi(token=token) self.vk = self.vk_session.get_api() self.user_id = user_id self.running = True self.chat_ids = self.load_chats() def load_chats(self): try: if Path(CHATS_FILE).exists(): with open(CHATS_FILE, 'r') as f: return json.load(f) except Exception as e: print(f"Ошибка загрузки чатов: {e}") return [] def save_chats(self): try: with open(CHATS_FILE, 'w') as f: json.dump(self.chat_ids, f) except Exception as e: print(f"Ошибка сохранения чатов: {e}") def get_all_chats(self): """Получаем список всех бесед пользователя""" try: conversations = self.vk.messages.getConversations(count=200)['items'] return [conv['conversation']['peer']['id'] for conv in conversations if conv['conversation']['peer']['type'] == 'chat'] except Exception as e: print(f"Ошибка получения бесед: {e}") return [] def send_message(self, chat_id, message): """Отправка сообщения от имени пользователя""" try: self.vk.messages.send( peer_id=chat_id, message=message, random_id=0 ) print(f"Сообщение отправлено в {chat_id}") return True except vk_api.exceptions.ApiError as e: if e.code == 917: # Нет доступа print(f"Нет доступа к беседе {chat_id}") else: print(f"Ошибка отправки: {e}") return False def start_auto_posting(self): """Авторассылка в беседы""" while self.running: active_chats = self.get_all_chats() if not active_chats: print("Нет доступных бесед") time.sleep(60) continue print(f"Начинаю рассылку в {len(active_chats)} бесед") for chat_id in active_chats: if chat_id not in self.chat_ids: self.chat_ids.append(chat_id) self.save_chats() self.send_message(chat_id, MESSAGE_TEXT) time.sleep(3) # Задержка для избежания лимитов time.sleep(INTERVAL) if __name__ == "__main__": bot = VkUserBot(VK_TOKEN, USER_ID) try: bot.start_auto_posting() except KeyboardInterrupt: bot.save_chats() print("Бот остановлен")
проверь будет работать?а зачем кстати ID пользователя, для чего?
секупроверь будет работать?
щас уберу ID пользователь
Окщас уберу ID пользователь
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import time
import json
from pathlib import Path
# Настройки (токен пользователя, не группы!)
VK_TOKEN = "ВАШ_ТОКЕН_ПОЛЬЗОВАТЕЛЯ"
MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊"
INTERVAL = 900 # 15 минут
CHATS_FILE = "saved_chats.json"
class VkUserBot:
def __init__(self, token):
self.vk_session = vk_api.VkApi(token=token)
self.vk = self.vk_session.get_api()
self.running = True
self.chat_ids = self.load_chats()
def load_chats(self):
try:
if Path(CHATS_FILE).exists():
with open(CHATS_FILE, 'r') as f:
return json.load(f)
except Exception as e:
print(f"Ошибка загрузки чатов: {e}")
return []
# ... (остальные методы без изменений)
if __name__ == "__main__":
bot = VkUserBot(VK_TOKEN) # Теперь без USER_ID
try:
bot.start_auto_posting()
except KeyboardInterrupt:
bot.save_chats()
почему тут токен пользователяPython:import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import time import json from pathlib import Path # Настройки (токен пользователя, не группы!) VK_TOKEN = "ВАШ_ТОКЕН_ПОЛЬЗОВАТЕЛЯ" MESSAGE_TEXT = "Привет! Подпишитесь на наше сообщество 😊" INTERVAL = 900 # 15 минут CHATS_FILE = "saved_chats.json" class VkUserBot: def __init__(self, token): self.vk_session = vk_api.VkApi(token=token) self.vk = self.vk_session.get_api() self.running = True self.chat_ids = self.load_chats() def load_chats(self): try: if Path(CHATS_FILE).exists(): with open(CHATS_FILE, 'r') as f: return json.load(f) except Exception as e: print(f"Ошибка загрузки чатов: {e}") return [] # ... (остальные методы без изменений) if __name__ == "__main__": bot = VkUserBot(VK_TOKEN) # Теперь без USER_ID try: bot.start_auto_posting() except KeyboardInterrupt: bot.save_chats()