2016-12-10 5 views
5

Ich möchte einen einfachen Timer innerhalb einer Kommunikation implementieren.Antwort nach einer bestimmten Verzögerung

Mein Szenario ist ein kleiner Mathetrainer, wo Sie 5 Minuten trainieren, nach den 5 Minuten der normalen Interaktion möchte ich den Benutzer informieren, dass die Zeit jetzt abgelaufen ist. Ich möchte nicht warten, bis der Benutzer seine nächste Eingabe/Antwort beendet hat (optional, wenn gerade keine Eingabe erfolgt).

Gibt es eine Möglichkeit, eine Antwortzeit basierend auf "Push" zu setzen?

Antwort

2

Die Conversation-API unterstützt kein Push-Modell. Wenn Sie die Antwort des Benutzers erhalten, können Sie den Timer überprüfen und entsprechend reagieren.

+0

Vielen Dank für diesen offizielle Antwort. Ist eine solche Push-Nachricht-Option geplant? – rekire

+4

Ich kann zukünftige geplante Funktionen nicht kommentieren, aber wir sind sehr daran interessiert, Feedback von Entwicklern zu erhalten. –

+0

Ein Push-Modell scheint sehr gut für mich. Zum Beispiel, wenn Sie eine App haben möchten, die den Benutzer warnt, an einem prognostizierten Regentag einen Regenschirm mitzubringen. Anstatt einen Benutzer sagen zu lassen: "Muss ich heute einen Regenschirm mitbringen?" –

0

Leider sieht es aus wie sie in dem Hinzufügen jede Art von Verzögerungs Funktionen nicht interessiert sind: https://discuss.api.ai/t/adding-a-delay-to-responses-so-it-feels-more-real/108

Aber das ist ein Grund, warum eine serverseitige Lösung zwischen der Bereitstellung Gebäudeintegration (ex Facebook Messenger.) Und API .ai ist so nützlich, dass Sie Ihre Erfüllungen anpassen können, einschließlich des Sendens von Erfüllungen, die von Ihrer eigenen Logik ausgelöst werden, die auf API.ai-Lösungen basiert.

So im Fall von FB Boten als ein einfaches Beispiel, könnten Sie so etwas wie unten zu tun, und bauen einfach jede Logik, die Sie wollen sendTextMessage nennen:

function sendTextMessage(recipientId, text) { 
 
    sendTypingOff(recipientId) 
 
    var messageData = { 
 
     recipient: { 
 
      id: recipientId 
 
     }, 
 
     message: { 
 
      text: text 
 
     } 
 
    } 
 
    callSendAPI(messageData); 
 
} 
 

 
//Calls FB messenger API. If successful returns a message ID in response 
 
function callSendAPI(messageData) { 
 
    request({ 
 
     uri: 'https://graph.facebook.com/v2.6/me/messages', 
 
     qs: { 
 
      access_token: config.FB_PAGE_TOKEN 
 
     }, 
 
     method: 'POST', 
 
     json: messageData 
 

 
    }, function (error, response, body) { 
 
     if (!error && response.statusCode == 200) { 
 
      var recipientId = body.recipient_id; 
 
      var messageId = body.message_id; 
 

 
      if (messageId) { 
 
       console.log("Successfully sent message with id %s to recipient %s", 
 
        messageId, recipientId); 
 
      } else { 
 
       console.log("Successfully called Send API for recipient %s", 
 
        recipientId); 
 
      } 
 
     } else { 
 
      console.error("Failed calling Send API", response.statusCode, response.statusMessage, body.error); 
 
     } 
 
    }); 
 
}

Verwandte Themen