@alexzsoda

Как сделать так чтобы чат-бот ВК на python при появлении нового поста в группе отправлял об этом сообщение репостом в беседу?

Я сделал чат-бота для беседы в ВК, и решил добавить ему возможность чтобы он при при появлении нового поста в определённой группе отправлял в беседу репост этого поста и сообщение по типу «В группе появился новый пост!». Но я не понял как именно это реализовать.
Вот код:
import vk_api
import random
import pyowm
from pyowm import OWM
from pyowm.utils import config
from pyowm.utils import timestamps
from pyowm.utils.config import get_default_config
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
config_dict = get_default_config()
config_dict['language'] = 'ru'
owm = OWM('АПИ ТОКЕН PYOWM-а' , config_dict)
mgr = owm.weather_manager()
observation = mgr.weather_at_place('Москва')
w = observation.weather
temp = w.temperature('celsius')['temp']
try:
import xyz
except:
pass
from vk_api.utils import get_random_id
def write_message(chat, message):
authorize.method('messages.send', {'chat_id': chat, 'message': message, 'random_id': get_random_id()})
token = "АПИ ТОКЕН БОТА"
authorize = vk_api.VkApi(token = token)
longpoll = VkBotLongPoll(authorize, group_id = "СЮДА АЙДИ ГРУППЫ")
getting_api = authorize.get_api()
write_message(1, "Бот запущен!"), print("Бот запущен!")
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat and event.message.get('text'):
reseived_message = event.message.get('text')
chat = event.chat_id
from_id = event.message.get('from_id')
if reseived_message == "!инфо":
write_message(chat, "Привет я бот , я создан для того чтобы упрощять вашу переписку различными утилитами и встроенными в меня программами. Чтобы вызвать команды за которые я отвечаю введите символ восклицательного знака и не делая пробелов слово команды например «!команды». И знайте я не слежу за вашей перепиской)))"), print("Отправлено сообщение под командой !инфо в чат №" + str(chat) + " для пользователя id" + str(from_id))
elif reseived_message == "!команды":
write_message(chat, "Список команд бота : !команды !инфо !погода"), print("Отправлено сообщение под командой !команды в чат №" + str(chat) + " для пользователя id" + str(from_id))
elif reseived_message == "!погода":
write_message(chat, "Погода в городе Моска: сейчас " + str(temp) + "° " + str(w.detailed_status) + ""), print("Отправлено сообщение под командой !погода в чат: №" + str(chat))
else:
print("Пропуск в чате №" + str(chat) + " от пользователя id" + str(from_id))
  • Вопрос задан
  • 927 просмотров
Пригласить эксперта
Ответы на вопрос 1
limontasher
@limontasher
Начинающий программист
В цикле проверять, к примеру был в группе пост с номером 1, цикл проверяет(к примеру каждую секунду), если пост с номером 1 не сходится(новый пост), то берется последний пост, и в методе messages.send в параметре attachments передается id поста и рассылается куда надо
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы