Как использовать ResponseKeyboard Кика, чтобы опубликовать следующий результат для последнего сообщения - PullRequest
0 голосов
/ 30 апреля 2019

Я создаю бота для Kik, который выбирает ссылку на YouTube для песни, которую ищет пользователь, отправив ей название песни.Эта часть работает, но я хочу использовать ResponseKeyboard Кика, чтобы пользователь мог сказать «! Далее», и он отправит им следующий результат, полученный из API YouTube.Тем не менее, когда пользователь говорит «Далее!»например, после «Hello» - получения ссылки на «Adele - Hello», он ищет песню под названием Next вместо получения следующего результата из возвращенного списка URL-адресов из «Hello».

client.onTextMessage((message) => {
  let content = message.body;

  switch (content) {
    default:
      let i = 0;

      function link() {
        ytSearch(content, opts, function (err, results) {
          if (err) return console.log(err);

          console.dir(results[i].link);

          let sendLink = Client.Message.link(results[0].link, message.chatId);

          sendLink.addResponseKeyboard(['Next!']);

          message.reply(sendLink);
        });
      };

      if(content != 'Next!') {
        link();
      } else {
        function increment(n) {
          n++;
          return n;
        }
        i = increment(i);

        link();
      }

  };

Я думал, что если я буду увеличивать i каждый раз, когда "Next!"получен, а затем снова запустите функцию связи, она получит последнее значение, но я понимаю, что «Next!»воспринимается как новое событие onTextMessage, я просто не могу понять, как заставить его этого не делать.

...