в определенную сцену?
Да, если другой пользователь ранее взаимодействовал с ботом.
как это делается? где искать? другой пользователь взаимодействовал. нужно послать ему сообщение и направить в сцену с ожиданием ответа/реакции на это сообщение
Обычные сцены или Wizard? Версия 3.38?
Это костыли будут. Нужно найти среди всех сессий сессию нужного юзера, и записать в эту сессию нужную сцену. Лучше так не делать.
Тогда тебе не к нам. Пиши сюда: @TelegrafJSChat
а как тогда должна выглядеть логика - пользователь id_1 совершает действие, влияющее на пользователя id_2, и нажимает кнопку "я сделал". бот должен пингануть пользователя id_2 сообщением и никуда не выпускать его, пока не получит ответ-нажатие кнопки - "да, он сделал" или "нет, он не сделал"
посмотрел, там на англ. яж программист ненастоящий, и не знаю отличий версий. какая встала по npm i telegraf, той и пользуюсь
так вопрос от версии не зависит
Реализация работы систем сцен разная...
Хранить где-то состояние. Юзер 1 совершил действие, ты сохраняешь в нужное место запись вида { id: user_2_id, inScene: true }. И потом в зависимости от этой записи по разному обрабатываешь сообщения пользователей. Как-то так в общем.
я взял исходники бота eve-movie и переделываю для себя. и eve на версии 3.25.0
для user_2 пошлю сообщение с 2-мя кнопками. и в каждой сцене нужно будет прописать реакцию на эти две кнопки? (т.к. в момент прихода сообщения user_2 может находиться в любой сцене)
Я не использую сцены, не знаю
понял. всё равно спасибо!
Сцены обычные. Если переделаю на телеграф 3.8, то где искать, как отправить другого юзера в сцену?
Посмотри реализацию scene.enter, там поймёшь
scene.enter - можно отправить другого юзера по его id?
Реализацию функции посмотри, там всё понятно
Вместо hears, юзай command
Обсуждают сегодня