2017-09-29 2 views
2

バックチャンネルの例を模倣しようとしているチャットボットがあります。アクティビティの名前を理解する

以下のコードがどの程度正確に動作するはずかを理解できない場合を除いて、ほとんどすべて正しいです。

botConnection.activity$ 
    .filter(function (activity) { 
     console.log("show me the activity name passed" + activity.name); 
     return activity.type === 'event' && activity.name === 'changeBackground'; 
    }) 
    .subscribe(function (activity) { 
     changeBackgroundColor(activity.value); 
    }); 

私はボットの中でおそらく何かchangeBackgroundを指定する必要があると仮定していますか?また、activity.typeはイベントではなく 'message'であるべきですか?

私がactivity.nameを表示するためにconsole.logを実行すると、私が渡すすべてのメッセージは「未定義」です。私は変更背景を発生させるために、アクティビティの名前を正確にどこに設定しますか?

答えて

1

activityは、message(ユーザーとボットの間で送信されるテキストや添付ファイル)が最も一般的な種類の一般的な封筒です。クライアントとボットとの間で情報を見えないようにするには、eventタイプを使用します。慣例により、彼らはWeb Chatのようなクライアントによって無視されます。

書かれているとおり、あなたのサンプルコードは、のロボットログからクライアントに送信されるすべてのアクティビティを記録します。フィールドnameは、タイプeventのアクティビティに適用されますが、messageではなく、undefinedと表示されます。

この例では、changeBackgroundは、ボットがタイプeventのアクティビティを送信するたびに何かを行うクライアント機能の名前です。

あなたが今見逃している部分は、実際にそのイベントを送信する(サーバー)ボットコードです。その一例については、Ryan Volumのbackchannel sample botを参照してください。

関連する問題