2016-04-15 3 views
1

私は、サードパーティのサービスを使用してスラックボットを構築しています。このサービスのAPIには、応答を取得するためのクライアントID &が必要です。私は、スラックボットがメッセージを受け取るたびに新しいメッセージオブジェクトを作成するたびに、メッセージオブジェクト内にclientIDと会話IDを保持し、その上に余裕を持たせる方法がないことを発見しました。クライアントと会話IDを保持する変数のいくつかのタイプの上に保持したまま、複数の会話を持つためにスラックボットを構築するにはどうすればよいですか?

だから、ダウン短縮
rtm.on(RTM_EVENTS.MESSAGE, function(message // <-- new object each time the bot hears a message){ 
    rtm.sendMessage('hello', message.channel); 
}); 

は、誰もが単一のユーザーとボット間の会話を維持する方法を知っていますか?

+0

RTMを使用して受信メッセージを受信するアプリをスピンすることができます。そのアプリケーションでは、 'conversation_id'と' client_id'を保存し、サードパーティのAPIを呼び出す前にデータベースを照会するデータベースがあります。これまでの目標に従っていますか? –

答えて

3

message.user IDを格納して、その特定のユーザーを参照する会話を追跡できます。進行中のすべての会話を自分で追跡する必要があります。この

rtm.on(RTM_EVENTS.MESSAGE, function(message // <-- new object each time the bot hears a message){ 
    if(stored_conversations.indexOf(message.user) > -1){ 
    //customize message depending on history 
    rtm.sendMessage('I remember you', message.channel); 
    } 
}); 

それとも何かのように、あなたはBotkitを使用することができます - それはあなたのためのボットユーザーの会話を管理します。

+0

あなたに遅れて帰ってきて申し訳ありません、stored_conversationsオブジェクトは何ですか?そして、私はbotkitの使用を検討していましたが、私はそれを構築しているプロジェクトのために、それを回避するのは難しいことです。 –

+0

stored_conversationsは、現在の会話を保存するために作成しなければならないオブジェクト(ここでは未定義の配列)です。 – Matthieu

+0

ありがとう、ありがとう、これは動作します。 –

関連する問題