Как я могу получить доступ к hubot, не добавляя hubot с каждым сообщением?

Я разрабатываю бот-мессенджер facebook, используя адаптер hubot и hubot-fb. Все основные настройки сделаны и работают отлично. Но для общения с ботом мне нужно добавить hubot со всеми командами. В случае с чатами в фейсбуке это не имеет особого смысла. Текущий чат выглядит примерно так:

user: hubot ping
bot: PONG
user: hubot the rules
bot: 0. A robot may not harm humanity, or, by inaction, allow humanity to come to harm.
1. A robot may not injure a human being or, through inaction, allow a human being to come to harm.
2. A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law.
3. A robot must p

однако я хочу, чтобы мой бот был доступен без использования «hubot» со всеми сообщениями. Как мне этого добиться?

ТИА


person Himanshu Vaishnav    schedule 02.07.2016    source источник


Ответы (1)


Вы можете использовать метод «услышать» вместо метода «ответить».

У Hubot есть два метода взаимодействия с сообщениями:

hear — вызывается всякий раз, когда текст в комнате сообщений соответствует заданному регулярному выражению. Имя робота в этом случае не используется. Пример:

module.exports = (robot) ->
  robot.hear /ping/i, (res) ->
    res.send "PONG"

Следующие сообщения вызовут обратный вызов robot.hear:

  • пинг
  • как мне пинговать сервер

Примечание: регулярное выражение в этом случае очень упрощенное и может быть изменено, чтобы обратный вызов не вызывался для случая «как мне пропинговать сервер».

response — вызывается только тогда, когда текст соответствует заданному регулярному выражению И ему непосредственно предшествует имя или псевдоним робота. Пример:

module.exports = (robot) ->
  robot.respond /ping/i, (res) ->
    res.reply "PONG"

Следующие сообщения вызовут обратный вызов robot.respond:

  • @Hubot пинг
  • Хубот пинг

Он НЕ будет вызываться для следующего, так как имя робота не используется.

  • пинг
  • как мне пинговать сервер

Дополнительную информацию см. в документации по сценариям Hubot.

person Monica Granbois    schedule 06.07.2016
comment
Привет, я только что нашел более простой способ сделать это. При запуске бота в командной строке (procfile в случае heroku) вы можете указать переключатель имени. Просто передайте пустую строку, и она отлично работает. hubot -n Спасибо за ответ :) - person Himanshu Vaishnav; 11.07.2016