2016-07-02 9 views
1

私は、hubot & hubot-fbアダプターを使ってfacebook messengerボットを開発しています。 基本設定はすべて&が完璧に動作しています。しかし、ボットとチャットをするためには、すべてのコマンドでhubotを追加する必要があります。 Facebookのチャットの場合、それはあまり意味がありません。メッセージごとにハッボットを追加せずにハブトにアクセスするにはどうすればよいですか?

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 

しかし、私は私のボットがすべてmessengesで「hubot」を使用せずにアクセスできるようにしたい:現在のチャットは、次のようになります。どのように達成するのですか?

TIA

答えて

3

「応答」メソッドの代わりに「聞き取り」メソッドを使用できます。

Hubotは、それがメッセージとの対話方法の2つの方法があります。

を聞く - メッセージの部屋内のテキストは、指定した正規表現にマッチするたびに呼び出されます。この場合、ロボットの名前は使用されません。例:

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

次のメッセージがrobot.hearコールバックが呼び出される原因となる:

  • ピング
  • どのように私は、サーバー

注pingを実行します:正規表現でのこのケースは非常に単純化されており、「サーバにpingをかける」ケースに対してコールバックが呼び出されないように変更することができます。

- これは、テキストが特定の正規表現に一致し、その直前にロボットの名前またはエイリアスがある場合にのみ呼び出されます。例:

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

次のメッセージがrobot.respondコールバックが呼び出される原因となります

  • @Hubotピング
  • Hubotピング

それがために呼び出されることはありませんロボットの名前は使用されていないので、以下のようになります。

  • ピング
  • どのように私は、サーバーにpingを実行します

詳細はHubot scripting documentationを参照してください。

+0

こんにちは、 私はちょっと簡単な方法を見つけました。 コマンドラインでボットを起動している間(herokuの場合はprocfile)、名前スイッチを指定できます。それに空の文字列を渡すだけで完全に動作します。 hubot -n "" 回答ありがとうございます。 –

+0

恐ろしいですね!あなたはそれがうまくいった:) –

関連する問題