2016-07-02 3 views
1

Я разрабатываю ботмана facebook, используя hubot & адаптер hubot-fb. Все основные настройки выполнены & работает отлично. Но, чтобы поболтать с ботом, мне нужно добавить hubot со всеми командами. В случае чатов в facebook это не имеет большого смысла. Текущий чат выглядит примерно так:Как я могу получить доступ к hubot без добавления 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» со всем messenges. Как мне это достичь?

ТИА

ответ

3

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

Hubot имеет два метода для того, как она взаимодействует с сообщениями:

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

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

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

  • пинг
  • как я пинг сервера

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

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

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

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

  • @Hubot пинг
  • Hubot пинг

Это НЕ будет называться для так как имя робота не используется.

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

Смотрите Hubot scripting documentation для более подробной информации.

+0

Hi, Я просто нашел более простой способ сделать это. При запуске бота в командной строке (procfile в случае heroku) вы можете указать переключатель имен. Просто передайте пустую строку, и она отлично работает. hubot -n "" Спасибо за ответ :) –

+0

Удивительный! Рад, что ты заработал :) –