Авторизуюсь, как пользователь, используя логин, пароль, токен, аутентификатор и капчу. Использую библиотеку vk_api с лонгпулом и другими библиотеками. Мне нужно сделать так, чтобы к сообщению прикреплялось изображение. Мельком прочитал документацию, загуглил и нашёл код, что указан здесь.
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
import requests
import random
vk_session = vk_api.VkApi(login=login, password=password, captcha_handler=c_h, token=token)
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
while True:
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.from_chat:
if event.text.lower() == '!бот, табличка':
a = vk.method('photos.getMessagesUploadServer')
b = requests.post(a['upload_url'], files={'photo': open('image_edited.png', 'rb')}).json()
c = vk.method('photos.saveMessagesPhoto',
{'photo': b['photo'], 'server': b['server'], 'hash': b['hash']})[0]
d = 'photo{}_{}'.format(c['owner_id'], c['id'])
vk.messages.send(
chat_id=event.chat_id,
random_id=random_id(),
message='Картинка здесь',
attachment = d
)
И ничего не работает. Я пишу сообщение, после чего программа аварийно завершается с такой вот ошибкой:
a = vk.method('photos.getMessagesUploadServer')
TypeError: __call__() takes 1 positional argument but 2 were given
Почему так происходит? Ведь даже в документации указывается, что изначально нужно вызвать метод photos.getMessagesUploadServer. Может быть, дело в авторизации через страничку, а то вдруг там другой способ загрузки изображения?
Извиняюсь заранее за слишком тупой вопрос, я просто совсем новичок и работаю с vk_api недавно