Задать вопрос
@IlyaAkt

Почему ВК бот отвечает 2 раза?

Есть такой код
def write_messages(sender, message):
			authorize.method('messages.send', {'chat_id': sender, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})
def write_messages_us(user_id, message):
			authorize.method('messages.send', {'peer_id': user_id, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})
users = [id пользователя, id второго пользователя]
for id in users:
						user_id=id
						if id == 'id пользователя':
							try:
								write_messages_us(id, (re.sub(r'!Рассылка', " ", reseived_message)))
							except Exception as ex:
								print("Ошибка")
						else:
							write_messages(sender, "А у тебя нет прав на эту команду")

Когда человек которому разрешено делает рассылку (!Рассылка) то всё нормально, но когда человек которому запрещено её делать пишет команду !Рассылка, то бот отвечает ДВА раза вот это: "А у тебя нет прав на эту команду". Почему два раза он это говорит и как это исправить?
  • Вопрос задан
  • 315 просмотров
Подписаться 1 Простой 13 комментариев
Решения вопроса 1
@IlyaAkt Автор вопроса
Получилось всё починить вот так:

def write_messages(sender, message):
			authorize.method('messages.send', {'chat_id': sender, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})
		def write_messages_us(id, message):
			authorize.method('messages.send', {'peer_id': id, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})

elif re.findall('!Рассылка', reseived_message):
          if event.object.message['from_id'] in admins:
            for id in users:
              try:
                write_messages_us(id, (re.sub(r'!Рассылка', " ", reseived_message)))
              except Exception as ex:
                print("Ошибка")
          else:
            write_messages(sender, "У вас нет прав")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Noizefan
@Noizefan
users = [id пользователя, id второго пользователя]
for id in users:

сколько раз выполняется?

write_messages(sender, "А у тебя нет прав на эту команду")


столько раз сендеру и приходит
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽