При создании нового бота гораздо проще использовать шаблон, чем вспоминать, как же правильно все инициировать или копировать с другого бота.
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
import json
vk_session = vk_api.VkApi(token='token', api_version=5.131)
api = vk_session.get_api()
longpoll = VkLongPoll(vk_session, preload_messages=True)
print("Бот запущен")
while True:
try:
for event in longpoll.listen():
if event.type != VkEventType.MESSAGE_NEW and event.type != VkEventType.MESSAGE_EDIT: continue
message = event.message_data
# if not message['out']: continue
# Если нужно, чтобы бот реагировал только на сообщения от хозяина страницы, нужно убрать комментирование на строке выше
args = message['text'].split(" ")
cmd = args[0].lower()
if cmd == '!проверка':
# Если нужно, чтобы бот редактировал отправленное сообщение: (я буду использовать именно этот способ)
api.messages.edit(peer_id=message['peer_id'], message_id=message['id'], message='Проверка успешна!', keep_forward_messages=1)
# Если нужно, чтобы бот отвечал новым сообщением:
# api.messages.send(peer_id=message['peer_id'], message='Проверка успешна!', random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))
elif cmd == '!напиши':
api.messages.edit(peer_id=message['peer_id'], message_id=message['id'], message=message['text'].replace(cmd+' ', ''), keep_forward_messages=1)
elif cmd == '!параметрысбщ':
api.messages.edit(peer_id=message['peer_id'], message_id=message['id'], message='У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(message[value]) for value in message]), keep_forward_messages=1)
except Exception as e:
print(e)
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import json
vk_session = vk_api.VkApi(token='token', api_version=5.131)
api = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, group_id=12345) # тут айди группы без минуса
print("Бот запущен")
while True:
try:
for event in longpoll.listen():
if event.type != VkBotEventType.MESSAGE_NEW: continue
message = event.object.message
args = message['text'].split(" ")
cmd = args[0].lower()
if cmd == '!проверка':
api.messages.send(peer_id=message['peer_id'], message='Проверка успешна!', random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))
elif cmd == '!напиши':
api.messages.send(peer_id=message['peer_id'], message=message['text'].replace(cmd+' ', ''), random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))
elif cmd == '!параметрысбщ':
api.messages.send(peer_id=message['peer_id'], message='У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(message[value]) for value in message]), random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))
except Exception as e:
print(e)
from telethon import TelegramClient, events
telegram = TelegramClient('session', 'api_id', 'api_hash').start()
@telegram.on(events.NewMessage(pattern='(!проверка)'))
async def handler_proverka(message):
await message.reply('Проверка успешна!')
@telegram.on(events.NewMessage(pattern='(!напиши )'))
async def handler_napishi(message):
await message.reply(message.text.replace('!напиши ', ''))
@telegram.on(events.NewMessage(pattern='(!параметрысбщ)'))
async def handler_parametri(message):
await message.reply('У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(vars(message)[value]) for value in vars(message) if not value.startswith('_')]))
print('Бот запущен')
telegram.run_until_disconnected()
from aiogram import Bot, Dispatcher, executor, types
bot = Bot(token='token')
dp = Dispatcher(bot)
@dp.message_handler(regexp='(!проверка)')
async def handler_proverka(message: types.Message):
await message.reply('Проверка успешна!')
@dp.message_handler(regexp='(!напиши )')
async def handler_napishi(message: types.Message):
await message.reply(message.text.replace('!напиши ', ''))
@dp.message_handler(regexp='(!параметрысбщ)')
async def handler_parametri(message: types.Message):
await message.reply('У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(message[value]) for value in dict(message)]))
print('Бот запущен')
executor.start_polling(dp, skip_updates=True)