Задать вопрос
  • Как сделать файл, отправляемый пользователем, доступным для ВК–бота?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Вообще, для этого есть дополнительно поле access key
    spoiler
    644d556e2ebd5963989217.jpeg


    В vk_api не приходит это поле в лонгполл, может так должно быть, может это упущение vk_api, но в любом случае, придется дернуть сообщение по его ID, и там уже будет и access key который можно добавить в запрос docs.getById, так и будет там url, по которому можно файл загрузить (не знаю для всех ли видов файлов есть url)

    for event in VkLongPoll(vk_session).listen():
        if event.type == VkEventType.MESSAGE_NEW and event.to_me:
            if event.attachments:
                if event.attachments["attach1_type"] == "doc":
                    vk.messages.getById(message_ids=event.message_id)['items'][0]['attachments'][0]


    Дальше уже от ваших нужд. Либо берете url из ответа и делаете с файлом ваши задачи, либо достаете accesskey и пробуете
    document = event.attachments["attach1"] + '_' + access_key
    response = vk.docs.getById(docs=document)
    Ответ написан
    Комментировать