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

Как сделать так, чтобы можно было написать сообщение «b» только после того как я написал сообщение «a»?

Код:

import vk_api
from key import token

vk = vk_api.VkApi(token=token)
vk._auth_token()
while True:
	messages = vk.method("messages.getConversations", {"offset": 0, "count": 20, "filter": "unanswered"})
	if messages["count"] >= 1:
		id = messages["items"][0]["last_message"]["from_id"]
		text = messages["items"][0]["last_message"]["text"]
		if text.lower() == "a":
			vk.method("messages.send", {"peer_id": id, "message": "a", "random_id": 0})
		elif text.lower() == "b":
			vk.method("messages.send", {"peer_id": id, "message": "b", "random_id": 0})
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@nvlveu
Создаёте список. Если пользователь написал "а", то добавляете его id. Если написал "b" и его id есть в списке, отсылаете нужное сообщение и убираете его( list.remove(user.id) )

import vk_api

from key import token


vk = vk_api.VkApi(token=token)
vk._auth_token()


my_list = []


while True:
  messages = vk.method(
    "messages.getConversations",
    {"offset": 0, "count": 20, "filter": "unanswered"},
  )

  if messages["count"]:
    user_id = messages["items"][0]["last_message"]["from_id"]
    message_text = messages["items"][0]["last_message"]["text"]

    if message_text.lower() == "a":
      if user_id not in my_list:
        my_list.append(user_id)

      vk.method("messages.send", {"peer_id": id, "message": "a", "random_id": 0})
    elif message_text.lower() == "b":
      if user_id in my_list:
        vk.method("messages.send", {"peer_id": id, "message": "b", "random_id": 0})
        my_list.remove(user_id)
      else:
        ...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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