Бот Google Hangouts не возвращает никаких результатов - PullRequest
4 голосов
/ 02 октября 2019

Поэтому я пытаюсь создать бот Scrabble, который принимает доступный набор букв, использует anagramica API и должен возвращать доступную комбинацию слов.

Вот чтоДо сих пор я был в состоянии кодировать -

/**
 * Responds to a MESSAGE event in Hangouts Chat.
 *
 * @param {Object} event the event object from Hangouts Chat
 */
function onMessage(event) {
  if (event.space.type == "DM") {
    var letters = event.message.text
    var words = getWords(letters)
    return { "text": words };
  }
}

function getWords(letters) {
  var URL = 'http://www.anagramica.com/all/:' + letters
  var response = UrlFetchApp.fetch(URL, {"method":"GET"});
  var results = JSON.parse(response.getContentText())["all"];
  var words = ''
  for (var y = 0; y < results.length; y++) {
    words = words + "\n" + results[y]
  }
  return words
}

После его развертывания, когда мы сообщаем боту, он практически не возвращает результата: (

Что я делаю не так?

1 Ответ

0 голосов
/ 02 октября 2019

Если я запускаю myFunction() следующего кода:

function myFunction(){
  var letters='abcd';
  Logger.log(getWords(letters));
}

function getWords(letters) {
  var URL = 'http://www.anagramica.com/all/:' + letters
  var response = UrlFetchApp.fetch(URL, {"method":"GET"});
  var results = JSON.parse(response.getContentText())["all"];
  var words = ''
  for (var y = 0; y < results.length; y++) {
    words = words + "\n" + results[y]
  }
  return words;
}

, я получаю следующий ответ:

enter image description here

Запрос на получение URL работает правильно. Таким образом, ошибка должна лежать в вашей функции onMessage(event).

  • Опция 1:

    Ничего не возвращается, поскольку условие event.space.type == "DM" не выполняется.

  • Опция 2:

Ничего не возвращается, поскольку var letters = event.message.text не является допустимым параметром.

Помимо реализации журналов, как предложено выше, вы можете протестировать то, чтоисточник вашей проблемы, например, оставив условие if или определив вручную letters как строку.

Работает ли следующее?

function onMessage(event) {

    var letters = "test";
    var words = getWords(letters)
    return { "text": words };

}
...