2017-09-29 37 views
2

我有一個試圖模仿backchannel示例的聊天機器人。瞭解活動的名稱

一切都是正確的,除了我無法理解下面的代碼應該如何工作。

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不應該是一個'消息'而不是事件?

當我做一個console.log來顯示我的activity.name每條消息,我通過是「未定義」。我在哪裏設置活動的名稱,以便我可以啓動更改背景?

回答

1

activity是一個通用信封,其中message(在用戶和機器人之間發送的文本和/或附件)是最常見的類型。如果您希望讓用戶和機器人不可見地向用戶交換信息,那麼您可以使用event類型。按照慣例,他們將被客戶忽略,如Web Chat

寫它的方式,你的示例代碼記錄每個活動從機器人發送到客戶端。字段name適用於event類型的活動,但不適用於message,這就是爲什麼它顯示爲undefined

在這個例子中changeBackground是一個客戶端函數的名稱,當機器人發送一個event類型的活動時它會做某事。

你現在缺少的部分是實際發送該事件的(服務器)機器人代碼。有關此示例,請參閱Ryan Volum的backchannel sample bot