@Sa_bro0

Как отправить короткое имя пользователя вк Vkbottle? И как пересылать вложения в сообщениях?

Я использовал метод users.get() и в нем должна хранится информация о пользователе (имя, фамилия, адишник, короткое имя и тд) мне нужно отправить короткое имя пользователя, но когда я пытаюсь это сделать у меня выводит None, а если я хочу вывести просто id то все хорошо получатся, но он получается не кликабельный, мне нужен кликабельный
Т.е либо мне нужно сделать кликабельный id, либо короткое имя
И еще вопрос, когда боту присылают сообщение с ошибкой и плюс какое либо вложение (фото, аудио, документ), то он пересылает только один текст, а фото, документы нет. Как мне это исправить?
Вот мой код
from vkbottle.bot import Bot, Message
from vkbottle import Keyboard, KeyboardButtonColor, \
                        Text, OpenLink, Location, EMPTY_KEYBOARD
from vkbottle_types import BaseStateGroup
from vkbottle import CtxStorage



bot = Bot(token="")
ctx = CtxStorage()

class RegData(BaseStateGroup):

    OSHY = 0


@bot.on.message(lev="Ошибка")
async def oshi_handler(message: Message):
    keyboard = Keyboard(one_time=True).add(Text("Назад в меню", {"cmd": "menu"}))
    await message.answer("❌ Это форма для отправки ошибок, багов, проблем, предложений и тд.\n\n\
❗ Подробно опиши ошибку, с которой ты столкнулся.\n\
‍ Лучше чтобы был скрин", keyboard=keyboard)
    await bot.state_dispenser.set(message.peer_id, RegData.OSHY)
    return "Что то там...1"




@bot.on.message(state=RegData.OSHY)
async def oshi_handler(message: Message):
    userq = await bot.api.users.get(message.from_id)
    ctx.set("oshy", message.text)                                                                                            
    txtq = ctx.get("oshy")
    await bot.api.messages.send(peer_id=291080599, message=f"Новая ошибка от {userq[0].first_name} {userq[0].last_name} Vkid: {userq[0].id}: \n{txtq}", random_id=0) #вот тут domain должен вывести короткое имя, но выводит None, а если я пишу id то все работает
    return "Спасибо за обнаружение ошибки.."


@bot.on.message()
async def MessagesLongpollParams(message: Message):
    keyboard = Keyboard(one_time=True)
    keyboard.add(Text("Меню", {"cmd": "menu"}), color=KeyboardButtonColor.NEGATIVE)
    await message.answer("Я тебя не понимаю.\n\n Перейди в меню и выбери из пунктов, что ты хочешь узнать.", keyboard=keyboard)



bot.run_forever()
  • Вопрос задан
  • 938 просмотров
Пригласить эксперта
Ответы на вопрос 1
igor_89squad
@igor_89squad
Python
Привет! Надеюсь понятно написал.

user = await bot.api.users.get(message.from_id)
print(user[0].id, user[0].first_name, user[0].last_name)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы