Здравствуйте,
У меня есть функция, пересылающая сообщения (что-то по типу message mirroring) - боту приходит сообщение > бот пересылает это сообщение обратно.
Если в сообщении есть вложения, то она их обрабатывает и пересылает сообщение вместе со всеми вложениями. Но почему-то, если вложение = doc, то вложения не пересылаются (photo/audio/video вложения прекрасно обрабатываются)
Цитата со страницы vk_api
Медиавложения к личному сообщению, перечисленные через запятую. Каждое прикрепление представлено в формате: {type}{owner_id}_{media_id}
attachments = []
if event.object.message['attachments'] != []:
attachments = event.object.message['attachments']
sender(id=target['user_id'], text=text, attachments=attachments)
def sender(id, text=None, keyboard=None, attachments=None):
post = {
'user_id': id,
'random_id': 0
}
if text is not None:
post['message'] = text
if keyboard is not None:
post["keyboard"] = keyboard.get_keyboard()
if attachments is not None and attachments != []:
post['attachment'] = ''
for attachment in attachments:
type_of_attachment = attachment['type']
attachment_owner_id = attachment[f'{type_of_attachment}']['owner_id']
attachment_id = attachment[f'{type_of_attachment}']['id']
try:
attachment_access_key = attachment[f'{type_of_attachment}']['access_key']
post['attachment'] += (f'{type_of_attachment}{attachment_owner_id}_{attachment_id}_{attachment_access_key},')
except:
post['attachment'] += (f'{type_of_attachment}{attachment_owner_id}_{attachment_id},')
vk_session.method('messages.send', post)
Есть ли возможность именно переслать документ, а не сохранить этот документ + загрузить его на сервера вк от своего лица + отправить?
UPD:
Единственный вариант пока что - вместо документа отправлять ссылку на документ, но мне не особо нравится как это отображается в сообщении
Пример кода:
attachments = []
if event.object.message['attachments'] != []:
attachments = event.object.message['attachments']
sender(id=target['user_id'], text=text, attachments=attachments)
def sender(id, text=None, keyboard=None, attachments=None):
post = {
'user_id': id,
'random_id': 0
}
if text is not None:
post['message'] = text
if keyboard is not None:
post["keyboard"] = keyboard.get_keyboard()
if attachments is not None and attachments != []:
post['attachment'] = ''
for attachment in attachments:
type_of_attachment = attachment['type']
if type_of_attachment == 'doc':
post['attachment'] += f'{attachment[f"{type_of_attachment}"]["url"]}'
else:
attachment_owner_id = attachment[f'{type_of_attachment}']['owner_id']
attachment_id = attachment[f'{type_of_attachment}']['id']
try:
attachment_access_key = attachment[f'{type_of_attachment}']['access_key']
post['attachment'] += f'{type_of_attachment}{attachment_owner_id}_{attachment_id}_{attachment_access_key},'
except:
post['attachment'] += f'{type_of_attachment}{attachment_owner_id}_{attachment_id},'
print(post['attachment'])
vk_session.method('messages.send', post)