vk_api
vk_api copied to clipboard
Не работает event.ref и event.ref_source
Все версии самые последние Код(вставил только то что имеет отношение к проблеме т.к. файл на 2000 строк, если чего-то не дописал то сорян):
class CreateLongPoll(VkLongPoll):
def listen(self):
while True:
try:
for event in self.check():
yield event
except Exception as e:
if str(e)[1] != '<':
print(e, end=" FROM MAIN.PY->MyLongPoll->listen\n")
class VkBot:
def __init__(self):
self.vk_session = vk_api.VkApi(token=vk_token)
self.longpoll = CreateLongPoll(self.vk_session)
self.vk = self.vk_session.get_api()
self.event = None
self.db = None
def run(self):
while True:
for self.event in self.longpoll.listen():
if self.event.type == VkEventType.MESSAGE_NEW and self.event.to_me and self.event.text:
try:
self.db = utils.getOrCreateUserById(self.event.user_id)
link = self.vk.utils.getShortLink(url=f"{cfg.linkongroup}?ref={self.db.vk_id}")
print(link['url'], link['short_url'])
print(self.event.ref, self.event.ref_source)
except:
traceback.print_exc()
if __name__ == "__main__":
VkBot().run()
Разобрался. Нужно было искать атрибуты в ответе messages.getById(message_ids=[self.event.message_id])
У меня это выглядело следующим образом: self.vk.messages.getById(message_ids=[self.event.message_id], extended=1)['items'][0]['ref'])