@ahegao3

При вызове общий сбор, имя выходит левое. Как исправить?

Суть ошибки При срабатывание команды (общий сбор), где есть переменная name, там имя выводится какого то Дима трундуков, вчера все нормально работало. Переписал код с переменными name, а проблема осталась.... И токен менял, ничего не помогло.
.604231069e4b9917774802.png
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.utils import get_random_id


def write_message(sender, message):
    authorize.method('messages.send', {'chat_id': sender, 'message': message,
                                       'random_id': get_random_id()

                                       })
    # код на кик участника не работает authorize.method("messages.removeChatUser",{'user_id': user_id,'})
# Упоминание участника в беседе
def get_name(from_id):
    sender_info = getting_api.users.get(user_ids=from_id > 0)[0]
    full_name = sender_info.get('first_name') + ' ' + sender_info['last_name']
    return full_name


# код на позвать пользователя в беседе. работает.
def get_chat_member(sender, group_id, user_name_search):
    members = getting_api.messages.getConversationMembers(peer_id=2000000000 + sender, group_id=group_id)['profiles']
    for i in range(len(members)):
        if members[i]['first_name'] == user_name_search:
            user_id = members[i]['id']
            full_name = members[i]['first_name'] + ' ' + members[i]['last_name']
            appeal = '@id' + str(user_id) + ' (' + full_name + ')'
            return appeal



token = 'токен'
authorize = vk_api.VkApi(token=token)
longpoll = VkBotLongPoll(authorize, group_id=0000)
getting_api = authorize.get_api()

# Склоления по падежам
#def cases(user_ids):
    #Users = authorize.method('users.get', {'user_ids': 0, 'fields': 0, 'name_case': 0})


for event in longpoll.listen():
    if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat and event.message.get('text') != '':
        received_message = event.message.get('text')
        sender = event.chat_id
        from_id = event.message.get('from_id')
        name = get_name(from_id)
        if received_message == 'Лейла':
            write_message(sender, 'Соска')
        elif received_message == 'Спокойной ночи':
            write_message(sender, 'Добрых снова, зайка!' + ', ' + name)
        elif received_message == 'Общий сбор':
            write_message(sender, 'Внимание олухи!' ' ' + name + ' ' 'Объявляет общий сбор! @all ')
        elif received_message == 'Созвать онлайн':
            write_message(sender, 'Внимание лапиндосы!' ', ' + name + 'Говорит: не молчите! @online ')
        elif received_message == 'Кофе':
            write_message(sender, 'Кофе и кофе, че бубнить то... ')
        elif received_message == 'Инсайдер':
            write_message(sender, 'Самый крутой чел на планете  ')
        elif received_message == 'Эмили':
            write_message(sender, 'Солнышко ')
        elif received_message == 'Виктор':
            write_message(sender, 'Злобный пёс ')
        elif received_message[0:6] == 'Позови':
            user_name_search = received_message[7:]
            chat_member = get_chat_member(sender, 000000, user_name_search)
            if chat_member is None:
                write_message(sender, 'Данный пользователь отсуствует в беседе')
            else:
                write_message(sender, chat_member + ', вас вызывают')
        elif received_message == 'Люци':
            write_message(sender, "✅ i'll be back")
        elif received_message == 'Помощь':
            write_message(sender, ' Полный список команд можно почитать тут: \nhttp')
  • Вопрос задан
  • 138 просмотров
Решения вопроса 2
@o5a
Потому что построение команды не понятно на что рассчитано

getting_api.users.get(user_ids=from_id > 0)[0]
равносильно
getting_api.users.get(user_ids=True)[0]

Что же нам выдает API при user_ids=True ?
https://vk.com/dev/users.get?params[user_ids]=True...
Ответ написан
shizzzzzik
@shizzzzzik
Учусь программированию
а другие команды так же пишут?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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