@MuoDosta

Как получить картинку от пользователя и отправить эту же картинку этому же пользователю. vk_api python?

Мне нужно, чтобы, когда пользователь отправлял картинку боту, бот отправлял эту картинку ему же, а точнее сохранить её URL в переменную, чтобы в дальнейшем работать с картинкой. Перекопал весь интернет, но не нашёл ничего нормального и работающего. Я знаю как отправить картинку, зная только url, поэтому мне самое главное получить url присланной картинки.
Это я что-то пытался сделать:
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
token= '...'

vk_session = vk_api.VkApi(token=token)
session_api = vk_session.get_api()
longpoll = VkLongPoll(vk_session)


def sender(text):
    vk_session.method('messages.send', {'user_id': id, 'message': text, 'random_id': 0})
    
def send_photo(url):
    vk_session.method("messages.send", {"peer_id": id, "message": "TEST", "attachment": url, "random_id": 0})


for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW:
        if event.to_me:
            
            msg = event.text.lower()
            
            id = event.user_id
            
            sender(msg)
            
    elif event.type == 'photo':
        if event.to_me:
            
            send_photo('photo-{}_{}'.format(event['user_id'], event['id']))

Это как отправить картинку с помощью её url:
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType

vk_session = vk_api.VkApi(token='...')
session_api = vk_session.get_api()
longpoll = VkLongPoll(vk_session)


def sender(text):
    vk_session.method('messages.send', {'user_id': id, 'message': text, 'random_id': 0})


def send_photo(url):
    vk_session.method("messages.send", {"peer_id": id, "message": "TEST", "attachment": url, "random_id": 0})


for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW:
        if event.to_me:
            msg = event.text.lower()
            id = event.user_id
            sender(msg)
            send_photo('photo-126879742_457245742')
  • Вопрос задан
  • 1046 просмотров
Решения вопроса 1
@UberPool
Python/JS coder
Ссылку на картинку можно получить таким вот образом:
event.obj.message['attachments'][0]['photo']['sizes'][-1]['url']

Если появиться похожая задача просто смотрите что из себя представляет event и вытаскиваете нужную инфу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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