【问题标题】:Google Hangouts bot not returning any results谷歌环聊机器人不返回任何结果
【发布时间】:2019-10-02 17:19:02
【问题描述】:

所以我正在尝试构建一个拼字游戏机器人,它接受可用的字母集,使用 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
}

部署后,当我们向机器人发送消息时,它几乎没有返回任何结果:(

我做错了什么??

【问题讨论】:

  • 如何运行您的代码?从哪里调用需要参数的函数?在您的代码中实现日志,以便您知道错误发生在哪一步。
  • 该代码作为 Google Hangouts Chat 中的机器人的一部分被调用,并且它应该期望在聊天室中输入“单词”。我确实尝试过实现日志,但是当我查看堆栈驱动程序日志时没有记录任何内容:(
  • 您可以在使用Logger.log 创建的Apps 脚本编辑器日志中的View->Logs 下看到。您还可以在控制台一侧的浏览器窗口日志中看到使用console.log 创建的日志。 stackoverflow.com/questions/13490302/…
  • 看起来 Logger.log 和 console.log 在使用机器人调用该函数时不起作用:|

标签: google-apps-script bots hangouts-chat


【解决方案1】:

如果我运行以下代码的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;
}

我收到以下回复:

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 };

}

【讨论】:

  • 当我在编辑器上运行它时,这是可行的,但即使按照指示做了所有事情,我仍然没有在我的机器人上看到结果:(
  • 您从机器人调用函数的方式一定有问题。也许它没有正确传递事件?
猜你喜欢
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 2021-02-04
  • 2019-11-09
相关资源
最近更新 更多