Python&VK_API - Добавление изображения к сообщению
У меня есть бот, который отправляет некоторые данные о другом пользователе, и к сообщению которое он отправляет, нужно прикрепить картинку, которой нету на серверах ВК. То есть она хранится на жестком диске, можно ли как то это реализовать?
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Для того чтобы добавить изображение к сообщению Вы должны:
Загрузить изображение на сервер ВК
Для этого можно использовать класс
VkUploadи его методphoto_messages.Сформировать
attachmentМетод
photo_messagesвернёт ответ, в котором будетowner_id,idиaccess_key.attachmentформируется следующим образом:'{type}{owner_id}_{id}_{access_key}'`Для фото
type = 'photo'.Приложить
attachmentк сообщению
Пример:
from vk_api import VkApi
from vk_api.upload import VkUpload
from vk_api.utils import get_random_id
# Подставьте свои данные!
FILE = ''
ACCESS_TOKEN = ''
PEER_ID =
def main():
vk_session = VkApi(token=ACCESS_TOKEN)
vk = vk_session.get_api()
upload = VkUpload(vk)
photo_obj = upload.photo_messages(FILE)[0]
attachment = 'photo{owner_id}_{id}_{access_key}'.format(**photo_obj)
vk.messages.send(
random_id=get_random_id(),
peer_id=PEER_ID,
attachment=attachment,
)
if __name__ == '__main__':
main()