Как написать бота для предложения новостей?

Всем привет, я решила написать бота для своего телеграмм канала, с помощью которого пользователи смогут предлагать новости, а эти новости будут пересылаться мне:

1. Пользователь нажимает на одну из четырех кнопок:

bot.on("message", (msg) => {
  const { id } = msg.chat;
  bot.sendMessage(
    id,
    "Привет, " +
      msg.from.first_name +
      ". Я бот для предложки новостей",
    options
  );
});

var options = {
  reply_markup: {
    inline_keyboard: [
      [{ text: "Предложить новость 1", callback_data: "news1" }],
      [{ text: "Предложить новость 2", callback_data: "news2" }],
    ],
  },
};


2. В зависимости от нажатой кнопки пользователь получает ответ:

bot.on("callback_query", function onCallbackQuery(callbackQuery) {
  const action = callbackQuery.data;
  const msg = callbackQuery.message;
  const opts = {
    chat_id: msg.chat.id,
    message_id: msg.message_id,
  };
  let text;

  if (action === "news1") {
    text =
      "Вы можете написать ваш вопрос который касается страны";
  }
  if (action === "news2") {
    text =
      "Вы можете написать ваш вопрос который касается города";
  }
  }

  bot.editMessageText(text, opts);
});


И после этого я застряла и не могу найти решение для свои дальнейших идей:

1. Вместе с ответом бота (text) я хочу чтобы была кнопка "Назад", которая бы возвращала к первому пункту (выбора какого рода новость предложить).
2. После того как пользователь напишет новость, я хочу чтобы ему показывало сообщение, о том что эта новость будет опубликована. А сам текст новости пересылался мне.

Я буду благодарна за советы или ссылки на ресурсы где решена подобная проблема.
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
alexk111
@alexk111
Автор Ботодрома (автоматизация Telegram, VK и др.)
1. Вместе с ответом бота (text) я хочу чтобы была кнопка "Назад", которая бы возвращала к первому пункту (выбора какого рода новость предложить).


При редактировании сообщения (editMessageText) в опциях можно также передавать клавиатурную разметку reply_markup с кнопкой "Назад". Соответственно, в обработчике callback_query нужно будет также добавить подмену сообщения на предыдущее, если была нажата кнопка "Назад".

2. После того как пользователь напишет новость, я хочу чтобы ему показывало сообщение, о том что эта новость будет опубликована. А сам текст новости пересылался мне.


Для этого нужно хранить состояние пользователя (шаг, на котором находится). Чтобы при получении сообщения проверить находится ли пользователь на шаге ввода вопроса, и выполнить необходимые действия с введенным вопросом.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы