2016-04-15 3 views
1

Ich baue einen slack-Bot mit einem Drittanbieter-Dienst, um Antworten basierend auf Eingaben zu verarbeiten, anstatt sie nur hart in den Bot zu codieren. Die API dieses Dienstes benötigt eine Client-ID & eine Konversations-ID, um die Antwort zu erhalten. Ich fand heraus, dass jedes Mal, wenn ein leerer Bot eine Nachricht empfängt, jedes Mal ein neues Nachrichtenobjekt erstellt wird, so dass es keine Möglichkeit gibt, die Client-ID und die Konversations-ID innerhalb des Nachrichtenobjekts zu belassen und zu behalten.Wie erstelle ich einen Slack-Bot, um mehrere Unterhaltungen zu führen?

rtm.on(RTM_EVENTS.MESSAGE, function(message // <-- new object each time the bot hears a message){ 
    rtm.sendMessage('hello', message.channel); 
}); 

nach unten, so verkürzt, weiß jemand eine Möglichkeit, ein Gespräch zwischen einem einzelnen Benutzer und dem Bot zu halten, während sie auf irgendeine Art von variablen Halt des Client und Konversations-ID zu halten?

+0

Sie können eine App drehen, die eingehende Nachrichten mit RTM empfängt. Dann hätten Sie in dieser App eine Datenbank, in der Sie 'conversation_id' und' client_id' behalten und Ihre Datenbank abfragen würden, bevor Sie die Drittanbieter-API aufrufen. Verfolge ich dein Ziel bisher? –

Antwort

3

Sie können die message.user ID speichern und die Konversation für diesen bestimmten Benutzer verfolgen. Sie müssen selbst alle laufenden Gespräche im Auge behalten. So etwas wie diese

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); 
    } 
}); 

Oder könnten Sie Botkit verwenden - es verwaltet Bot-User-Gespräche für Sie.

+0

Entschuldigung, dass Sie zu spät zu Ihnen zurückkommen, was ist das stored_conversations-Objekt? Und ich habe überlegt, Botkit zu verwenden, aber für das Projekt, mit dem ich es erstelle, ist es etwas schwierig, es zu umgehen. –

+0

stored_conversations ist ein Objekt (hier ein undefiniertes Array), das Sie erstellen müssen, um aktuelle Konversationen zu speichern – Matthieu

+0

Oh, okay, danke, das funktioniert. –

Verwandte Themen