E 'possibile rilevare quando un utente apre la finestra di chat su Facebook?

voti
1

Sto cercando di creare un chatbot in cui, al fine di evitare che l'utente di aprire la finestra di chat e non conoscendo le opzioni disponibili, voglio dare alcune istruzioni di base quando l'utente apre la finestra di chat.

C'è qualche innesco disponibile quando l'utente apre una finestra di chat? Forse allora posso controllare, e se non c'è una conversazione in corso Potrei fornire istruzioni di base.

Ho fatto un po 'googling e ha trovato nulla di questo. E 'possibile fare qualcosa di simile, e se non, c'è un modo per attenuare questo problema, e fornire all'utente informazioni riguardanti le capacità Chatbot supportate ed ottenere istruzioni?

È pubblicato 20/02/2017 alle 20:05
fonte dall'utente
In altre lingue...                            


3 risposte

voti
2

Penso che la risposta non è l'acido.

Ma si può intercettare l'IConversationUpdateActivity messaggio tipo di sapere se l'utente ha aggiunto il bot a una conversazione. Nel modello di progetto C # è possibile trovare un blocco di codice che chiedono questo tipo di messaggio, ma non fare nulla.

Risposto il 20/02/2017 a 20:50
fonte dall'utente

voti
3

È possibile monitorare per due tipi di eventi: ConversationUpdate e ContactRelationUpdate.

Il primo (ConversationUpdate) viene chiamato quando viene aggiunto o rimosso dalla conversazione un utente. Quindi, c'è un luogo dove è possibile introdurre le opzioni disponibili. Sarà ogni tipo la nuova conversazione è iniziata. Quindi, può diventare fastidioso, è possibile aggiungere un assegno - non mostrare se l'utente ha utilizzato il bot per qualche tempo.

Il secondo (ContactRelationUpdate) viene chiamato quando un utente aggiunge o rimuove il bot / dai contatti. In generale, è chiamato solo una volta per ogni azione dell'utente.

Ecco l'estratto dagli esempi Bot Cornici:

per Node.JS

bot.on('conversationUpdate', function (message) {
   // Check for group conversations
    if (message.address.conversation.isGroup) {
        // Send a hello message when bot is added
        if (message.membersAdded) {
            message.membersAdded.forEach(function (identity) {
                if (identity.id === message.address.bot.id) {
                    var reply = new builder.Message()
                            .address(message.address)
                            .text("Hello everyone!");
                    bot.send(reply);
                }
            });
        }

        // Send a goodbye message when bot is removed
        if (message.membersRemoved) {
            message.membersRemoved.forEach(function (identity) {
                if (identity.id === message.address.bot.id) {
                    var reply = new builder.Message()
                        .address(message.address)
                        .text("Goodbye");
                    bot.send(reply);
                }
            });
        }
    }
});

bot.on('contactRelationUpdate', function (message) {
    if (message.action === 'add') {
        var name = message.user ? message.user.name : null;
        var reply = new builder.Message()
                .address(message.address)
                .text("Hello %s... Thanks for adding me. Say 'hello' to see some great demos.", name || 'there');
        bot.send(reply);
    } else {
        // delete their data
    }
});

Per C #

private void HandleMessage(Activity message)
{
    if (message.Type == ActivityTypes.ConversationUpdate)
    {
                if (activity.MembersAdded.Any(m => m.Id == activity.Recipient.Id))
                {
                    var connector = new ConnectorClient(new Uri(activity.ServiceUrl));

                    var response = activity.CreateReply();
                    response.Text = "Hi! I am Bot. Here's what you can do...";

                    await connector.Conversations.ReplyToActivityAsync(response);
                }
    }
    else if (message.Type == ActivityTypes.ContactRelationUpdate)
    {
        if (Activity.AsContactRelationUpdateActivity().Action ==                ContactRelationUpdateActionTypes.Add)
        {
                    var connector = new ConnectorClient(new Uri(activity.ServiceUrl));

                    var response = activity.CreateReply();
                    response.Text = "Hi! I am Bot. Thanks for adding me. Here's what you can do...";

        }
    }
    return null;
}
Risposto il 21/02/2017 a 12:41
fonte dall'utente

voti
5

Facebook non permette i bot di avviare la conversazione a differenza di Skype o altra piattaforma. Ci sono alcuni trucchi che si possono ancora fare:

  • Vai sulla pagina di Facebook quindi Impostazioni, quindi Messaggi e selezionare "Mostra un saluto Messaggero", come e scrivi la tua frase di saluto. entrare descrizione dell'immagine qui

Il risultato sarà simile a questa:

entrare descrizione dell'immagine qui

Risposto il 21/02/2017 a 19:10
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more