Не получается получить название аудиозаписи
Я делаю бота для ВК, который на аудиовложение отвечает текстом песни. Проверить, аудиозапись отправили ему или нет у меня получилось, а вот получить название песни не выходит. При поисках я натыкался на event.object, которого у меня по какой-то причине нет. Мой код:
import vk_api
from config import token
from vk_api.longpoll import VkLongPoll, VkEventType
import random
session = vk_api.VkApi(token=token)
longpoll = VkLongPoll(session)
vk = session.get_api()
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
atach = event.attachments
atach_type = ''
atach_title = ''
try:
atach_type = atach['attach1_type']
#atach_title = atach['attach1_title']
except:
continue
idrand = random.randint(1, 99999999)
vk.messages.send(user_id=event.user_id, message=atach_type, random_id=idrand)
Ответы (1 шт):
Автор решения: 0xmeow
→ Ссылка
Зачем вы используете attach1_type? Такого поля просто нет. В event.attachments находится массив медиавложений. Для медиавложения с type == audio есть такие поля artist и title.
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
attachments = event.attachments
idrand = random.randint(1, 99999999)
for attachment in attachments:
if attachment["type"] == "audio":
vk.messages.send(user_id=event.user_id, message=attachment["title"], random_id=idrand)
break
else:
vk.messages.send(user_id=event.user_id, message="Нет аудио", random_id=idrand)